You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。久しぶりに更新します。

2018年5月11日金曜日

伝説の棟梁(とうりょう)中井正清 - 戦国末期でも今に通用するリーダがいた!

NHK 歴史秘話ヒストリア 2018/5/9(水) 22:25〜23:10
お城の国ニッポンを作った男 伝説の棟梁(とうりょう)中井正清
をみた。
興味深かった。再放送は、2018/5/12(土) 10:05-10:50

番組ホームページは: http://bit.ly/2KPNkIL

番組から
家康の江戸城 (慶長期江戸城)の絵図が発見されたとのこと。

wikipedia: 中井正清 http://bit.ly/2jLozRv にあるように、大工の総棟梁として家康の命をうけ、江戸城、知恩院、駿府城の天守、江戸の町割り、増上寺、名古屋城、二条城、内裏、日光東照宮、久能山東照宮、方広寺など、徳川家関係の重要な建築を担当した。

なかでも、名古屋城は家康の気変わりで年内に完成させろと急に納期が6ヶ月になり、なんと4ヶ月で完成させた。当時最大の慶長期江戸城も半年で完成させたとのこと。


関連記事: http://bit.ly/2KLxy1n

NHK大阪放送局ブログ
2018年05月09日 (水) 歴史秘話ヒストリア伝説の棟梁 中井正清


 腕自慢の大工を率いるために職人としての技術と、リーダとしての魅力と才能を兼ね備えていた。別に、シリコンバレーを見習わなくても、ドラッガとか言わなくても400年前の日本にはすでにこういう知識があった。とは。。。
 ちゃんとロジカルに考えれば、答えは出てくるものだろう。

 むしろ、下手に聞きかじるほうが危ういのでは... 最近はコミュニケーション活性化とか日本が失ったものを欧米が真似している....

彼の「仕事の流儀」「頼もしきリーダ像」を以下に揚げる)

  1. アイディア・効率化) 最新式の層塔型天守を考案し、2階から上の形状を正方形に統一、柱間隔を統一し、材木を統一規格にして準備。

    補足:名古屋城築城以前は、御殿の上に物見(望楼)を載せた望楼型。各層の形がいびつなので、材木も現場合わせする。
     安土桃山城天守(信長は天主と呼んだが)の石垣は不等辺八角形。秀吉の大阪城もまだ歪んだ長方形。名古屋城築城時代にも、まだ正方形の天守台をつくる技術はなかった。


    名古屋城天守あたりから採用された最新式の層塔型天守 

  2. 先手を打ち、バックアッププラン) タイムリーに調達しようと頼りにした木曽川沿いのヒノキは空前築城ブームで川沿いの木が既に伐採されており、予定通り調達できなかった。代わりに全国から541人の大工を集める準備。
  3. どんな状況でもベストを尽くす。コストダウン) 徹底した競争入札。釘やかすがいなど金物(鍛冶屋)の入札書類が残っている。コメで4280石の又兵衛。3300石の弥左衛門。残り5ヶ月。
    当時の入札書類


  4. 部下の力を引き出す)残り4ヶ月強で材木と大工が揃う。541人の大工を4つのグループに分け適材適所。

    当時の大工組の名簿を4つの区分で色分け

    上記名簿右端から..
      •  緑)  最も信頼する正清の出身集落の大工は、工事のかなめ製材・木材加工を 
      •  黄)  力量をよく知る奈良の大工は、失敗が許されない木材の組み上げを 
      •  ピンク)  安土城築城や足利将軍家御用など名門の棟梁は、大量生産できない屋根の破風や内部の仕上げ等を任せ、プライドの高い彼らを互いに競わせた 
      •  水色)  町の大工など築城未経験者は、簡単な仕事や、人手が不足箇所の手伝い等。しかし、彼らも勤務評定。「精出し者」と付箋が貼られた大工名簿が残っている。大工たちの指揮は高まり工事は急ピッチで進んだ。
      名簿に貼られた、精出し者の付箋


  5. ノーとは言わないすべてを実現する。しかも期待以上の成果) 
    完成した名古屋城は、1945年に名古屋大空襲で焼けるまで約300年 日本最大かつ名城と称された。
戦前の名古屋城 -天守と本丸御殿 - 国宝だった 

21世紀に入って名古屋城は本丸御殿が木造復元された。また、これから天守が完全にもとどおりに木造復元される。

関連記事) https://mainichi.jp/articles/20180509/k00/00m/040/149000c

名古屋城 天守閣は「エレベーターなし」に 市が方針 毎日新聞 2018年5月8日 「史実に忠実な復元」を優先の結論

蛇足)

間違いか史実が変わったのか?
番組で紹介された家康の慶長期江戸城天守の再現CG 

 家康の江戸城天守の高さ70メートルは高すぎる。慶長度天主は天守台込で55メートルと言われている。(ま、内堀の外の低いところからの測定かもしれないが。。)

 また、従来の専門家の分析では、天守は望楼型といわれており、名古屋城のような層塔型が江戸城で採用されたのは、秀忠が立て直した元和度天守から。家光による日本最後に建てられ最大の寛永度天守が天守台を含めて59メートル、天守台が14メートルと言われている。高さ59メートルは20階建てのビルに相当する。成田空港で反対派が占拠して開港が遅れた旧管制塔が高さ約64メートル。93年2月にできた新管制塔が高さ約87メートルであることを考えても、江戸初期に高さ59メートルの木造建築を作った技術は素晴らしく、その長めは当時の江戸っ子の度肝を抜いたことと思う。

 家康の慶長度江戸城天守は、姫路城と同じく小天守を抱える連立式で、場所も本丸の真ん中あたりにあった。このため本丸御殿の拡大に邪魔になり。二代将軍秀忠が家康の死後とりこわして 元和度天守を建てた際には、今の天守台のある北側に移し、将軍の私邸である中奥や大奥の敷地を確保し、小天守を一つにして層塔型に変えたようである。慶長度天守は鉛瓦で白塗りの白亜の天守であったといわれている。

2018年4月30日月曜日

Plugin Hybridは、ホンダかトヨタか?

Forbes Japanで  ついに来たか? ハイブリッドがカッコよくなる時代
 2018/04/22, ピーター ライオン, 国際モータージャーナリスト「ライオンのひと吠え」という記事があった。一部引用すると以下のようにあり、評価が高い。

4月のニューヨーク・モーターショーで発表された3代目インサイトは、てらいのないスポーティ・セダンのようで、特にすっきりしたノーズのまわりには「ホンダらしさ」とガンダムチックな匂いさえ感じられるじゃないか。 
米インディアナ州の工場で生産させるこの新型インサイトは、今年1月のデトロイト・モーターショーで初めてお披露目されたコンセプトとほとんど違いがない。これは、デザイナーたちが最初からホンダのデザイン・フィロソフィーを理解して描き出したという証拠で、とても嬉しいことだ。だって、「コンセプトはカッコ良かったのに、おやおや……」というケースが少なくないからね。

アメリカでの発売についてはこの夏に発表の予定らしく。写真を引用する。



なるほど格好良い。内装も冒頭リンクにある引用すると。。


昔風のスポーツ車的な内装か...

これに比べると新型PriusやPrius Hybrid(米国ではPrius Primeという名前) は、先進的だけれど、若干爬虫類系の匂いがする。ハイブリッドは顔は良いが、お尻が変だし、内装の白が安いユニットバスのようでもある。ホンダの新Insightには、ちょっと興味がわいた。

以下、北米Plugin Hybrid車種3つ Honda Insight, Honda Clarity, Toyota Prius Primeを比較してみた。未発売の新型Insightは調べられなかったが、ClarityとPrius Primeを比較すると、価格辺りの機能でみるとPrius Primeに軍配があがるように思う。
 もちろん、デザインの好み、電池走行距離の違い、機能的のどこに重きを置くかによって、判断は違うだろう。

New Insight)

北米ホンダのNew Insight サイト に行くと。まだ、さほど情報はなく、Stay Connectedへ登録するように言われる。

その下のほうのRelated VehiclesにHonda Clarityという車種があった。

Clarity)

screen shotを引用する。


2018 Clarity Plug-in Hybridが $33,400からとある。その技術情報のサイトは以下
https://automobiles.honda.com/clarity-plug-in-hybrid#technology

LiIon電池で47 mile = 75kmを電池走行可能。

https://automobiles.honda.com/clarity-plug-in-hybrid#
をみると、ベースグレードで安全機能(前方衝突安全、レーン外れ警告、レーン自動キープ等)は全部入り。ツーリングになるとステアリングが革巻きになったりするようなグレードアップ。

Prius Plugin Hybrid: Prius Primeは)

2019年のマイナーチェンジの予想:
2019 Toyota Prius will be restyled to look more like Prime: report by John Voelcker Apr 11, 2018
https://www.toyota.com/priusprime/


現行のPrius Primeも3グレードある)
米国トヨタのサイト https://www.toyota.com/priusprime/ より写真を引用する。
Prius Primeの3つのベースグレード

https://www.toyota.com/priusprime/features/mpg/1235/1237/1239

から比較できる。
電池走行可能距離は、いずれのグレードも25 mileで= 40km 
電池だけでの最高速度は84 mph = 135km/hとある。

PREMIUMで、ナビやバックモニター、自動点灯のLEDヘッドライトなど、ほぼなんでも入りになる。
ADVANCDにあがると、スピーカがJBLになったり、ワイパーが自動雨検出稼働、ステアリングが加温、ルームミラーが自動防眩、トノカバーが硬いやつ、HEAD up Display などプレミアムな機能もあるのだが、
 インテリジェント車間モニタと自動駐車、ブラインドスポットとリアのクリアランスアラートなど、先端の衝突安全系の機能もあるので、なんとなく $33,100から始めたくなる。

税金は付帯料金まで比較していないが、ADVANCEDの本体価格は、実はClarityの本体価格と同じ。電池走行距離は40kmとClarityの75kmよりは短いものの。安全や自動駐車もあり、Prius Primeのほうが機能は上っぽい。あとは、セダンかハッチバックか。全体的なデザインの好き嫌いで決まるのだろうか。。。

Bay Areaの山


はじめに)

「なんとかとニワトリは高いところが好き」... というが、自分も飛行機に乗ると窓際に座りたいし、高層ビルや塔の展望台は必ず登るし、山のうえからの下界の景色を見るのが好きだ。
注: 国際便はトイレが不便なので通路側にするが、ビジネスクラスだと窓際に座ってもトイレに行けたりする。お金があれば乗りたい!!

Summitpost.org) 

https://www.summitpost.org/  というサイトがあって、ここに山の情報がでている。
https://www.summitpost.org/mount-mcpherson/mountains-rocks/p-171146 と次のページ

https://www.summitpost.org/mount-mcpherson/mountains-rocks/p-171146/p2

にBay Areaの71の山が出ている。
ただし、このあたりの最高峰は、やはり
Lick天文台 https://en.wikipedia.org/wiki/Lick_Observatory のある、
Mount Hamilton https://en.wikipedia.org/wiki/Mount_Hamilton_(California) の標高4,265 ft (1,300 m) ようだが、あまりに有名すぎるのか上記サイトには出ていない。
詳しくはLick天文台の節に書く。

いろいろ行きたい山があるが、気になったところの写真を掲載しておく。とりあえずいってみたいのは、Mount McPhersonなので、それは Mount McPhersonの節に書く。

San Francisco国際空港の北にあり、"South San Francisco"という文字が書かれた山がSan Bruno Mountainである。この写真も掲載しておく。





https://brokeassstuart.com/sf/2018/01/09/hiking-the-south-san-francisco-industrial-city-sign/ よりSan Bruno Mountainにある文字の写真を以下に引用する。

これに関するwikipedia: https://en.wikipedia.org/wiki/South_San_Francisco_hillside_sign


Mount McPherson)

標高は985mだが、South Bay(シリコンバレー)では一番高く眺めが良さそうな上に、山頂まで道が通っていて、シリコンバレーからMcPherson山へはかなり近い。Appleの旧キャンパスやハードディスクのSeagateの本社ビル(10200 S De Anza Blvd, Cupertino, CA 95014)などがあるシリコンバレーからも近い。
ここにある、アジア人(日本、中国、インド系)お気に入りの小洒落て美味しい品がある地元のスーパーマーケット Trader Joe'sの店舗からの経路を以下に示す。

Google MapでTrader Jos's (South De Anza Blvd & Bollinger Rd)  からMount McPherson
https://goo.gl/maps/kSe4G2XHYmv
Trader Jos's からMount McPherson


Lick天文台)

シリコンバレーのWest BayからEast Bay方向を眺めると、山の頂上に小さく白いドームが見えるのが、Lick天文台であり、天文観測のイベントが行われたりしている。
http://www.ucolick.org/main/visit/info.html にLick天文台のビジター情報がある。ここから天文台の写真を引用しておく。


危険なLick天文台への山道)
だいぶ前にEast Bayのi680あたりから車でLick天文台まで登ったことがあるが、結構、この山道は怖い。
センターラインのない崖っぷちのガードレールがない細い山道で、ところどころに花が供えてある。晴れた昼間でも怖い。雨の日や夜にいくと映画DeepImpactの冒頭シーンみたいになるかも。。

参考) 映画DeepImpcat Trailer (地球に衝突する彗星を発見した天文学者が山道の事故で車ごと崖から落ちる冒頭シーンは出てこない.. orz ..)


2つに別れた彗星の小さい方が衝突した時の津波の際避難するように、近所の相当に高いところを探しておこう!w  なるべく、誰も知らなくて、道が混まないところ。。
South BayではMount McPherson がいいかもね ... www

2017年10月2日月曜日

PICで作ったBinary Clock

Crowd Funding に、2進数表示の時計があったので、PIC 16F1827と、フルカラーLED 7つ、および時計用の32.768kHzの水晶発振子。あとは、モード設定用のタクトスイッチ(赤、黄色、青)を使って作ってみました。

最初、実験用にdelay関数を使って無限ループでLEDが適当に点灯するプログラムを作り。
動作確認後、32.768kHzで0.5秒間隔で正確に割り込んで、時計変数を更新する仕様にしました。

PIC Kit3のプログラマと製作したBinary Clock
表示モードと時計モードのスペック
   
Easy, Auto1, Auto2, Pro1, Pro2のモードを作りました。

  1. Auto1モードでは、時=赤・分=緑・秒=青が0.5秒ずつ切り替わって順番に示されます。
  2.    Pro2モードでは、時=赤、分=緑、秒=青が加色混合され同時に表示されます。結果、上写真右下のような色になります。
  3. 7bitで2進で示すモードと、3bit, 4bitのBCD (2進化10進数)で示すモードとあります。BCDのほうが初心者向けでしょうが、それでも、時・分・秒を加色混合すると、読めません!!
 以下、Pro2モードの動画です。時・分・秒が加色混合されるので、多分、何時か.. すらもわからないと思います。Pro1として時・分だけの加色混合モードもあります。電源アダプタは余ったAUポイントで貰った、ガラケーのアダプタが5V出力だったので再利用しています。


以下Auto1モードの動画です。BCD(2進化10進数)表示モードです。
 5時45分頃というのがわかると思います。


セットアップモードと各種モードの説明

回路図: 3色LEDをダイナミック点灯かけています。
ダイナミック点灯は2msで切り替えます。
  1. 初めPICのクロックを500kHzにしましたが、あまり最適化されていないプログラム(300行ぐらいでしょうか..) というのもあり、結構ちらつくので、8MHzにしたところ問題はなくなりました。
  2. PICはクロック発信回路を内蔵し、時計用水晶発振子を直付けできるので、回路は簡単です。PICのプログラマ PIC Kit3から5Vを供給して、プログラムをしつつ動かしていたのですが、時計割り込みがかかりませんでした。
    1. 割り込み動作なので、XIDE 付属のsimulator でも問題は不明
    2. クリスタルのつながるT1OSO, T1CKIは、それぞれPICのプログラム信号 ICSD (データ), ICSC (クロック)で、PIC Kit3の負荷につながるので、これをつけたままでは水晶発振子が発信していなかったのが原因でした。
    3. 水晶発振子には68pF (指定では33pFですが)でGNDに繋いでいます。PIC Kitの案内には、ICSD, ICSCにはキャパシタは繋がないこととありますが、この程度のキャパシタでは問題はないようです。なしでは、水晶発振子が動かないでしょう。。
  3. タクトスイッチはPICのWUPモードで内部pull upしたのですが、どうも誤動作するので、10k Ohmのpull upを3本追加しています。
  4. MAC OS-XではUSB接続のPIC Kit3が認識できないので、win10に移したのですが、こちらは、日本語のfolder/file名がコンパイル時に認識できなかったり、日本語文字コードが化ける(UTF-8のMacと、S-JISのwinで違うし。。)ので、ファイル・フォルダ名・コメント等は全部英語が無難に思います。
  5. プログラムはCで400行程度。PICのプログラムメモリ利用率は20%ぐらい。
  6. XC8ではPICのconfigurationは#pragmaで記述。(生成支援ツールもあります)
  7. そのほかのレジスタは、マクロとして定義されているので、入出力は極めて簡単。
  8. 12 bit命令の8bit PICは直接指定できるプログラム・メモリ空間が小さいのですが、Cで書けば、全く気にしないで書けます。
  9. その他、X IDEやXC8のCコンパイラは1行に、セミコロンで区切った複数文が書けない、intが16 bit、enumが使えない、など、若干違いがありそうです。






テストに使ったランダム点灯をデモモードとして残しました。Upを押しながら、Modeを押すと、出入りできます。デモモードでは、Mode, Up, Downのタクトスイッチそれぞれを押すと、赤・緑・青の点灯が抑制されたり、されなかったりを制御できます。

以下ビデオです。


プログラムに先立ち、I/Oピンの使い方、Configuration、変数名・関数名をexcelで仕様化しました。

が、例によって書いているうちに、変数名・関数名は変わりました。
作りながら考えるのがプログラミングの醍醐味でしょうね。
参考資料)
  1. 電子工作のための PIC16F1ファミリ活用ガイドブック 大型本 – 2013/4/11
    後閑 哲也 (著) 3,456円  http://amzn.to/2xJjKAZ  ー がわかりやすいです。
    ただ、コンパイラやツールが若干古く、以下関連リンクを参照する必要があります。
    タイマ割り込みの設定は、この本では、16F1937について説明があり、ところによっては16F1527だったりしますが、今回使った16F1827でも、ほとんど同じでした。



関連リンク)
  1. PIC 16F活用本作者のページ: http://www.picfun.com/ いろいろ情報あり。
  2. Configurationの説明あたり http://www.picfun.com/p818frame.html
  3.  XC8のconfigurationは自動生成して #pragma configをつかう http://www.picfun.com/bookmntU.html
  4. PIC 16F1827 と他のPICは若干違うので、そこは、PICの英語仕様書をダウンロードして確認のこと。

2017年8月4日金曜日

ICチップを埋め込んで個人認証する条件??

個人認証は難しい。
ICチップを埋め込んで認証するのには、「牛や豚などの家畜じゃあるまいし」という拒否感もある。最近以下のようなニュースもあり、賛否両論である。

News Week: 2017年8月1日(火) 米国企業で初、従業員の体内へのマイクロチップの埋め込みを実施   http://www.newsweekjapan.jp/stories/world/2017/08/post-8107_1.php 
 より以下に写真。右手の甲にマイクロチップを埋め込み、入退場、自動販売機の精算等ができる


右手の甲に埋め込まれるRFIDチップ

認証している場面(冒頭記事にある紹介ビデオより)

記事中にある懸念・課題は

  1. セキュリティ)チップは暗号化されているというが本当に安全か?
  2. プライバシー)常時監視されるおそれがある
  3. 人体への安全性)
個人認証の難しさ)
  1. 認証(Authentification)の根拠問題)
    1. 戸籍謄本・抄本、米国で言うBirth Certificate には顔写真がなく、悪意を持って引き出して他人になりすますことができる。
      会社やweb siteの認証につかわれるhttpsも、公開鍵暗号が使われるが認証局がその公開鍵を管理することで、正当性を認証するが、認証局への登録の正当性、認証局の信頼性が課題になる。以下の参考記事のような事件も起きている。

      参考記事): https://japan.cnet.com/article/35104053/ 
      グーグル、中国の認証局WoSignの証明書を拒否へ--「Chrome 61」から Charlie Osborne (CNET News) 2017年07月11日 
  2. ID盗難問題)
    1. 電子的な盗難: 電池不要な受動式で安価な非接触方式としてICタグがあるが、wikipedia: ICタグ: http://bit.ly/2fciOx9 にあるようにこれはEPCコードという固有のIDを送って判別する。したがって、コードを盗む悪意の端末にかざしたり、盗聴されると簡単にIDが盗まれうる。
      Suica(方式はFelica: https://ja.wikipedia.org/wiki/FeliCa ) や、それとMiFare (https://ja.wikipedia.org/wiki/MIFARE ) を統合した最新のNFCカード方式( http://www.orangetags.co.jp/what_felica.html )などでは、チャレンジレスポンス方式で、秘密鍵がもれなくなっていたり、通信が暗号化されている模様。
    2. 物理的な盗難: 手の甲の所定位置に埋め込むとわかっていれば、薬で本人を眠らせて、チップを抜き取りなりすます犯罪もおきえる。
  3. プライバシー問題)
    1. 個人が特定できる、かつ、非接触・受動式ということは、政府や企業が受信器をおけば、どこに誰が居るかつねに監視できる。これを、懸念する人がおおい。
対策)そこで、上記の各点に対して対策を考えてみた。後ほど説明を追加するが、まずは簡単に列挙する。

  1. 認証)子供が生まれた時に、一生使えるIC鍵を埋め込む。米国でいうSocial Security CardをID化して埋め込むようなもの。。この番号は一生変わらない。
  2. ID盗難問題)
    1. 電子的:十分な暗号長を持った、公開鍵暗号を用いたチャレンジレスポンス認証とする。秘密鍵は絶対にチップ外にでないので、電子的な盗難は非常に困難にできうる(後述)
    2. 物理的 :誕生時に手の甲など所定の位置にある、主鍵と、人によって場所が異なり、埋め込んだ医者しか知らない、認証鍵(それも複数)の両方を埋め込む。
      入国審査や警察、入場チェック等信頼できる組織にチェック機をおき、主鍵のIDと認証鍵のIDの一致をチェックする。これらのIDが一致しなければ犯罪の可能性ありということで、物理盗難の抑止力とする。
  3. 冗長性)
    1. 右手の甲、左手の甲とか主鍵を複数場所に埋め込んで、故障時に備える。
  4. プライバシ)
    1. 主鍵単体では認証できないことにする。
      1. 主鍵は、ペアになっている活性化鍵と通信できないと、認証を行わない。活性化鍵は10cmとか近接距離に置かれ、これも受信センサから電源供給される方式にする。
      2. 活性化鍵は、たとえば、指輪や腕時計型の端末に入れる。
        1. このIDは、秘密鍵と違って漏れても、主鍵がなければ役に立たないので、電子データ(ファイル)で引き渡しても安全であり、貰ったデータに対して、ユーザが自分の好みにあった、端末、指輪、スマートウォッチ等を選択できる。
        2. 政府・勤務先に活性化鍵が漏れると、プライバシ管理を自分以外ができてしまう。ただし、政府や企業は、特定の活性化鍵がだれに対応するのか管理しないとならない。これは、活性化鍵を盗むと同時に顔認証に登録して、主鍵との関係を保存できてしまう。ともあれ、企業や政府が要請しても、安易に活性化鍵を出さないように、意識づけないとならない。
      3. 活性化鍵をoffにしておけば、プライバシーは漏れない。指輪型であれば指輪を外すなりすればよく、スマートウォッチ型であれば、手をかざしたときのみonになるとかすればよい。
      4. 将来的には、自分の意思で直接認証をコントロール(必要なときだけon)したい。筋電位等やBMI(Brain Machine Interface)が使えると思う。
チャレンジレスポンス認証・公開鍵認証とは)
 今後記載

実装例)
 複数例を今後記載予定

1. スマートウォッチ型の活性化鍵と主鍵を用いた場合

  1. 認証端末が自分の公開鍵と秘密鍵で暗号化したランダム番号を活性化鍵に送る
    (注: シーケンスのあいだじゅう、このランダム番号を公開鍵・秘密鍵で暗号化してやりとりする。すなわち、データを盗聴して、同じデータを再生して偽証しようとしても、やりとりごとに違うランダム番号を正当な方法で暗号化していなければ、偽証できない。)
  2. 活性化鍵は、認証局に公開鍵を確認して、端末が誰かを確認。しつつ、受信したランダム番号を端末の公開鍵で解読(端末以外は公開鍵に対応した秘密鍵がないはずなので、これで端末が本物であることが認証できる)。そしてどの端末の認証リクエストを受けたのか記録する。
  3. 活性化鍵は、活性化用の秘密鍵・公開鍵のペアと、主鍵の公開鍵を持っている。
    活性化秘密鍵で端末から受け取って解読したランダム番号を暗号化して、主鍵の公開鍵とともに端末に送る。
    暗号化通信には、認証のための主鍵の公開鍵が必要で、それは、この操作で提供される。これが、次のstep4で本人認証にもなる。
  4. 端末は、主鍵の公開鍵を認証局に送って、主鍵を持っている本人を認証する。
    端末は主鍵の公開鍵で、先に使ったランダム番号+質問状を暗号化して、活性化鍵から受け取った活性化秘密鍵で暗号化されたランダム番号と共に、主鍵に送る。
  5. 主鍵は、活性化公開鍵と主鍵の秘密鍵・公開鍵のペアを持っている。
    1. 活性化公開鍵で活性化鍵が活性化秘密鍵で暗号化したランダム番号を解読する。
    2. 主鍵秘密鍵で、端末が送った ランダム番号+質問状を解読する。
    3. 上記1,2のランダム番号が一致しないときは、不正リクエストとして無視。(つまり、活性化鍵が本物でない)
    4. 3をクリアした場合には、質問状に対して答えを書き、さらに受け取ったランダム番号をつけて、主鍵の秘密鍵で暗号化して、端末に送信する。
  6. 端末は受け取った、暗号を主鍵の公開鍵で解読し、ランダム番号が一致した場合に、質問状の答えを確認する。
随想)
 もう3-4年前にFacebookで議論して、出た課題への対策を考えたまま眠らせていたのですが、実際に手に埋め込んだ冒頭記事がでてきたので思い出しました。

 特許にしてひと財産.... とも思ったのですが、この程度のことは既に考えている人がいそう、専門家ならなおさら、、ですし、こういう一般例は公知にしてパテント・トロール http://bit.ly/2faJ2QG をブロックして、具体的な実装を考えて苦労した人にこそ特許を与えるのが良いとも思います。
 まだまだ、いろいろ考えないとならないこともありますし、考えるのも面白そうです。大きなビジネスにするには施策も必要ですし、これも面白そうです。
 もしも真面目にビジネスされたい方がいれば、連絡してください。大企業で社内政治に巻き込まれるのは歓迎しませんが。。ww


2017年7月10日月曜日

LinuxサーバにMySQLを設定した

以下に投稿した機能を拡張するために、MySQLを家庭内ゲートウェイであるLinuxサーバに立ち上げて、RaspberryPI等、家庭内IoTシステムからremote accessして、データを共有できるようにした。

2017年6月12日月曜日

 目次)MySQL化の理由は最後の背景で説明する。
  1. MySQLのinstall
  2. remoteアクセスの設定
    1. 設定ファイルの変更
    2. RasperryPiからのアクセス実験
    3. rootではアクセスできない
  3. Databaseの移動
    1. RAID (mdadm)のpartitionへの移動 (堅牢化)
    2.  Apparmor (CentOSでいう、SELinux) の無効化
  4. おまけ)MySQL workbench on Mac OS-X
  5. 背景
    1. microSDカードの書き込み寿命
    2. 対策
      1. USB HDDの利用
      2. MySQLなどremote databaseの利用

MySQLのinstall)
 Ubuntu 16.04 LTSなので、

2016-11-17 Ubuntu 16.04 LTSにMySQLをインストールする 
の通りに aptでinstallして、設定をすれば、まずはlocal machineで使えるようになった。上記にある、サンプルのtest_dbも、この通り動いた。

Remote Accessの設定)

  1. LinuxサーバのUFW を設定して、標準の3306ポートを開いた。
    参考)
    1. UFWの設定: http://qiita.com/yoh-nak/items/46935af3c5c4036e93b3
    2. コンソールからGUFWのほうが簡単かも:
       http://sicklylife.at-ninja.jp/memo/ubuntu1404/gufw.html
  2. ついでに /etc/sysctl.conf を書き換えてrebootしてIPv6も止めた。
    参考) http://l-w-i.net/t/ubuntu/ipv6_001.txt
  3. remote accessの設定)
    1. だが、telnet ipaddress 3306をやってもつながらない。
       /etc/mysql/mysql.conf.d/mysqld.cnf   の設定変更が必要
      bind-address           = 127.0.0.1
      でローカルマシンからしか接続できなくなっているので、これを、
      bind-address           = 0.0.0.0
      に書き換えてどこからでも接続できるようにする。
      参考)http://bit.ly/2uVx9Rl  How to allow mysql remote connections via particular interface
    2. RasperryPIからのアクセス実験

      1. rasp01 ~ $ mysql -h 192.168.0.88 -u user -p
        Enter password: 
        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 26
        Server version: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

        Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
      2. :
        mysql> connect test_db;
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A

        Connection id:    27
        Current database: test_db

        mysql> show tables;
        +-------------------+
        | Tables_in_test_db |
        +-------------------+
        | emp               |
        | lights            |
        +-------------------+
        2 rows in set (0.00 sec)

        mysql> select * from emp;
        +------+------+
        | id   | name |
        +------+------+
        |    1 | aaa  |
        |    2 | bbb  |
        +------+------+
        2 rows in set (0.00 sec)

        mysql> 
    3. ところがRasperryPIからrootでMySQLに入れない。mysladmin でやってみるとアクセス権がないとのこと。
      rasp01 ~ $ mysqladmin -h Linux02 -u root -p version
      Enter password: 
      mysqladmin: connect to server at 'Linux02' failed
      error: 'Access denied for user 'root'@'192.168.0.122' (using password: YES)'
    4. サンプルテーブルでの実験からも類推できるし、以下のようなやり方でできると書かれた webサイトもあったが。。。やり方がまずかったのか上手く行かない。mysql> grant all on *.* to 'root' identified by 'rootのパスワード';
    5. どうもlocal machine上で 管理table mysqlの設定をいじればよいらしいがよくわからない。
    6. Local MachineからMySQLにroot権限で入って見える特権データベース
      (以前、SQLite3で、壊してひどいことになった。)

      localhost以外で追加してみようとするが。。
      SQLは初心者なので、、、よくわかりません。。
  4. Databaseの移動)
    1. Quitta http://bit.ly/2uXMLnp をみて、ファイルをmdadmのpartition (/homeからのsymblic linkへ移動)
    2. が、/etc/init.d/mysql restart するとコケる。

      # journalctl -xe でみると、apparmor (CentOSでいう、SELinux)が拒絶している) 
    3.   https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1610765 を参考に、Apparmorの設定 /etc/apparmor.d/usr.sbin.mysqld あたりを書き換えたが、なんどやっても上手く行かない。
    4. CentOSでは、SELinuxは扱いにくいので、無効化(おすすめは、http://red.ht/2uZTaP1 にあるPermissive mode) なので、Ubuntuでも無効化することにした。
    5. Grubからdisableしてrebootして、問題になくデータベースは移動した。
      しかし、Databaseを移動すると何がどうなってダメなのか不明。
    6. おまけ)rootになって # journalctl -xe をすると、Mac OS-XにインストールしたCanon printer drive (tools) のbonjure が、大量にbroadcastメッセージを出して、UFW (iptables) つまりlinuxサーバのfirewallが拒絶メッセージを出している。なんだか怪しい。。
  5. おまけ)MySQL Workbench on MacbookPro OS-X El Capitan.
    Mac OS-Xからの確認用に、
    https://www.mysql.com/jp/products/workbench/ からダウンロードした。グラフィカルにMySQLサーバに触れる。
    MySQL Workbenchでサンプルdatabase/tableの操作

  6. 背景)microSD cardの書き込み寿命
Makerfairを主催する米国の雑誌Makerとは比べ物にならないほど内容が詳細で充実した..日本の誇る雑誌 トラ技 2017/7月号 (CQ出版社の画面 http://bit.ly/2tO4iB3 を引用)にラズパイ特集があった。実は、CQ出版社にはバックナンバーがほとんどあって、買い逃した本も上記リンクから行けるCQ出版のweb shopの通販で送料無料で数日で届く。カード支払いも可能。

CQ出版社webのトラ技2017/7月号情報

CQ出版社webにあるトラ技2017/7月号の目次情報

その第4章が、
「数Kバイトの小データを10年間記録し続ける高信頼メモリの技術
寿命対決! コンビニSDカード vs 産業用SDカード」であり、
ラズパイで使った時のmicroSDカードの寿命を徹底評価していた。
http://bit.ly/2tO4iB3リンクから各章の1ページ目がpdfで閲覧できる。
SDカード(Flash memory)の詳細な仕組みから始まり、8GBのmicro SDカードを装着したラズパイで、4KBのファイルを1秒間に100個記録し続ける(古いのは消す)データロガーとして使ったときのmicro SDカードの寿命を算定していた。TPSM-GS1Sという産業用のSLC(Single level Cell)カードだと10年持つが、通常売られているMLCタイプの安いmicro SDカードだと18日でダメになるとのこと。(ここを特集するのは、さすが、トラ技。)
そりゃそうだ、wear levelingも適当な安価SDカードだし。。
さすがに、1秒間に100個ずつファイルを記録することもなく、1分間に1個。同じファイルへの書き込みはbufferされていると考えると、もうちょっと持つのかもしれないが、小さいファイルを更新しまくるlinux/unixのストレージが市販microSDカードというのは、いかにも心配である。
記事にある書き換え寿命の仕様(保障)値を引用すると、
SLCで10万回、p-SLCで2万回、MLCで3000回。
実効最小ではSLCで21万回、p-SLCで11.8万回、MLCで1.2万回。
 amazon.com http://amzn.to/2tNVmvM では、p-SLCの16GBのmicroSDカードが10枚 $815で、SLC 4GBのmicroSDカードが10枚 $805で売られている。---- 高い!!!!

拙blog: http://bit.ly/2sccXwe に掲載した、RaspberryPIを使ったコンセント制御。cron でアプリが1分ごとに起動して、タイマー機能を実現する作りになっている(簡単なので..) 。
機能拡張するのに状態管理をファイルでやろうと思ったが、危ない。。常時起動しているdaemonにするか、状態管理daemonと通信させるか、ちょっとやり方を考えたい。と、考えた結果、MySQLサーバを立ち上げて、今後増えるであろう、いろいろな家庭内IoT機器の情報をRelational Databaseで共有して、検索・変更を容易にすることにした。
コンセント制御では、WebベースなのでPHPを使っており、PHPにはMySQLをアクセスするライブラリもある。

Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (Learning Php, Mysql, Javascript, Css & Html5) 4th Edition (amazon.com http://amzn.to/2uPRBmF でベストセラーらしい。以下表紙写真)にも、PHPとMySQLの連携について書かれている。
参考になりそうなR'REILLY本


2017年6月12日月曜日

RaspberryPIを使って、コンセントを制御する。


久々に投稿します。かなりネタが溜まっているので、順次投稿し、本稿も随時加筆します。
RaspberryPI 2 modelB v1.1 を使って、電灯制御を作っている。

方針)


  1. 他にもRaspberryPI, Raspberry PI3 BやRaspberryPI Zero W等も購入した。
    おいおい拡張したい。
  2. RaspberryPI 3B+ には、Ubuntu mateをいれ、Elecrow RPA05010R HDMI 5-Inch 800x480 TFT LCD Display with Touch Screen Monitor for Raspberry Pi B+/2B/3B をamazon.comで購入して、接続しタッチパネル操作できるようしている(以下写真)。DRAMも多いし、CPUも速い(別途投稿したい)
  3. Raspberry PI 2 modelB v1.1はRaspbian Wheezyで使っている。設定法や上記Ubuntu mateの設定法は別途記事にする。(上記、Ubuntu mateやJessieとかも入れてみたが、やはり、木の実マークのWheezyが良いかも)
  4. 電灯制御に関する記事: https://www.samkear.com/hardware/control-power-outlets-wirelessly-raspberry-pi の通りにやった。

    1. ここではEteckcity という430MHzの無線のリモコンコンセントを使う。
    2. リモコン制御はSMKNという430MHzの送受信カードセットを使う。信号はRS232Cのような、調歩式の振幅変調(1,0)コーディングではなく、パルス幅(FM)コーディングなので、RaspberryPI等のGPIOを使うのが良さそう。
      1. 以下に書いたwiringPIライブラリを使って信号を入出力するバイナリがある。
        1. 送信機で押された無線コードを表示するRFSnifferを起動して、無線コード(10進6桁から7桁)を得る。
        2. codesendというアプリにコードを与えると無線送信する。
      2. このカードも大変安い。5個入りパックの無名ブランドはもっと安い。
    3. 以下にamazon.comでの値段を掲載する。
  5. 上記では、wiringPIというパッケージを使い、GPIO (RaspberryPIシリーズの入出力ポート)を制御している。
    1.  GPIOポートの結線図:: https://projects.drogon.net/raspberry-pi/wiringpi/pins/  
    2.  例題LED点滅: http://wiringpi.com/examples/blink/
  6. 上記の点滅を改造して3色LEDの点滅アプリ (blinkRGB) を作った。root(特権ユーザで実行する必要があるが、以下のようにつかう
    1. 自動点滅: 引数なし。以下のように点滅する。
    2. 所定点滅: (R,G,B) = で所定色を指定。(1,1,1) = 7が白を示す。4が赤、0が黒など。
  7. スイッチで電灯を点滅させたいので、Eteckcity から電線を引き出した。従来、TP-Link Smart Plug w/ Energy Monitoring http://amzn.to/2scgjzr  からスイッチを引き出していたので、このプラグが入るジャックにして、コンセント部分を入れ替えて使えるようにした。


    従来のTP Linkのもの

    引き出した線が繋がる、壁スイッチ

    改造作業。TP LinkもEteckCityも、もともとスイッチがあるので、そこから線を引き出すだけ
    左: 従来のTP Link,  右: EteckCityにつけた壁スイッチへのコネクタ。
  8. RaspberryPIへ外出先からのアクセス
    1. RaspberryPIは、192.168.のローカルLANからしかみえない。
    2. Broadband routerからsshポート(安全のためport番号は規定の22番とは全然違うものにしている)をポートマッピングしている、ゲートウェイのLinuxサーバ ホスト名: Linux02 がある。
    3. Linux02は No-IPのDynamicDNSサービス(有料。そうしないと更新が面倒)を使いホスト名を与えてある。無料だったminiDNSはサービスが打ち切られた。
    4. RaspberryPIのapache2, sshdに対して、Linux02でsshトンネルを掛けて、外部からアクセスしている。sshポートが特殊なうえ、rsaのprivate鍵がないとログインできないので、ハッキングに対する安全性は高いと思う。
  9. 電灯制御のweb pageを改造している。
    1. 設定部分のファイルをJSONにして分離。
      1. 部屋・電灯の名前、受信機がないスイッチ、つながっていない受信機などが分かるアノテーションをいれた
    2. 読み込み部分とtrigger部分を分離
    3. デバッグ用表示を追加: デバッガphpdbgを使おうとphp 5.6をコンパイルしてみた。php 5.6は、phpdbgが使えるまでには至らず。
    4. タイマー設定のJSONを読み込み表示。(末尾に写真をつける)
      1. formのradio buttonでのPOSTにしたが、いちいちhtmlを読み込むのは面倒なのでJavascript化したい。
      2. スイッチの状態で色を変え、また、現在の状態をJSON (or cookie) に保存したい。
      3. 肝心のタイマーのコード(多分PHP)を完成させる。
制御画面)

現状のもの:Allでは全部のリモコンにon/off信号を送る。webからのon/offは動作している。

タイマーは、JSONの設定ファイルの時刻設定を表示。ただし、タイマーの機能をする本体はまだない。タイマーformのラジオボタンもJavascript化する予定。。

リモコンパラメータなどが入った設定JSONファイルを読み込み、表示も自動作成する。
送信ボタンだけで受信機がない行を排除した表示。つかっていないコンセントを表示しない仕様にも簡単に切り替えられる。

上記と違い、送信機にある全部の無線信号を表示させたもの。

記事のものをとりあえず動かした版、手でhtmlを改造してB1,B2,B3を追加。