July 08, 2017

2 in 1 タブレットPC ECS LIVA TE10EA3

E310_1メインで使っているノート/タブレットPCを更新した。
新規購入した 2 in 1 モバイル・ノート/タブレットPCが自宅に届いたのが5月31日。
それから、1か月。だいたい使い方が定まって来たので、このパソコンの使用報告をしよう。

今回、購入したのは、10.1インチの 2 in 1 モバイル・ノート/タブレットPC ECS LIVA TE10EA3 のストレージ容量128GBタイプである。最大の特徴は、WACOMによる電磁誘導デジタイザ・ペン入力を持つことだ。

今まで使っていたPCは、8インチタブレット lenovo Miix 2 8 128GBであるが、2つ大きな問題があって、今回更新した

・私の老眼が進んでいて、8インチ画面だと小さすぎて読めない
・絵を描こうにも静電容量型のタッチスクリーンでは、まともに描けない
特に2つ目は深刻で、タッチペンを色々購入しても一向に改善しない。自己静電発生式 スタイラスペンも試してみたが、ダメだった。
ソフトウエア側の問題かとも思い、CLIP STUDIO PAINT PROも購入したが、これでも改善しない。やはり、原因はハード側だ。

Zaurus SL-C860・FMV-BIBLO LOOX U/C30と、電車の中などで絵を描いてブログにアップしていたのが、Miix 2 8にしてからは、家の中でUSB接続の外部デジタイザを使ってのお絵描きになった。ブログの更新が極端に少なくなったのは、このせいもある。

さて、新規パソコンの候補に挙がったのは、下記の3機種だ。いずれもペン入力付き。
・ECS LIVA TE10EA3 32GB:約4万5千円 128GB:約6万円
・ASUS TransBook Mini T102HA 64GB:約4万8千円 128GB:約6万円
・lenovo YOGA BOOK with Windows 64GB:約5万円
話題のドスパラのraytrektabが入っていないのは、前述のように8インチでは老眼のため画面が良く見えないからだ。
そうは言っても、前述の3機種、いずれも中国/台湾製で、国産が入っていないのは残念。国産のパソコンって、高価なんだよねえ。

さて、前述3機種は、10.1インチの 2 in 1 、Cherry Trail ATOM CPU、メモリ容量 4GB、64ビット版 Windows10と、かなり性格の近いものである。

違いはペン等の入力方式だ。LIVAが電磁誘導方式、TransBookが静電発生式、YOGA BOOKは(おそらく)電磁誘導式。
電磁誘導式の方が歴史がある分書き味が良い。静電式は最近進歩し書き味向上しているが、電池が必須なのが大きな欠点。
世の中は、電磁誘導から静電式に移りつつあると言うのが、客観的な見方だろう。
今回は、書き味とペン内部に電池を必要としない電磁誘導を選択した。

こうなると、LIVAとYOGA BOOKの二択になる。
YOGA BOOKは、きわめて個性的なPCで、ディスプレイ部とキーボード部が360度回転するヒンジで繋がっている。そのうえ、キーボード部は完全な平坦で、タッチスクリーン的センサーで入力を行い、ペン入力の時は鍵盤の表示が消えると言うものである。

このように興味深い YOGA BOOKを選ばなかったのは、特徴的なキーボードやペン入力のせいではなく、単にストレージ容量が64GBのモデルしかなかったためである。
一般的な使い方なら、64GBのストレージで足りるであろう。もし足りなくても、大容量MicroSDを入れれば良いだけだ。
しかし、私の場合、Visual STUDIOを始め、Android Studio、STM32、ESP-WROOM-32などのプログラム・クロス開発環境を入れることを考えている。これらは、MicroSDに入れるとアクセス速度が遅くて使い物にならないと言うのが、経験的に判っている。MicroSDは単なるデータストレージなら良いのだが、クロスコンパイラなどのアプリをインストするには向いていない。

このような理由で、ECS LIVA TE10EA3 の 128GBモデルを選択した。
しかし、「ECS」ってメーカー聞いたこともない。
一応、調べると、台湾のメーカーで、マザーボードは有名らしい。最近、超小型PCも出している。日本では殆ど知られていないが、ノートPCも以前から作っていたようだ。私の購入した TE10EA3 は、ECSにとって、珍しい日本に対応したノートPCのようだ。キーボードはちゃんと日本語化してあったし。

さて、購入して、実際に使ってみた感想が、最初の絵だ。
まず、一見して格好悪い。これはベゼル(枠)が大きすぎるからだろう。同じ画面のiPadと比べると、一回り大きいと思えるくらいベゼルが大きくスマートじゃない。その上厚さも厚いので、まるでスマートさに欠ける。
次にキーボード部。これが、ペコペコで感触が悪い。その上、キーボード部についているタッチパッドが誤動作しまくりで、使い物にならない。

ディスプレイの付いた本体側は、ケースも兼ねたキーボード部の「布」を折ったようなところに吸盤で付ける。本体とキーボード部は結線されておらず、Bluetoothで通信されている。要は、キーボード部は、単なるタッチバッド付きのBluetoothキーボードだ。

とにかく、キーボード部に付いているタッチパッドの誤動作が多くてストレスが溜まるので、ポインティングデバイスは、別途、家で余っていたBluetoothマウスを接続することにし、タッチパッドを無効化した。キーボードは生かしたまま、タッチパッドのみを無効化し、その上、別のマウスを使えるようにできるか心配したが、やってみたら何の問題もなかった。

キーボード部は、ペコペコで打ちにくく、肩が凝る。Miix 2 8用に買った Bluetoothキーボードは、マルチペアリングできる上に、パンタグラフ型キーを使った優れもの。これも接続すると、さすがに使い良い。

Bluetoothのキーボードとマウスは、使い心地は良いが、モバイルには向いていないので、出先では、ECS LIVA TE10EA3 付属のキーボードを使おうと、ケース代わりにもなるので、ECS LIVA TE10EA3 をキーボード(ケースも兼ねている)に挟んでリュックやカバンに入れて持ち歩いていた。しかし、重い。本体が500グラムに対して、キーボード部が400グラム以上ある。

E310_2思い知ったのが、6月中旬に会津地方に観光旅行に行った時だ。大内宿と言う茅葺屋根の建物の並ぶ宿場街が保存されているのだが、キーボードが重くて、本体ごと、駐車場の車の中に置いて来てしまった。しかし、大内宿には、絵の題材になりそうな建物が多くある。タブレットPC持ってきてたら、ササッと絵の一枚くらい描いたのにと反省しきりだ。

帰宅後、持ち歩きの方針を変えたのが、2枚目の絵だ。
百均で買ったクッションケースに、同じく百均で買ったカラーボードを切って大きさを合わせた板を画面の保護用に入れたものをケースとして使うことにした。安い上に軽い。
この場合、出先では、キーボードは使えないのだが、そもそも電車の中などで付属のキーボードは使えなかった。これはECS LIVAに限った話ではなく、Surfaceを含め、分離型の 2 in 1 モバイル全般に言えることだと思うが、キーボードとディスプレイ部をつなぐヒンジがないため、電車やバスのシートに座った状態で膝の上にパソコンを乗せてキーボードを打つことができない。新幹線や特急列車のようにお弁当を食べるためのテーブルでもあれば話は別なのだが・・(つくばエクスプレスのボックスシートにはテーブルが付いているが、混雑時は使いにくい上に、今後ボックスシート自体が順次廃止されるらしい)

キーボードが無くても、ペンさえあれば、絵を描くのには問題がない。文字入力はタッチキーボードが使えるのは勿論のこと、ペンの場合、手書き文字の認識が非常に良いので、これも問題なし。

電車の中で絵を描いていて気が付いたのだが、前に書いた「ベゼル(枠)が大きくて格好悪い」が、そんなに悪くないことに気付いた。右手にペンを持って、左手でタブレット本体を支えるとき、ベゼルが大きいので持ちやすいのだ。今よりベゼルが細かったら、画面に指があたりタッチスクリーンが反応するから、持ちにくかったと思われる。
Miix 2 8時代に買った CLIP STUDIO を、LIVAに移したら、絵を描くのが楽しいくらいだ。なお、LIVAに使っている Cherry Trail CPUは非力なため、CLIP STUDIOには向かないとネット上で紹介されているところもある。しかし、私はCPUの力不足は感じなかった。まあ、私の使い方では、CLIP STUDIOを十分使い込んでいないからかもしれない。
なお、バッテリーの持ちは連続使用で8時間くらいだと思われる。実は未だ8時間連続で使ったことはなく、6時間連続で使った後、バッテリーの残りが2時間分と表示されたので、そう推定している。まあ、8時間程度使えれば、十分である。

家では、またまた百均で買ったスマホ・タブレットスタンドで立てて、Bluetooth キーボードとマウスを付けて使っている。

気が付いたと思うが、ECS LIVA TE10EA3 付属のキーボードは殆ど使わなくなってしまった。

1か月使った感想としては、
・タブレット部分本体は、満足度95点 足りないのは、タッチスクリーンの感度が少し悪いこと。
・キーボード部は、満足度40点。まあ、付録だと思えば良いだろう。もともと、ペン付きで、このスペックで約6万円は破格に安いのだから・・

さて、お絵描きタブレットとして、ECS LIVA TE10EA3は十分満足できるものだ。ブログにLIVAで描いた絵を使うことこそ、今回が初めてだが、電車の中で思いついたアイデアをササッと描くなど、すでに色々な効果が出ている。
多分、ASUS TransBook Mini T102HAを選んだとしても同じようなものだっただろう。

気になるのは、YOGA BOOKだ。この変態キーボード、いったい役に立つのだろうか?
私の場合、ストレージ容量が64GBしかないので、選択から外したが、一般の使い方なら十分かもしれない。
誰か、YOGA BOOKを買った人が居たら、その感想を教えてほしい。


| | Comments (0) | TrackBack (0)

August 08, 2015

クラウド+完全準同型暗号+ビットコイン=?

E3061最近、知ったのだが、ガートナー、「先進テクノロジのハイプ・サイクル: 2014年」を発表によると、クラウド・コンピューティングは既に『幻滅期』に入っているらしい。(この情報は昨年9月のものだが、今年の分は未だ発表されていないので、一応最新版だ)
なぜ、クラウド・コンピューティングが『幻滅期』なのかを想像するに、やはりセキュリティの問題だと思われる。

クラウド・コンピューティングとして、普通考えられるのは、1つ目のイラストのように、サーバー側でワープロや表計算ソフト等のアプリを動かし、端末側とはネットワークを介して暗号化した情報をやり取りする方法だ。
この方法だと、サーバーの内部では暗号を解読した平文になっており、サーバーを管理する企業が信頼できないと情報が漏洩してしまう。
従って本当に秘密にしなければならない情報を扱うのはクラウド・コンピューティングは使えない。
もしサーバーの管理企業が十分に信頼できる場合、そこのサーバーに処理が集中してしまうと言う問題が発生する。
E3062一方、2つ目のイラストのように世界中にある暇にしているコンピューターを使って分散処理をしようとすると、各コンピュータの中の処理は平文であり、ほとんどの人が善意でも、たった一人でも悪意を持つものが居れば、そこから情報が漏洩してしまうことになる。

結局、クラウド・コンピューティングは、少数の『信頼できるサーバー』に処理が集中し、世界中に分散するコンピュータ処理能力の有効利用にならない。
このことが、クラウド・コンピューティングに対する『幻滅』だと思われる。

ところが、最近になって『完全準同型暗号』と言うものがあることを知った。詳しくは、MITが分散型クラウドコンピューティング『Enigma』プロジェクトを始動に書いてあるが、要は『暗号化したままアプリでも何でも処理ができる』と言う技術である。
E3063『完全準同型暗号』なら、暗号化したまま『整数の加法と乗法』を行い、最後の結果のみを『解読』すれば、計算の結果を知ることができる。つまり、暗号を解読する『鍵』を持っている者以外は、何を処理したか、全く中身が判らないまま、処理ができるのである。
と言っても、処理が『整数の加法と乗法』じゃあ、大した事はできないと思うかも知れない。しかし、『整数の加法と乗法』ができれば、『チューリングマシン』が構成できるのである。『チューリングマシン』が構成できるのであれば、ワープロであろうが、表計算ソフトであろうが、どんなアプリの処理もできるのである。

『完全準同型暗号』の技術を使えば、セキュリティを守ったまま、クラウド・コンピューティングで分散処理ができるようになるのである。

と言っても、『暇なコンピュータの処理能力』を提供してくれる人が居るかが、キーポイントだ。

そこで思い付いたのが、『ビットコイン』だ。
現状のビットコインは、『マイニング』と言うブロックチェーンを作るだけのために大きな計算能力を使っているが、それだけでは電力の浪費のような気がする。
そこで、『暇なコンピュータの処理能力』を『完全準同型暗号』の『クラウド・コンピューティング』に提供してくれた人には、ビットコインのような『仮想通貨』を作って、それを使って『報酬』を得られるようにすれば良いだろう。

と、思い付いたのは良いけど、どうやれば『仮想通貨』と『完全準同型暗号のクラウド・コンピューティング』を結びつけるかと言う課題の解決は、これからだ。

| | Comments (0) | TrackBack (0)

April 02, 2015

御免なさい

E304昨日の「仮想通貨(Bitcoin)は、銀河を駆けるか?」は、もちろんエープリルフールのネタである。御免なさい。
でも、エープリルフールのネタとは言え、嘘ははいっていないだが。

ところで、「惑星間通貨 InterPlanetary Coin : IPC」や「恒星間通貨 InterStellar Coin : ISC」を考えていたら、同じような仕組みが地球上でも役に立たないかって思い始めた。それが、「分散通貨 Distributed Coin : DBC」だ。(最初 Regional Coinと考えていたけど、「地域通貨」の意味になるので、ごく限定された地域でしか通用しない通貨のようなイメージなので、やめた)

例えば、山登りを考えよう。携帯電話などの電波の届かないくらいの山奥だ。
そこで、二人の登山者が出会った。一人は水も食料も無くし、もう一人は水と食料を持っている。水と食料の無い登山者は金銭的に裕福で、水と食料を千円で買うことにした。(こう言う場合、人道的には無料で水と食料を分け与えるべきだ・・と言うツッコミはなし。道徳の話をしているのではなく、経済活動の事例なのだ)

従来型通貨、つまり紙幣なら、千円札を渡せば、それで商談成立。めでたしめでたしである。

ところが、Bitcoinが従来型通貨に取って代わってしまうと、この商談は成立しなくなる。前回も話したように Bitcoin は 10分間の間に通信ができるところに居ないと成立しないシステムなので、携帯電話などの電波の届かない山奥では使えないことになる。

前回も書いたが、公式ソフトである Bitcoin Core は、ノートパソコンにもインストできる。たぶん最小限の構成は、Windows 8.1 の 8インチのタブレットPCだろう。実際、私のタブレットPCにもインストしてある。今や 35GB にも膨れ上がったブロックチェーンも含めて、たった 350グラムのタブレットPCで立派に動いている。

ブロックチェーンが 35GB もあるので、iPhoneやAndroidなどのスマホでは無理だが、最低限が私の8インチ タブレットPCで、それ以上のストレージに余裕のあるノートPCなら、Windowsマシンだろうが、MACだろうが、Linuxだろうが、Bitcoin Core を走らせることは可能だ。(スマホでも使える Bitcoin Wallet があるだろう・・と言われそうだが、それらは、SPVクライアントと言い、ブロックチェーンの全てをダウンロードするのではなく、ダイジェストだけをダウンロードしている。全てのブロックチェーンを持っていないため、マイニングなど本来 Bitooin ノードが持つべき機能を全て持ってはいない)

仮に、登山者2人が、2人ともノートパソコンもしくはタブレットPCを持っていて、その2台のPCに Bitcoin Core がインストしてあり、ブロックチェーンもダウンロード済みで、その2台のPCが無線LANであろうが、有線LANであろうが、ネット接続できれば、最低限の環境が整う(無線LANで、2台のPCを接続するのは、意外と簡単で、ちょっと込み入った操作が必要だが、少なくとも Windows 8.1 なら無料でできる)

マイニングの難しさを、2台のコンピュータで平均10分で行えるように調整したら、二人の間での取引はでき、マイニングして、決済することができる。これは、前回、IPCやISCのところで説明した通りだ。

ところが、山を下り、インターネットに接続した途端、2人の間の取引(トランザクション)は消えてしまう。ブロックチェーンは、最も長い物が正当と見なされ、短いブロックチェーンは捨てられてしまうからだ。こでも前回説明した通りだ。

Bitcoin は、ノートPCが2台あれば構成できるシステムなんだが、その2台だけのローカルな環境で決済した取引(トランザクション)は、グローバルな環境に接続した途端、消えてしまうと言う仕組みであることを理解してもらえただろうか?

CVSに対して、Gitが行うように、一旦分離したブランチを再びマージする方法は無い物だろうか?
少なくとも、現状の Bitcoin では、1つの長いブロックチェーンだけしか正当なものと見なさない仕組みなので、ブランチは許されない。

どうやれば、複数のブロックチェーンを分散して、なおかつ正当性を確保することができるのか?
これは一朝一夕で解決するほど簡単な問題ではない。2人の登山者のような短いブロックチェーンの正当性を、如何に担保するかが最大の問題になる。

もし、短いブロックチェーンの正当性を担保できる方法があれば、スマホにも正式なノードを入れることができる。現状のSPVクライアントのようにマイニングができない Wallet ではなく、フルシステムのノードがスマホで動くようになる。

そもそも、何故あんな巨大なブロックチェーンが必要なんだ?
自分の財布に千円札が入っていた場合、その千円札の前の所有者が誰だったのか、さらにその前の所有者が誰だったのか、気にする人が居るだろうか?
巨大なブロックチェーンは、その全てが記録されている。それどころか、自分が持っていも居ない、見たこともない人が、Bitcoin が始まって以来の6年間、誰が何時どう使ったの全ての記録が入っている。

自分に必要な ブロックチェーン だけを切り出せば、コンパクトになるに違いない。スマホで十分に扱える程度の大きさになるだろう。

先ほどの例なら、登山者の2人はノートPCではなく、それぞれ、スマホを持っていれば十分になる。
二人の間での取引は、2台のスマホでマイニングできるだろう。そうすれば、取引完了だ。

もちろん、山を下りた後、二人の間の取引が、それを記録したブロックチェーンが正当であることを担保し、グローバルなブロックチェーンに取り込まれなければならない。それは、「Proof of Work 」や「マイニング=ナンス付きハッシュ」と言ったBitcoinの根幹自体をひっくり返すことになるかもしれない。

このためには、「小集団の取引(トランザクション)を記録した短いブロックチェーンの正当性を如何に担保する」か、それが最大にして、唯一の課題だ。


それを解決することが、「分散通貨 Distributed Coin : DBC」の目標である。

(余談:山奥であろうが、太平洋の真ん中であろうが、人工衛星を使って通信できるようにすれば、現状の Bitcoin の仕組みでも、そのまま使えると言う意見もあるだろう。しかし、そのためには多数の衛星を打ち上げる必要があり、巨額の設備投資が必要になる。そのために必要な衛星は、衛星高度にもよるけど数千基必要であり、衛星とロケットのコストから考えて数千億から数兆円の初期投資が必要になる・・・って、これってGoogleがSpaceXに融資した内容だよね。って言うか、そのものズバリだと私は睨んでいる)

| | Comments (0) | TrackBack (0)

April 01, 2015

仮想通貨(Bitcoin)は、銀河を駆けるか?

E303これから始めたいなあと思っている事を書く。
仮想通貨だ。つまり、Bitcoinのようなものだ。
『Bitcoinのようなもの』と持って回った言い方をしたのは、Bitcoinのようであっても、Bitcoinそのものではないからだ。

賛否両論あるだろうが、Bitcoinをはじめとする仮想通貨は大きな可能性を秘めている。もちろん、生まれて6年しかたたないBitcoinは、まだまだ未熟なところがあり、プログラム的にも運用上も課題が残っている。現状のBitcoinそのものが未来永劫普及し標準となることは、むしろ最もあり得ない将来像で、多々ある問題点を克服したBitcoinの改良バージョンか、Bitcoinにとって代わる新たな仮想通貨が標準になるか、そのどちらかになりそうな気がする。いずれにしろ、Bitcoinの改良型もしくは、その子孫の仮想通貨が、従来型通貨に代わることは間違いないだろう。

さて、ここからが本題なのだが、Bitcoinの仕組みを調べていくうちに、私が思い描いている将来のシチュエーションでは使えないことが分かった。それは『宇宙での生活』である。

ご存知かも知れないが、Bitcoinの仕組みは、取引(トランザクション)を採掘(マイニング)と言う作業を経て、記録(ブロックチェーン)に追加することで成立する。この時、従来型通貨のように集中的に管理する中央銀行が存在せず、Bitcoinに参加する人々が皆公平に分散的にマイニング作業を共同して行っていることが仮想通貨の大きな特徴である(「共同」と言うより「競争」に近いが)

「採掘(マイニング)」と言うネーミングを使っているので、何やら地面に穴を掘って金の鉱脈を探しているような怪しげな雰囲気がするが、実際はそうではない。約10分間に世界中で行われた取引(トランザクション)を集めて、それに「ナンス付きのハッシュ」を計算しているだけだ。通常の「ハッシュ」は作成するのも簡単だし、それが改竄されていないか検証するのも簡単。それに対し、「ナンス付きのハッシュ」は、作成するのは大変だが、検証するのは簡単になっている。作成するのが大変な「ナンス付きのハッシュ」を使っているのは偽造を防ぐためだ。
世界中のマイニングをしているコンピューターが平均して、10分間で作成できるようにナンスの大きさを変えて、「ナンス付きのハッシュ」の作成難易度を調整している。そして、最も早くマイニングに成功したノードが、報酬として25ビットコイン(1ビットコイン=3万円とすると報酬は75万円となる)が支払われる。この報酬のために、世界中で競い合ってマイニングが行われているのだ。

公式ソフトである Bitcoin Core は、ノートパソコンにもインストできる程度のものであるが、同じソフトが世界中で動いて、それらがネット上で協力しあって、Bitcoin ができている。Bitcoin Core トランザクションの記録であるブロックチェーンの管理を行ったり、送金や受け取り、秘密鍵や公開鍵であるアドレスなどの管理を行う。もちろん、Bitcoin Core でマイニングもできる。まあ、ノートパソコン程度では、計算能力が小さすぎて、報酬を得ることは事実上不可能だろう。だが、可能性はゼロではない。宝くじよりも低い確率だが、ノートパソコンでのマイニングで報酬を得る可能性も全くないわけではない。
良くテレビなどで超大型のコンピューターでマイニングしているところが報道されるが、これは単に Bitcoin Core を入れたパソコンを並べていたり、計算速度の必要な割には単純な処理のハッシュ計算のところだけ特殊なプロセッサを並べて並行計算するシステムに過ぎない。もっとも Bitcoin Core は、ソースコードがオープンなので、マイニングに向いたように改良したプログラムを使っている場合の方が多いだろうが。

取引(トランザクション)は、マイニングされて「ナンス付きのハッシュ」が付き、ブロックチェーンに追加された時点で正式なものになる。つまり、マイニングされるまでは、「仮」の状態であり、マイニングが終わった時点で「正式決済」になるのだ。

ここまでの説明で判ったと思うが、Bitcoin は、 Bitcoin Core もしくは、その改良型のプログラムを走らせた多数のノードが 10分間隔でマイニングを繰り返すことで成立している。つまり、全てのノードは、「10分間」と言う時間より十分短い時間で通信できることを前提にしているのだ。インターネットの通信は、ほとんど光の速度で進む。1秒間に30万キロ進む光の速度から見れば、赤道一周で4万キロの地球など、ものの数ではない。地球の裏側だって、わずか15分の1秒だ。途中で、ルーター間での誤伝送・再送があって遅れても、遅れが数分以内に済めば構わない。要は、10分間よりも短い時間で通信できれば良いのだ。

Bitcoinは、地球の上なら、インターネットに接続できさえすれば、問題ない。
しかし、宇宙ならどうか?

月なら問題はない。光の速度で、1秒は超えるが、往復しても3秒以内だ。10分間には、まだまだ余裕がある。

しかし、他の惑星は?
火星は、地球と近い時には片道4分半、遠い時には21分かかる。
木星なら35分~51分程度。土星なら1時間11分~1時間27分くらいになる。小惑星帯は、火星と木星の間だ。

つまり、最接近した時の火星だけは、何とか往復で8分で10分間よりも短いが、それ以外の時期の火星と、小惑星を含めた ほとんどの惑星は Bitcoin が使えなくなってしまうのだ。そこで、宇宙でも使えるように Bitcoin を改良しようと考えた。

【惑星間通貨 InterPlanetary Coin : IPC】
太陽系内で仮想通貨を使えるように改良する、それが、惑星間通貨 = InterPlanetary Coin(インタープナレタリー・コイン) : IPCだ。

例えば、土星の衛星タイタンとハイペリオンに宇宙基地やコロニーを作ったとしよう。タイタンとハイペリオンが最も離れても光の速度で9秒だ。
従って、タイタンとハイペリオンに、それぞれ幾つか Bitcoin のノードを置いても、その間なら、ちゃんと同期が取れ、Bitcoin が使える。
しかし、それはあくまで土星の衛星同士の間だけでの話だ。この場合、土星衛星系の Bitcoin と 地球の Bitcoin が互いに同期を取ることは無い。現状の Bitcoin の仕組みでは、遠く離れた二つのブロックチェーンを同期することはできない。現状のままでは、地球の方が遥かにノードが多いため、地球のブロックチェーンだけが残り、土星の衛星系の Bitcoin のブロックチェーンは消えてしまうでしょう。

しかし、上手く改良すれば、複数に分散したブロックチェーンを、正しく同期が取れるようになるかもしれない。ここで、「二つに分散したブロックチェーン」と言わず「複数に分散したブロックチェーン」と言ったのは、土星の衛星系だけではなく、木星の衛星ガニメデとエウロパにも宇宙基地やコロニーができるかもしれないからだ。
それどころか、小惑星帯に宇宙基地ができるかもしれない。土星や木星の衛星系と異なり、小惑星は常に同じところに固まっているわけではない。現在、60万以上見つかっている小惑星は、ある時は、数秒で通信できる距離に近づいたかと思えば、ある時は通信に数時間かかる距離まで離れる。

太陽系内に無数にあるノード、それが近づいたり離れたり、その間で分散するブロックチェーンが同期が取れる。それが IPC だ。

Bitcoin のブロックチェーン分散同期させる方法は、まだ思いついていない。しかし、CVSがGitに進化したように、一つの集合が、幾つものブランチに分かれ、再び集め(マージす)れば良い。
Gitの場合でも、分かれたブランチをマージする時にコンフリクト(競合)が問題だ。Gitでは、手動でコンフリクト部分を修正していた。IPC の場合、手動でコンフリクトするわけにはいかないだろう。いかにして、分散したブロックチェーンのコンフリクトを回避するか、それが最大の問題だが、それを克服する。それが IPC を作るプロジェクトの大きな目標である。

【恒星間通貨 InterStellar Coin : ISC】
太陽系内の場合、最も遠い海王星でも地球から最大4時間20分で通信できる。
それに対して、恒星は桁違いに遠い。最も近い近いアルファ・ケンタウリでも4.39光年離れている。

正直に言って、IPC は最悪の場合、Bitcoin のノードを木星や土星の衛星系に置くことをあきらめ、信頼できる人が管理する地球に置いたノードを、タイタンやハイペリオンから、SSHなど暗号化された通信方式でリモートで操作することもできる。この場合、正式な決済が届くまで、土星まで往復の通信時間である3時間待たされることになるが、それさえ我慢すれば、何とかなる。

しかし、恒星間では、そうはいかない。
最も近い恒星でさえ通信に往復9年くらいかかるのでは、正式な決済が終わるまで10年近く待たされては、商取引が干上がってしまう。
何が何でも、アルファ・ケンタウリなどの恒星系にBitcoin のノードを置く必要がある。しかし、Bitcoin の仕組みでは、地球とアルファ・ケンタウリなどの恒星系のブロックチェーンが同期を取ることは無い。
太陽系内より、遥かに通信遅れのある恒星間で、如何に分散したブロックチェーンの同期を取るか。それが ISC の課題であり、目標だ。


未だ、宇宙に出ても、最遠でも月しか行くことができていない人類が、IPC も ISC も必要ないだろう・・・と言われそうだが、そんなことは無い。
我々ロケット団は宇宙進出を目指している。いつ何時、太陽系内いや恒星間に人類が広がっても良いように、今から、IPC と ISC の開発を始めるのだ。

【異知性間通貨 Inter Intelligence Coin : IIC】
IPC や ISC よりも凄いのが、IICだ。「Intelligence」は「SETI : Search for Extra-Terrestrial Intelligence」の「Intelligence」と同じで、異星の知的生命の事だ。いや、「生命」とは限らない。知的な「機械」かも知れない。

Bitcoin など仮想通貨は、暗号理論を使っている。この場合、暗号とは、素数とかべき乗計算など、要は数学の仕組みで作られている。

数学が人類の知性を超えた 宇宙普遍のものであるなら、その数学自体を通貨とした貨幣が作れるだろう。
現状の Bitcoin には、地球の商取引習慣など、数学以外の要素が含まれている。そこで、Bitcoin から数学以外の要素を取り除き、普遍的な数学だけで再構成し、地球外のどんな知的生命体(知的機械も含む)の間で取引に使えるようにする。それが、IIC だ。

ところで、さらっと「数学が人類の知性を超えた 宇宙普遍のもの」と書いたが、本当に「数学は宇宙普遍のもの」であろうか?

このことについては、2014年に出版された「ノイマン・ゲーデル・チューリング」(ISBN978-4-480-01603-4)と言う書籍に、20世紀を代表する3人の天才の考えが書いてある。

簡単に言うと、3人の天才は次のように言っている。
ジョン・フォン・ノイマン:「数学は人間精神の産物であり、人間精神を離れた数学は存在しない」として「数学的厳密性を不動の前提として受け取ることに警告」している。直接的には書いてはいないが、「地球人類以外の知性だと、別の数学が生まれる可能性がある」と言っていると思われる。
クルト・ゲーデル:「数学は人間精神と独立して存在する。しかし、人間の知性・精神は、数学を超越した存在である」。この場合、地球人類以外の知性が数学を作っても、数学は絶対的なので、地球人と同じ数学になる。
アラン・チューリング:「数学は人類に依存しない。それどころか、逆に人間の知性・精神すら数学の範疇で示される」。この場合、やはり地球人類以外の知性が数学を作っても、地球人と同じ数学になる。

つまり、20世紀最高の天才と言われる3人ですら、意見が分かれるのだ。この3人ですら、判らないようなことが、凡人たる私に判るわけがない。とは言え、ここで迷っていると先にすすまないので、とりあえず「数学が宇宙普遍のもの」と言うゲーデルとチューリングが、ノイマンに対して、2対1で勝って正しいと言う前提で話を進めよう。まあ、こう言うものは多数決で、正しいか間違っているか判断するものでは無いことは重々承知してはいるのだが。

恒星間はおろか、太陽系内ですら、自由に航行できない現在の人類からは、異星の知的生命体に会うことなど、夢のまた夢かもしれない。しかし、やはり、IIC を今から準備しておけば、いつ異星人と会うことがあって、共通の貨幣として使うことができるのだ。

いや、人類が恒星間飛行や惑星間飛行ができなくても、異星の知的生命体が向こうから地球にやってくるかもしれない。
その時にこそ、IIC が役に立つのだ。

とは言え、もし万一、クルト・ゲーデルとアラン・チューリングが間違っていて、ジョン・フォン・ノイマンだけが正しかったら、数学は宇宙普遍のものではなく、IIC の異星人との間で使えなくなってしまうのだけどね。

| | Comments (0) | TrackBack (0)

February 01, 2015

Windows 8.1 ディープな Tips

E302Windows8.1のタブレットPCを購入して、もうすぐ1年。
その間に雑誌や入門書に載っていない使い方を幾つか見つけたので紹介する。
なお、私のタブレットPCは、レノボ Miix 2 8 で有償版Windows8.1でMS Office付き、加速度センサ、GPSセンサの他、ジャイロセンサ、磁気コンパス等は全て付いている。以下のTipsは、私のタブレットPCで全て正常動作しているが、搭載OS・Officeやセンサ等で違いがあるかもしれないので、ご承知おきを。

【Tips その1 パノラマ写真 レベル:初級】
スマホなどのようにパノラマ写真が撮れる。
何の準備も設定も必要ない。
モダンUIのスタート画面から「カメラ」アイコンをタッチして、カメラをスタート。
カメラアプリの画面で、多くのWindows8.1入門書には、右端に「動画・静止画」を二つのアイコンが並ぶと書いてあるが、Miix 2 8の場合、「動画・静止画・パノラマ写真」の三つが並ぶ。
パノラマ写真を撮るときには、この「パノラマ写真」アイコンを押すだけ。少し撮影速度が遅いのが気になるが、タブレットPCをゆっくりと振るとパノラマ写真が撮れる。
パノラマ写真は、ピクチャフォルダーのカメラロールの中に入っている。見たいパノラマ写真を選ぶとパノラマ写真が見れるのだが、タッチやマウスで左右・上下にスクロールできるだけではなく、右端のアイコンをオンにすると、タブレットPC自体を振って、それに連動してスクロールすることもできる。

パノラマ写真撮影時と再生時の動作からみるにジャイロセンサを使っているようだ。同じWindows8.1 タブレットPCであるデル Venue 8 Proは、ジャイロセンサが非搭載なのだが、デル Venue 8 Proでは、パノラマ写真を撮るためのアイコンは表示されなかった。

【Tips その2 数式入力パネル+Microsoft Mathematics レベル:中級】
手書きで入力した数式が微分積分、グラフ表示など、数式処理してくれる。それも無料。
「数式入力パネル」は Windows8.1に標準装備だが、Microsoft Mathematicsは、ダウンロード・インストする必要がある。と言ってもMicrosoft Mathematicsは無料だが。
Microsoft Mathematics のインストや使い方は、、算数、数学の宿題を爆速で終わらせる「Microsoft Mathematics」を紹介するで紹介されているので、ご参考に。
ポイントは、 、Microsoft Mathematics 4.0 (英語)から、「英語」とあるけど構わずインストールすると日本語で使えることだ。

上記リンク先では、「クソ」と酷評されたUIだが、Windows8.1に標準装備されている「数式入力パネル」を使えば、数式を手書きで入力できるので、極めて便利だ。数式を手書き入力する時は、このコンテンツで紹介したタッチペンが役に立つ。

定積分とか、楽々やってくれるので、とても良い。

【Tips その3 IIS + CGI レベル:上級】
タブレットPCなのに、その中でWebサーバーを動かし、CGIアプリを使うことができる。私は日記とWikiを動かしている。
IIS自体は、Windows8.1標準装備だが、CGI用のアプリとかスクリプト言語は追加インストが必要。Apacheなどでの実装経験が無いと難しいだろう。
特にファイアウォールやセキュリティの知識・経験のない人には薦められない。

以下、日記CGIであるtdiaryを例に説明。

・Webサーバーを動かすまで
 ・「コントロールパネル」「プログラム」「Windows の機能の有効化または無効化」
  ・管理者アカウントの確認ダイアログが出たら「続行」
 ・「インターネット インフォメーションサービス」チェックボックスをクリック
 ・「インターネット インフォメーションサービス」の左側の+ボタンを押して展開。
  ・「インターネット インフォメーションサービス」「World Wide Web サービス」「アプリケーション開発機能」「CGI」 を有効にして、「OK」
 ・http://localhost/ にアクセスして確認。
  ・ルート・フォルダは、デフォルトで C:\inetpub\wwwroot
・ruby
 ・CGI としては、 ruby を主に使うので、これをインストール
 ・、RubyInstaller for Windows の Download に Rubyのインストールファイルがあるのでダウンロードして、実行。
・tdiary
 ・C:\inetpub\wwwroot\tdiary 以下に tdiary のファイルをコピー
 ・日記データのディレクトリは C:\forLocalWeb\diary とする。(C:\inetpub\wwwrootの下層にしたり、ユーザーディレクトリーの下層にすると失敗する)
 ・「インターネット インフォメーション サービス(IIS) マネージャー」を起動
 ・左欄の「接続」の「HOGE」「サイト」「Default Web Site」「tdiary」を選択(HOGEは、タブレットPCのPC名)
  ・中の欄の「ハンドラーマッピング」をダブりクリックし、右の欄の「スクリプトマップの追加」をクリック。
  ・「要求パス」:「*.rb」
  ・「実行可能ファイル」:「C:\RubyXXX\bin\ruby.exe "%s" %s」(RubyXXXの部分はインストしたRubyのバージョンに依存)
  ・「名前」:「Ruby」
 ・以下の2つを修正(この部分は、tdiaryの説明を参照のこと)
  ・C:\inetpub\wwwroot\tdiary\tdiary.rb
  ・C:\inetpub\wwwroot\tdiary\tdiary.conf
 ・「インターネット インフォメーション サービス(IIS) マネージャー」の左欄の「接続」の「HOGE」を選択
  ・右欄の「サーバーの管理」「再起動」
 ・http://localhost/tdiary/index.rb をアクセスして確認。
・注意:「Windowsファイアウォール」を有効にしておかないと他のPCから日記の内容を覗かれてしまうので、注意が必要。

【考察】
最初にも書いたが、上記のTipsはいずれも、Windows8.1入門書やパソコン雑誌に載っていない。もちろん、大量に出版されているWindows8.1入門書やパソコン雑誌を全て完全に網羅したわけではないが、大型書店で立ち読みした限り、これらのTipsを見つけることはできなかった。試しに、今、市立図書館から、Windows8.1入門書を6冊借りているが、どれにも載っていない。
また、IISについては「入門書」に載っていないのは当たり前だが、「Windows Server」の設定書にもほとんど載っていない。私が調べた限りでは、IISのWebサーバー機能の有効化までは載っていたが、CGIの設定方法は載っていなかった。

従って、「Microsoft Mathematics」も「IIS」もネットの情報頼り(パノラマ写真は自力解決した)。どういうこと?

ここからは、私の憶測。
沢山出版されている「Windows8.1入門書」も「パソコン雑誌のWindows8.1紹介記事」も、どれも同じような内容。思うにマイクロソフトが「こう言う使い方をして欲しい」と言うことしか書かれていないと思う。
逆に言えば、上記のTipsはマイクロソフトが望んでいない使い方だってこと。
例えば、パノラマ写真。これは別にマイクロソフトに困らないようにも思う。しかし、前述したように、レノボのタブレットPCでは使えるけど、デルでは使えない機能だ。
マイクロソフトに「なんで私のタブレットでパノラマ写真が撮れないんだ」とクレームが来るのを恐れているからかも知れない。
また、「Microsoft Mathematics」も「IIS」も比較的古いソフト。マイクロソフトとしては、近い将来、フェーズアウトを考えているのかもしれない。だから、新規のユーザーが増えるのを嫌っているのかも知れない。

とは言え、「Windows8.1入門書」も「パソコン雑誌のWindows8.1紹介記事」も右に倣えで、同じことばかり書いていたんじゃダメだよね。たとえマイクロソフトが眉をしかめようと「こんな意外なことがWindows8.1でもできる」と言う記事も書いてくれないと面白くない。上記のTipsの中は、いずれも「iPhoneやAndroidだったらパノラマ写真撮れるのに」とか「Linuxだったら、ApacheでWebサーバーとCGI使えるのに」と、Windows8.1だとできないと思い込んでガッカリとだったので、できてビックリと言うもの。(同じことが、最近のLinuxやUbuntuにも言えて、LINUX関係の雑誌が、みんな同じ内容でつまらない)

なぜ、雑誌や書籍が、マイクロソフトが望んでいることしか書かないか。それこそ憶測でしかないが、広告収入のせいなのか、著作権を盾にした押しつけなのか、それとも出版社側が過剰に臆病になっているのか、それは判らない。

実は、マイクロソフトは嫌がるだろうけど、一番欲しいのは、マイクロソフトアカウントだろうが、ローカルアカウントだろうが、マイクロソフトでも他の誰でも、絶対アクセスして欲しくないファイルを、何処にどうやって置けば安全かと言う情報。LINEがメールアドレスを読むようなことがあって以来、プライベートキー(秘密鍵)などを何処に格納すれば良いのか、判らなくなってるんだよね。マイクロソフトアカウントを使うとWebブラウザの「お気に入り」とかの設定が同一アカウントで共有されるってことは個人情報がネット上に流れているってことだよね?そういうことが一切できない場所にプライベートキー(秘密鍵)を入れておきたい。一方、モダンUIを使うアプリは事実上ストアから購入するしかないのだが、ストアを使うにはマイクロソフトアカウントを使うしかない。本当に秘密にしたいファイルは、何処に入れたら良いんだろう?

マイクロソフトが嫌がろうがなんだろうが、私のようなギークがWindows8.1を積極的に使うには、こう言う情報が一番欲しいんだ。

| | Comments (0) | TrackBack (0)

January 26, 2015

『新』アリアドネの糸

E301野口悠紀雄氏の著作に『「超」整理法』と言う本がある。
1993年出版で私が購入したのが94年なので、もう20年以上前である。
この本の傑作なところは、「情報は、分類し整理すること自体、不可能であり、無駄である」とバッサリと切り捨てているところだ。図書館のように専門のスタッフが居る所以外、情報を分類し、索引を作り、検索する整理は事実上不可能であり、個人等での情報管理を図書館方式を理想とする整理を行ったところで必ず破綻すると言うのだ。
だからと言って、情報を無秩序に収集すると、それもまた破綻する。

野口氏は、情報整理の唯一の解決策『アリアドネの糸』として時間軸を提案している。
具体的には、紙の情報は入手or作成した日付を書いた封を開けた封筒に入れて並べる『押出しファイリング』、当時普及し始めたパソコンに関しては年月をフォルダー名にして電子的な情報ファイルを保存する方法を提案している。一方、スケジュール管理とノートについてはパソコンよりも従来通りの紙の手帳・紙のノートが良いと結論付けている。

この本に感化された私は、早速実行してみた。紙の情報は押出しファイリングに、電子情報は年月をフォルダー名に入れた。スケジュール管理は紙の手帳に、ノートはA5サイズの大学ノートにした。

20年を経て、どうなっているか。

『押出しファイリング』は早々に破綻した。早々と言っても5~6年はもったが。
今となっては『押出しファイリング』は悪名が高い。「封を開けた封筒に埃が入る」とか「古封筒を並べるのはみすぼらしい」と言ったものだ。
しかし、私の『押出しファイリング』が破綻したのは、埃のせいでも見た目でもない。野口氏が『押出しファイリング』で扱うと想定していた情報と私の情報では、質・量・保存期間が違っていたためだと推定される。
「超整理法」の中で明言されてはいないが、野口氏の扱う情報は主に他の人が作った情報で、また平均的な保存期間も3~5年程度を想定していたように思える。これなら『押出しファイリング』の長さで160センチほど、仮に8センチに入れたなら20冊ほどになる。この程度の量であるなら、『押出しファイリング』は機能する。
問題は私の扱う情報は、私自身が作ったものが主体であり、その保存期間はずっと長いことだ。
誤解の無いように断わっておくが、私だって扱う情報量の9割9分は他の人が作った情報を受け取ったものだ。しかし、量で言えば1%、個数で言えば、その10倍は自分で作った情報があり、その上、保存期間が長い。
他の人が作った情報は、多くの場合、その人が良く推敲し整理まとめてから発表する。そのため、紙にして10ページ以上になるのが普通だ。しかし自分で作った情報はまとまっておらず、整理もされていない。量的にも少なく、極端な場合、紙一枚に数行の数式を書いただけのものまである。一つの情報あたりの紙の量が少ないが、その代わり数はある。
これらの紙の情報は思い付きを書きなぐったものが大半で、ほとんどが何の役にも立たない。ところがだ、数年とか時には10年以上経って再び必要になる時が来る。もちろん、思い付きの書きなぐりの全てが数年から10年後に再び役に立つのではなく、逆に大半は20年過ぎても再び見られることもないものだ。ごく一部のみが再び役に立つことがあるのだが、この場合の平均は7年くらいではないかと思っている。私の場合、未来を予想してアイデアを考え、それを書きなぐっておくのだが、時代が早すぎて受け入れられないことが多い。その後、何年か経ち、環境が変わり私のアイデアが受け入れられる素地ができると、そのアイデアの情報が再び役に立つ。つまり私のアイデアは平均して7年ほど時代を先取りしているわけだね。
『押出しファイリング』が有効なのは、保存期間が3~5年程度だと既に述べたが、私のアイデアは平均7年、最長20年の保存期間が必要だとすると、まるで足りない。じゃあ、情報の99%を占める他人が作った情報を捨てれば良いじゃないかと言われそうだし、実際にやってもみた。しかし、やってみると自分の作った情報と他人の作った情報を分類するのも意外に大変だ。結局、自分と他人の情報を分ける作業の2回目くらいで『押出しファイリング』自体を止めてしまった。

年月をフォルダー名に入れた電子情報はどうなったか?
実は仕事上の電子ファイルは、いまだに年月をフォルダー名に入れている。
調べてみると、1998年12月から現在まで、ファイル数にして1万8千、容量19.8GBになっている。(98年11月以前のファイルは、PC換装の時にCD-Rにバックアップしたままになっている。CD-Rにバックアップしているくらいだから、容量的には大したことない)
では、プライベートの電子ファイルは?
実は、仕事上の電子ファイルは、ほぼ強制的にMS-WORDやEXCEL、PowerPointを使うことになっている。しかし、プライベートの情報は、LaTeXで作っているし、その他、CやRubyのプログラムなど、自分で作る情報のほとんどはテキストファイルだ。例外は写真・動画と絵くらいのものだ。
テキストファイル形式に限るなら年月をフォルダー名にして管理するよりも良い方法がある。CVSやGitだ。2000年頃にCVSを使うようになり、数年前にGitに切り替えてから、ほぼ全ての自作電子情報は、CVS・Gitで管理している。
他人が作った情報や、自作でも写真・動画・絵の電子ファイルは、困ったことに自宅のファイルサーバーに無秩序に取り込んでいるだけだ。ファイルサーバーを調べてみると、その総量は1TB、ファイル数にして400万を超えていた。

一方、『超整理法』ではパソコンには向かないと書かれていたスケジュール管理だが、これは、逆にパソコン等での電子的な管理に成功している。
2003年にザウルスと言うPDAを購入したことを切っ掛けに電子的なスケジュール管理を始めた。この時はザウルスだけで集中管理していた。2009年にノートPCを購入した際に、スケジュール管理プログラムを自作した。Rubyを使うことで、LinuxでもWindowsでもクロスプラットフォームで使えるようにし、携帯電話も含めて、スケジュール情報が同期できるように作っている。現在、Windows8.1のタブレットPC上でも全く同じプログラムでスケジュール管理している。

最後のノートが最大の問題。
A5サイズの大学ノートは、50冊を超える頃に破綻。
2005年以降、システム手帳に切り替えたが、これも同じくらいの量に膨れ上がり、破綻状態。特に『押出しファイリング』が破綻して以降、自作情報の多くが、システム手帳に書かれるようになってから、情報量の爆発的増加が酷い。
前半の大学ノートは必然的に時系列に並んでおり、後半のシステム手帳の情報はバックアップファイルに分類してファイリングしているが、結局、検索が難しくて再利用ができない状態になっている。その大半は、私の考えたアイデア。多くは「アイデア倒れ」なんだが、検索さえ上手くできれば、再び役立つ時が来るかも知れないのに・と言う状態だ(野田司令の20年以上にわたるアイデアノート・・誰か整理してくれないかな)

『新』アリアドネの糸
ここでやっと本題に戻る。
超整理法は、時間軸をアリアドネの糸にしていた。しかし、時間軸のアリアドネの糸は、せいぜい3~5年の情報管理にしか有効でない。分類は、システム手帳のバックアップファイルで再挑戦したが、やはり機能しないことを再確認しただけだ。

それでは、アリアドネの糸として、時間軸に代わるものは何だろうか?
もっと長い期間、もっと大量の情報を扱える、そんなアリアドネの糸は何だろうか?
前述したスケジュール管理プログラムを自作している時に気が付いた。
新しいアリアドネの糸、それは『乱数』だ。

自作したスケジュール管理プログラムは、複数のパソコンで使えるようにしている。また、電車通勤している最中にスケジュール管理する私のライフスタイルに合わせて、それぞれがスタンドアロンで動くようにしている(今でこそ、電車内でのネット接続は難しくないが、当時は不可能に近かった)

Aと言うパソコンで入力したスケジュール情報が、Bと言うモバイル端末に反映される。電車の中のネット非接続状態でB端末で修正したスケジュール情報が、次にインターネット接続されたときに同期される仕組みだ。

プログラムを作り始めた当初、スケジュール情報の識別つまりアリアドネの糸として、やはり時間軸を使っていた。たとえば、2015年1月30日10時開始の会議なら、2015013010と言う識別子IDとした。しかし、この場合だと、2つの会議がダブったような場合、区別がつかなくなる。たとえば、PC Aから「1月30日10時にA衛星の会議」、端末 Bから「1月30日10時にBロケットの会議」と入力するとコンフリクトが発生する。また、会議の開始時間を変更するとIDまで変わって、元の時間と変更後の時間の2つの会議情報ができてしまう。
そこで、会議の開始時間ではなく、入力した時間を秒単位で表した数字をIDとした。しかし、不都合が起きた。秒単位での時刻ではIDが重なってしまう可能性があるのだ。人間がキーボードやマウスでスケジュールを一つずつ入力するなら、秒単位でIDが重なることはまずない。しかし、「毎週月曜日の10時から定例会議」のようなスケジュールの場合、同時に複数のスケジュールが発生するのだ。「毎週月曜日の10時から定例会議」のような場合、一連のスケジュールを同一としてIDを一つだけ割り振るという方法も考えたが、「2月2日の月曜日だけ、10時30分からに変更」などがあり、それも駄目だ。

考えた挙句、3年ほど前に、IDとして『乱数』を使うことにした。厳密には、『SHA-1と言う暗号的ハッシュ関数を使った疑似乱数』だ。入力した時刻(1000分の1秒刻み)と乱数などなどを元にSHA-1でハッシュを作って、それをIDにする。SHA-1を使ったのは、3年前には今ほどSHA-1の脆弱性が取り出さされていなかったからで、今だったらSHA-256を使ったかもしれない。まあ、個人的な使い方でSHA-1で問題になることもなかろうけど。

スケジュール・プログラムの管理IDにSHA-1ハッシュを使い始めて3年、問題が起きていないから、それなりに有効なんだろう。そこで、スケジュール以外の情報つまり『押出しファイリングに入れていたもの』『電子情報』『CVSやGitで管理しているテキストファイル』『紙のノートに書いているメモ』をSHA-1ハッシュを使おうと思い始めた。(Gitは元々SHA-1で内部管理しているけどね、と言うかSHA-1ハッシュを使おうと思ったのはGitからヒントを得たんだけど)

情報の整理で、大きな問題は、次の2つである。
・保管場所
・検索
保管場所も検索も、情報を再利用する時に必要なものである。と言うか、再利用しないのなら、情報は全て捨てちまうのが最善の方法だ。
すなわち、再利用しやすい様に情報を保管し、検索するようにしておくことが、情報整理に重要なわけだ。

例えば、私が20年以上に渡ってアイデアなどをメモった紙のノートは、本棚の2段を占める。仕事上の電子情報、1万8千のファイル総容量19.8GBを全て印刷するとたぶん大変な量になるであろう。A4コピー用紙は、1枚4グラムらしいので、1つのファイルを印刷すると平均10枚(両面印刷で20ページ)になると仮定すると、680㎏になる。
ファイルサーバーの400万のファイルは、同じ仮定だと160トン(!!)になる。

当たり前だが、こんな量の情報を紙の状態で保存するのは困難だし、ましてや持ち歩くことなど不可能だ。唯一「本棚の2段を占める紙のノート」だけは保存可能な量だが、それでも持って歩くことは不可能だ。
「別に持って歩く必要ないだろう」と言われそうだが、そんなことはない。いつ何時、昔の情報を再利用することになるか判らない。だから、常に持って歩くことができれば、それが本当にベストなのだ。

紙のノートの場合、スキャンすると1ページあたり20kバイト程度なので、ざっと計算しても総容量200MB程度にしかならない。仕事上の電子情報19.8GBなど、最近のノートパソコンなら十分に入る。USBメモリも64GBで2千円強だ。暗号化しておけば、仮に紛失してもセキュリティ上の問題はないだろう。
流石に400万個で1TBの情報は多い。しかし、ファイルが重複している部分を除くと、200万のファイルで800GBに減る。さらに、まず使わないであろう巨大な動画を除くと、350GBになった。これなら、大きめのHDD内蔵のノートPCなら入るだろうし、SSDのように小さなストレージの少ないPCやタブレットでも、500GBのUSB HDDが6000円程度で売っているので問題はない。128GBのUSBメモリが5000円程度なので、それを3つと言う方法もある。要は全ファイルを持ち歩こうと思っても不可能ではないのだ。1TGBのUSB HDDが7000円なので、本当に全て持ち歩いても良いかも知れない。
とにかく、電子ファイルなら全てのファイルを保存することも、持ち歩くことも可能だということだ。

さて、保管する方法があるなら、残った問題は検索だ。どうすれば、再利用する情報を効率良く検索することができるかだ。情報の整理は、検索を効率的に行うかが鍵だと言っても過言ではない。

情報を分類するのも検索を効率的に行うためのものだ。野口氏は、頭から分類整理することを否定しているのではなく、図書館のように専門のスタッフが居れば分類し索引を作ることも有効であることを認めている。個人の情報の場合、分類することも不可能に近いくらい難しい上に、索引を作ることは非効率で非現実的だと言っているだけだ。

では、個人の情報の場合、どうやって検索するか?
全く無秩序で並んでいる情報から目的の情報を探すには、一つ一つ情報を取り出し探している情報かどうかを調べる必要がある。情報の総数が10個なら、最大10回調べれば、目的の情報を取り出せる。運が良ければ、1回目で見つけることができるし、運が悪ければ9回だ(9回目に調べて、それまで全て違う情報なら10個目の情報が目的の情報である)。平均すれば、(1+9)÷2=5回で見つけられる。1000個情報が保管されていれば、平均500回だ。
野口氏の提案のように、時間軸をアリアドネの糸としている場合、1000個の情報の中から見つけるのは、もっと少なくてすむ。
例えば、時間順に左から右に並んだ1000個の情報から2001年1月1日に書いた資料を見つけ出すには、まず、1000個の情報の真ん中の情報の日付を見る。1996年8月17日だ、つまり目的の資料は、もっと左にある。次に真ん中と右端の半分、つまり全体では4分の3のところの日付を調べる。2009年9月20日だ・・・
この方法だと、n回調べると2のn乗の情報の中から目的の情報の資料が取り出せる。10回調べれば、1024の情報から目的の資料が取り出せる。
情報の総量が100万個なら、一つ一つ調べると平均50万回かかるのが、アリアドネの糸を使えば、20回で済む。

アリアドネの糸としてのIDは、時間軸に限る必要はない。
検索に必要な回数を少なくするには、IDを比較した時の前後関係が崩れないことが重要だ。A<B でB<Cならば、必ずA<Cになる必要がある。時間軸なら、Aの日付がBより前、Bの日付はCより前なら、Aの日付はCより前なので、この関係は明らかだ。 グー・チョキ・パーのように グー>チョキ、チョキ>パーなのに、グー<パーのような関係はIDに向かない。

SHA-1ハッシュは160ビットの2進数であり、実体は0から1461501637330902918203684832716283019655932542975までの整数だ。だから、SHA-1ハッシュは、比較した時の前後関係が崩れることは有り得なく、従って、アリアドネの糸としてのIDとしての要件を、少なくとも一つは満たしていることになる。

ここで問題は明らかだ。「そんな大きな数をIDとしても、数自体を覚えられない。資料の内容とIDを対応付けるためには索引が必要で、索引を作ることは、図書館のように専用のスタッフが必要だと野口氏も言っている」と。

まさに野口氏は、この点を付いて、アリアドネの糸としてのIDに時間軸を提案している。資料を作ったり受け取ったりした日時なら索引を作らなくても判るであろうと。

しかし、『押出しファイリング』だけでも5~6年、電子情報を年月をフォルダー名にして保存する方法なら20年も試した結果、野口氏は意図してかしまいかは別として、言外に「資料を作ったり受け取ったりした日時を覚えている」と言う「記憶」を「索引」として使うことを示唆していることに気付いた。

あなたなら、資料を作ったり受け取ったりした日時を正確に覚えているだろうか?
私の経験から言うと正確に日付を覚えているのは、せいぜい数カ月から1年くらいだ。それも超整理法を始めた30代前半の頃の話で、50代の現在では記憶力はずっと落ちている。正確な日付ではなく、年月程度に精度を緩めても、覚えていられるのは、3~5年が限界だ。

今一度、あなたに聞こう。
「10年前の今日、あなたは何をしていたか?」
覚えていないだろう。

私は?
私だって、10年前の今日、何をしたか何て覚えていない。
しかし、10年前の今日、何をしたかは判る。何故なら、私は日記を付けているからだ。

私は、超整理法に関わらず、30年以上日記を付けている。その間に一部抜けもあるが、それを引いても都合25年以上日記を付けている。
私は、もう習慣になったので苦痛ではないが、一般的に日記を付け続けるのは相当きついことらしい。

「アリアドネの糸としてのIDに時間軸を使う」と言うことは、言外に「記憶か日記を索引代わりにする」ことを示唆し、そのためには「記憶の限界ないにするか、多くの人が付けることをためらう日記を付けるか」が必要となることだ。つまり、野口氏自身が言う「索引を作ることは不可能だ」と言う状態に、ある程度以上の期間の情報を扱う場合には、なってしまう。

そもそも、索引を人間が作ること自体間違いなのだ。1万を超える情報、もしかしたら、200万を超える数の情報の索引を人間が作ることは不可能に近い。コンピュータに索引を作らすべきだ。全文検索機能などを使ってコンピュータが索引を作るなら、アリアドネの糸として、時間軸を使おうがSHA-1ハッシュを使おうが変わらない。

SHA-1ハッシュには次のように3つの長所がある。
(1) 分類などを行わずに情報を整理できる。
(2) IDが重複しない。
(3) 情報の重複を防げる。

(1)については、SHA-1ハッシュは時間軸と同等である。しかし、時間軸を除く分類などに比べると、SHA-1ハッシュの方が(少なくとも図書館など専門スタッフが居る場所以外は)優れている。

(2)は、既に述べたように、同時に作っても、また、複数の人が同時に入力しても、(確率的に)IDが重なる可能性は、考慮に当たらないほど低い。

(3)については、少し詳しい説明が必要だろう。
私の自宅のファイルサーバーにある情報は、400万個の総量1TBのファイルが重複を除くと、200万個の総量800GBのファイルになると既に書いている。逆に言うと、200万個の総量200GB、一つあたり平均100KBのファイルが重複していたってことだ。(一つのファイルが重複するのは2つまでとして計算。実際は3つ以上重複する可能性もある)
ハッシュについて知識のある人には常識だが、ハッシュを作成するときに入力が異なれば違うハッシュを生成し、入力が同じであれば同一のハッシュを生成すると言う性質を持つ。入力は文字列であっても数字であってもファイルの中身全体であっても構わない。
私のファイルサーバーの中に重複して存在したファイルは「同じファイル名だが違うフォルダーに入っていた」か「違うファイル名でも中身は同じ」状態だろう。逆に「同じファイル名でサイズ・日付ともに同一でも内容の異なるファイル」もあり得る。
一つ一つファイルの内容を比較すると非現実的な時間がかかる。ファイル毎にハッシュを作って、ハッシュ同士を比較した方が速い。実際、私のファイルサーバーの内容調査した時もハッシュを用いた。
それならいっそ、ハッシュをIDとして管理すれば、重複したファイルでも一元的に管理できるのでは?と言う発想が源流にある。

前述したように、既にスケジュール・プログラムの管理IDに『新アリアドネの糸』SHA-1ハッシュを使う試みには成功している。
次は、『新アリアドネの糸』SHA-1ハッシュを「ファイルサーバーにためこんだ大量の電子情報」と「紙のノートの置き換え」の管理に拡張しようと考えている。

うまく行くかな?

| | Comments (0) | TrackBack (0)

January 20, 2015

タッチペン

E300Windows8.1 タブレットPCを購入して10カ月以上経つが、タブレットPC単体だと絵を描くのが難しく、昔買ったWACOMのペンタブレットを使って、ブログの絵などを描いていた。

ところが、最近になって『タブレットPC単体だと絵を描くのが難しい』原因が判った。なんと、100均で買ったタッチペン(スタイラス)のせいだったのだ。

10カ月前、タブレットPCを購入した時、流石に指では絵が描きにくいだろうと、静電容量方式のタッチパネル用のタッチペンを 100均で買った。
この時、「静電容量方式のタッチパネル用のタッチペンは、100均で売っているのが良い」と言う噂を鵜呑みにしてしまったのだ。

実際試すと、タブレットPCで上手く絵が描けない。アプリが良くないかと、色々試してみたが、良くならない。い~加減諦めて WACOMのペンタブレットで絵を描くようになったのが、4カ月ほど前。

ところが、先日、秋葉原のヨドバシカメラに行った時、スマホ販売所の横に沢山タッチペンが置いてあって、見本品が試し書きができるコーナーがあった。この時、たまたまタブレットPCを持っていたので、色々試してビックリ。ものにもよるけど、100均で買ったタッチペンとは比べ物にならないほど、良く描けるではないか!

結局、そのコーナーで一番書き味の良い「ELECOM タッチペン AVA-PA10TPBK 967円」を買った。最初の写真で、右がAVA-PA10TPBKで左が100均で買ったタッチペン。実は、AVA-PA10TPBKは iPad 用らしいのだが、タブレットPCでも描けるんだから細かいことは気にしない。

E300_2実際に丸を描いてみたのが、次の図。同じく右がAVA-PA10TPBKで描いたもの、左が100均で買ったタッチペンで描いたもの。まるで違う。雲泥の差。

ここで言いたいのは「100均で買ったものは駄目」と言う意味でも「タッチペンは高いほど良い」と言う意味でも無い。

100均ではタッチペンは全てビニールに入っていて試し書きができなかった。だから私が選んだタッチペンが、たまたま悪かっただけで、100均にも良いタッチペンが置いているのかもしれない。また、ヨドバシカメラで試して判ったのだが、高いタッチペンほど描きやすいと言うものでも無いようだ。

私が言いたいことは、タッチペンは実際に書いて試して選ばなきゃダメってこと。

タブレットとの相性もあるし、個人的な好き嫌いもあるので、タッチペンを買うときは、ぜひ試し書きができるところで選ぶようにしよう。
試し書きができない場合は、AVA-PA10TPBKが、お勧めと言えばお勧め。

今回の教訓:「噂は鵜呑みしない」と「実際に試してみなけりゃ判らない」だ。

| | Comments (0) | TrackBack (0)

April 07, 2014

3331でマツド・サイエンティスト・ナイトのイベント

E2946月14日に秋葉原と言うか末広町の3331でマツド・サイエンティスト・ナイトのイベントを行う。詳細は、こちら。
内容は「超低高度衛星 SLATS」 世界一低い高度の衛星を目指す。
高度の低い衛星は、どんな良いことがあるのか、どんな仕組みになっているのかをお話しする。

でも、一番伝えたいのは、超低高度そのものではなくて、こう言う新しいモノは、どうやって発想するのか、それを可能とするやはり新しい組み合わせはどうやって考え付くかってこと。今の日本では、そんな事ができるんだ・必要なんだってことすら十分には理解されてない。それを語ろうと思っている。

| | Comments (0) | TrackBack (0)

March 18, 2014

Windows8.1の8インチタブレットのMiix 2 8を買った

E2932秒月末にWindows8.1の8インチタブレットであるMiix 2 8を買った。
このMiix 2 8、最新のATOMであるBay Trail-T Z3740を使った8インチタブレットであり、昨年11月に発売されてから、ずっと欲しかったものである。
なぜ、2月末まで待ったかと言うと、発売直後は品薄で実売価格も下がらないでいた。これが、クリスマス・年末年始シーズンに続いた。この状態が中国の旧正月である春節まで続くと予想していた。案の定、春節の後、品薄が解消し、価格が下がった。Miix 2 8の生産地は中国だからね。アマゾンでポチったら、特別料金なしで翌々日には届いた。早いものだ。早速、起動してみる。最初にマイクロソフトアカウントに登録するのが面倒な点と、発売からの間にあったアップデートに時間がかかったものの、Winodows8.1本体は、それなりにレスポンスが良く使いやすい。入手2日目には回復ドライブをUSBメモリに移してリカバリー用のパーティションを解放してしまった。私が買ったのはSSDが32GBのモデルなので、ストレージを少しでも確保したい。USBメモリに回復ドライブを作ったので、これでLinuxをインストしても、いつでも戻せるぞ・・と言っても、まだBay Trail-tへLinuxのインストに成功したと言う報告は無いので、未だ挑戦してないが。
その後、不要と思われるプリインストールアプリを消して、かなりストレージを空けた。また、タッチキーボードは意外と使いやすいのだが、流石にタッチタイピングはできないので、Bluetoothキーボードも買い足した。
こんな感じで約3週間弱使っている。たった3週間なので、とても使い込んでいるとは言えないのだが、Windows8.1、特にモダンUIは中々良くできていると言うのが、現在のところの私の感想だ。

と、ここまで読んで「マイクロソフト&Windows嫌いの野田が未だLinuxをインストしてないなんておかしい」と思ったかもしれない。確かに一つ前のノートPCは、買って2週間ほどでUbuntuとのマルチブートにしたくらいの私である。

実は、私はLinux好きなのでは無く、マイナーOS好きなのである。厳密に言うと、現時点ではマイナーOSであるものの、今後ブレークするOSを予想して導入するのが、好きなのである。例えば、今から22年前に、当日主流だったPC9801ではなく、PC/AT互換機を買って、DOS/VとWindows3.0を入れたのも「マイナーOSを導入して、その後ブレークを予想した」からだろう。まあ、私が導入したOSが必ずしもブレークしたわけでもなく、OS-9/68000やOS2のようにマイナーのまま消えていったOSも多い。
その中でLinuxは、ブレークとまでは行かないまでも、普及が進んだOSだ。最初にLinuxを導入したのは15年くらい前だと思うが、その頃は本当にマイナーだった。その後、ディストリビューションが増えるたびに使い易くなり普及が進んだ。今のUbuntuなど、インストはむしろWindowsより楽になっている。
その代わり、マイナーOSとしての魅力はなくなった。我が家のWindowsXパソコン3台はUbuntuへの移行は終わっており、ホームサーバーはDebianであるので、既に4台のLinuxが動いている状態だ。

そこで、今のマイナーOSは・・・と目を付けたのがWindows8.1なのである。
大マイクロソフトの最新OSがマイナーOSだなんてと思うかもしれない。実際、秋葉原の量販店では、Windows8.1のパソコンが大量に売られている。
しかし、ネットなどを見てみるとWindows8.1の評判はすこぶる悪い。秋葉原の量販店でも、Windows8.1より、Winows7パソコンの方が高い価格で売れている。

正確には、Windows8.1そのものの評判が悪いのではなく、Windows8.1のユーザーインターフェース(UI)であるモダンUIの評判が悪い。そのため、私の周りでWindows8.1を導入した人も、ほとんどがWindows7風のクラシックなUIに切り替えるアプリを入れたり、クラシックなUIに近いデスクトップに切り替える以外にモダンUIを使わないと言う人ばかりだ。
そこで、現在のマイナーOSとも言えるWindows8.1&モダンUIを使ってやろうとタブレットPCを購入したわけだ。特にキーボードの無いタブレットなら、モダンUI主体にならざるを得ないだろうからね。

で、使ってみると、そんなに悪くはない。
まず、レスポンスが良い。これは、モダンUIのせいと言うより、Bay Trail-t CPUの性能とWindows8.1がOSとして良くできているからかも知れない。特にWindows8.1のOSとしての出来は、起動・シャットダウンの速さ、USBやBluetooth等のインターフェース設定の容易さ、ネットワーク接続の簡易さ、アプリがほとんど固まらないなど基本的な性能が良く、相当作りこんでいると見受けられる。Vistaの時と大違いだ。
モダンUIも噂程には悪くない。多少、慣れるのに時間はかかるが、3日もすればコツをつかめた。コツをつかむ前に「ナレーター」と言う機能をONにしてしまい、タッチパネルだけの状態でOFFにできずに困ったこともあったが・・・
慣れてしまえば、モダンUIは使いやすい。ユーザーインターフェース(UI)が大幅に変わると、ユーザーが猛反発するのは今に始まったことじゃ無い。Windows95が出た時もWindows3.0が出た時も、そうだった。ひどい話では、PC9801が出たころ、エラーメッセージが漢字で、その上カラー表示だったと言うだけで、非難された。どれも今となっては正常進化で、ユーザー側が食わず嫌いでついて行けなかっただけなんだけどね。
Linuxの世界も例外ではなく、UIの変化で混乱する。私の使っているUbintuも例外ではなく、3年ほど前から、unityと言うUIになったのだが、これが如何にも中途半端だ。それまでのgnomeに比べて見た目が派手になっただけで、特に機能的に強化されたところはない。むしろ色々な機能の在りかが判りにくい分だけ使いにくい。少なくとも2年以上、毎日のようにunityを使っているが、未だにunityの良い点を見い出せないでいる。
だが、unityは未だましで、私にとって最悪のUIの変化は、KDE4だった。KDE3まで、私はLinuxのUIにKDEを使っており、オリジナルプログラムのGUIもKDEのAPIであるQtを使っていた。ところが、KDE4は見た目は派手だが、全く使い物にならないUIで、その上、Qt4もQt3以前とは、ほとんど互換性のないものだった。このため、それまで作りためたプログラムも、ほとんどが使えないと言うことになった。私はKDEに見切りをつけ、gnome2と、そのGUIであるgtk+に切り替えたのである。
これらのunityやKDE4に比べたら、Windows8.1のモダンUIの方が遥かにましである。使用開始わずか数日で、モダンUIはの使い方が判っただけでなく、むしろ今までのUIより使いやすいと思うほどだ。

しかし、Windows8.1を使って初めて判ったのだが、モダンUI用に作られたアプリはモダンUIで動作するんだけど、昔にながらのUI用に作られたアプリは、例えモダンUIのスタート画面から起動しても、クラシックなUIであるエアロを使ったデスクトップに切り替わってしまうのだ。

改めて説明すると、Windows8.1には「モダンUI」とクラシックなUIである「エアロ」の二つのユーザーインターフェースがある。「モダンUI」はスタート画面に代表されるタッチパネルも考えたUIで所謂Windows8.1の悪評の原因となった斬新なユーザーインターフェースだ。片や「エアロ」はデスクトップに代表されるWindows7以前と同じようクラシックなユーザーインターフェースだ。

「モダンUI」はタッチパネルでの操作に向いているが、アプリが対応していないと使えない。モダンUIに対応していないアプリを起動すると、自動的にユーザーインターフェースが「エアロ」に変わってしまう。Windows8.1導入以前から使っているアプリは当然モダンUIに対応しているわけがないから、「エアロ」で動作することになる。「エアロ」はタッチパネルでの操作に向いていないから、キーボードとマウスが欲しい。
じゃあ、モダンUIに対応したアプリに切り替えれば良いかと言うと、そうも行かない。モダンUIに対応したアプリの絶対数が少ないのだ。例えば、この文章はエディタである秀丸で書いているが、秀丸はモダンUIに対応していない。最低限の文字入力はタッチキーボードから行えるが、タッチキーボードにはファンクションキーも無ければ、上下移動のカーソルキーすら無い。もちろん、二本の指でズームする事もできない。秀丸に限らず、モダンUIに対応したエディタを未だ見つけていない。Windows8.1標準のメモ帳ですら、モダンUIに対応していないのだ。この文章を書いている最中に、FirefoxがモダンUIに対応を断念したと言うニュースが入ってきた。モダンUI対応のアプリ増加も期待薄のようだ。

「そんなにモダンUIが良いなら、そもそもタッチパネル操作の元祖のiPadやiPhone、Androidにすれば良いのに」と思う人も居るかもしれない。
私も、そう考えた時期もあったし、実際に安物ではあるが、Androidタブレットを購入して試してもみた。だが、駄目だった。これらは私が求めているものでは無い。

私の結論は「iPadやiPhone、Androidは、消費=受動的道具であって、生産=能動的道具ではない」だ。これらはアプリを自分で作るのではなく、他から受け取るだけだ。アプリどころか、コンテンツですら受け取って、閲覧だけすることがメインになっている。コンテンツに関しては、iPadやiPhone、Androidで作ることは不可能では無いにも関わらずだ。

実際にAndroidアプリの作成を試したこともある。Android単体ではアプリ作成はできず、別途、パソコンが必要だ。そして、そのパソコンには意外なほどのCPUパワーが必要である事に気付いた。何時でも何処でもアプリ開発を行いたいなら、Android端末以外に、それなりにゴツイいノートPCを持ち歩かなければならない。iPadやiPhoneのアプリは試していないが、同じようなものだろう。これでは二重投資だし、第一持って歩くのは重い。

その点、Windows8.1タブレットなら、セルフ環境でアプリ開発を可能だし、コンパイル言語に限らなくても、スクリプト言語によるアプリ開発を環境も揃っている。私のタブレットも、まだコンパイル環境こそインストしていないが、既にrubyによるGUIアプリ開発をできる状態にして、gitでソース管理している。今の電車の中でSSDにクローンしたリポジトリにローカルのブランチを作ってプログラムのデバッグを行ったところだ。残念ながら、ユーザーインターフェースがエアロのになってしまうのが惜しいが。
今後、セルフ開発環境に限らず、組み込みマイコン用のクロス開発環境もインストするつもりだ。まあ、既に残りが気になってきたSSDの容量にもよるが。

「何時でも何処でもアプリ開発を行いたい人なんて居ないよ」と言われそうだ。
確かに、そういう人は少数派だろうけど、全くいないわけではない。現に私が居る。

電車の中でも、散歩している時でも、ふとアイデアが浮かぶ時がある。そんな時、ちょっとしたプログラムを作り、シミュレーションなどして確認したいのだよ。

人が作ったアプリやコンテンツを受け身的に消費し、時にはメールやTwitter、Lineで書き込むだけなら、iPadやiPhone、Androidで十分だろうし、むしろ、そう言う使い方に限るなら、ユーザーインターフェースの作り込みができているiPadやiPhone、Androidの方が良いだろう。

しかし、創造的な使い方をしたいなら、Windows8.1が良いだろう。
まあ、そんな人、滅多にいないから、今後もWindows8.1、特にモダンUIはマイナーのままだろうね。

(ちなみに今回のコンテンツは、Windows8.1タブレットで製作し、テキストは全て秀丸エディタにタッチキーボードでの入力、絵はモダンUIのペイントソフトであるFresh Psintで描いた。ただし画像が大きすぎてアップロードできなかったので、GIMPで縮小した)

| | Comments (2) | TrackBack (0)

February 24, 2014

トラ技ARMライタをUbuntuのOpenOCDで使う(プラス パッチ)

E292トランジスタ技術2014年3月号に付いている『トラ技ARMライタ(写真左)』を Ubuntu の OpenOCD で使い、自作のSTM32F4基板(写真右)に接続する事に成功した。
この時、僅かではあるが、OpenOCD のバグを見つけたので、その報告も行う。

私の Ubuntu は、12.04 で、この上で OpenOCD を CMSIS-DAP 対応にビルドする。

$ sudo apt-get install libtool libudev-dev autoconf libusb-dev libusb-1.0-0-dev
$ git clone http://github.com/signal11/hidapi.git
$ cd hidapi/
$ ./bootstrap
$ ./configure
$ make
$ sudo make install
$ sudo ln -s /usr/local/lib/libhidapi-hidraw.so.0 /usr/lib/libhidapi-hidraw.so.0
$ sudo vim.tiny /etc/udev/rules.d/99-hidraw-permissions.rules
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"
を追加。
$ cd ..
$ git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd
$ cd openocd/
ハッシュは『6c74255ee2569bf2748ecbbd252e2a91bbce6644』だった。
$ ./bootstrap
$ ./configure --enable-maintainer-mode --enable-cmsis-dap --enable-hidapi-libusb
$ make
$ sudo make install

トラ技ARMライタとSTM32F4とは SWDIO、SWCLK、NRESET、GNDを接続。

/usr/local/share/openocd/scripts/target/stm32f4x.cfgの 38行目の「 jtag_ntrst_delay 100」をコメントアウトし、STM32F4の電源を入れた状態で、下記コマンドで、OpenOCDが起動する。

$ openocd -c "interface cmsis-dap" -f /usr/local/share/openocd/scripts/target/stm32f4x.cfg
Open On-Chip Debugger 0.8.0-dev-00350-g6c74255 (2014-02-19-22:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'cmsis-dap'
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: JTAG Supported
Info : CMSIS-DAP: Interface Initialised (SWD)
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
cortex_m reset_config sysresetreq
Info : CMSIS-DAP: FW Version = 1.0
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 1 nTRST = 0 nRESET = 1
Info : DAP_SWJ Sequence (reset: 50+ '1' followed by 0)
Info : CMSIS-DAP: Interface ready
Info : clock speed 1000 kHz
Info : IDCODE 0x2ba01477
Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints

これで、6割方は上手く行く。と言うのも、私が持つ3台の Ubuntu 12.04マシンのうち、1台が下記の様にコアダンプして異常終了するのだ。

$ src/openocd -c "interface cmsis-dap" -f /usr/local/share/openocd/scripts/target/kl25.cfg
Open On-Chip Debugger 0.8.0-dev-00350-g6c74255 (2014-02-24-20:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'cmsis-dap'
Segmentation fault (コアダンプ)

このマシンは、、CPUがAMD Athlon64X2 4200+ 2.2GHz、マザーボードがMSI K9N6PGM2-V と言う古い古い構成。ハードウエアの内どの部分が悪いかは不明だが、OpenOCDのソースコードの「openocd/src/jtag/drivers/cmsis_dap_usb.c」の176行目を
if ((0 == cmsis_dap_vid[0]) && wcsstr(cur_dev->product_string, L"CMSIS-DAP")) {
から
if ((0 == cmsis_dap_vid[0]) && (NULL != cur_dev->product_string) && wcsstr(cur_dev->product_string, L"CMSIS-DAP")) {
に変更して、ビルドし直すと、問題が解決する。
上記の行、たぶん、バグだと思うので、正式のOpenOCDに反映してもらうように働きかけようかな・・・とも考えている。

| | Comments (0) | TrackBack (0)

より以前の記事一覧