読者です 読者をやめる 読者になる 読者になる

エンジニアの備忘録

仕事や趣味でのトラブルシューティングの備忘録

Confirm or Deny: Peter Thiel 和訳

Interview 和訳

Confirm or Deny: Peter Thiel

https://static01.nyt.com/images/2017/01/12/fashion/12CONFIRMTHIEL/12CONFIRMTHIEL-superJumbo.jpg

Peter ThielのインタビューConfirm or Denyがhacker newsで上がっていたので、読みました。
面白かったので、和訳してみました。
拙いですが、今後読みなおす時のメモとして。
Confirm or Denyは、日本のテレビでたまに見る、"○または×でお答えください"みたいなやつのようです。
Confirmが"○"、Denyが"×"という感じでしょうか。

Confirm or Deny: Peter Thiel

Maureen Dowd: カリフォルニアは(合衆国から)離脱すべき。
Peter Thiel: Confirm. 私自身、そのほうがいいと思う。カリフォルニアにとっても、残りの州にとってもよいことだと思う。トランプ氏の再選の助けになるだろう。

M: Meryl Streepは過大評価されている。
P: Confirm。 たぶん過大評価されすぎで、騒がしく"彼女は過大評価だ"と言ってる人達のせいで特に過大評価されている。

M: あなたがTrump氏のテックミーティングの座席表を決めた。
P: Deny。

M: 投資先である3D printed meatを食べている。*1
P: Deny。

M: スターウォーズの皇帝は不当な非難を受けている。
P: Deny。 冗談はよしてください。

M: スターウォーズよりスタートレックのほうが好きだ。
P: Deny。スターウォーズの方が好きだ。自分は資本家で、スターウォーズは資本家の物語だ。スタートレック共産主義者の物語だ。スタートレックでは転送装置(transporter machine)のおかげで必要な物は全て手に入る。*2なので、スタートレックではお金が出てこないのだ。スターウォーズは、ハン・ソロが負債を抱えてしまうところから始まる。だから、スターウォーズの話はお金で始まってるよ。

M: Trump氏のツイートを書いたことがある。
P: Deny。

M: トランプホテルに泊まったことはない。
P: ニューヨークのトランプインターナショナルに泊まったことがあるよ。

M: 常に従業員に何をすべきか支持する"GPSスタイルアルゴリズム"を作るべきだ。 ウォールストリートジャーナルによると、世界最大のヘッジファンドBridgewaterは行っているそうです。*3
P: Deny。きっとそこは、多大な犠牲と不幸な場所だろう。そのアルゴリズムは幸福の方程式とは思えない。

M: 10月にJeff Bezos氏があなたに言及した際に、コントラリアン(逆張り投資家。 人と反対の行動を取る人)は大抵間違えていると言ってました。*4
P: Deny。

M: リベラル派は寛容ではない。
P: Confirm。だが一方的な見方過ぎる。ここではいくつかのニュアンスがあるはずだ。どこにいるかに依ると思う。もし、あなたがアラバマの小さな町の無神論者だったら、そこではもっとも寛容な人だろう。

/* ここは意味がつかめなかった */ M: 楽観主義はもう売らない(売れない?)。Optimism doesn't sell anymore.
P: 複雑な話だ。常に、いくつかは売るだろうが、多くはないだろう。That's complicated. It always sells some but not as much.
/********************************/

M: ザッカーバーグはパジャマ姿で、Facebookの投資を申し込んできた。
P: Deny。実際は、ショーンパーカーが、ザッカーバーグにパジャマ姿でセコイアキャピタルに行かせたんだ。彼らをばかにするためにね。

M: ザッカーバーグのピッチはよくはなかった。
P: Confirm。彼は19だった。彼はとても内向的で、そんなに話さなかった。悪い会社だったら、必死にピッチをしないとけない。でも、いい会社だったら、素晴らしいピッチではなくてもいいんだ。

M: Facebookはメディア企業だ。
P: 公式には否定すると思う。

M: メディアはFacebookを信用すべき。
P: Confirm。でも、どうのように信頼する?Facebookに関する誤った陰謀説がおかしなくらいある。

M: オバマ政権で、Googleは力を持ちすぎた。
P: Confirm。オバマ政権でのGoogleは、(43代大統領)ブッシュ政権のエクソンより力を持っていた。

M: Appleは年を取りすぎた。
P: Confirm。スマートフォンがどんな形で何をするかわかってしまった。これはTim Cookの責任ではない。でも、もうイノベーションが生まれる場所ではなくなってしまった。

M: トランプ政権で、あなたが参加する仕事はない。
P: Confirm。自分はシリコンバレーに関わっていたいと思っている。フルタイムでないポディションで、できるだけTrump氏を支援する。

M: HBOの"Silicon Valley"(テレビ番組)の自分の役が好きではない。
P: Deny。彼は好きだよ。最初のシーズンは観た。私の役は亡くなってしまった。変わり者は悪役より常にいいと思ってるよ。

M: 牛にまたがりながら、父Kalus氏にその牛がどうなるかを聞いて、その牛が亡くなることを知った。その経験から、牛革のラグが好きではない。
P :Confirm。 全くその通りだ。

M: 変わった食事法を実践している。
P: Confirm。パレオダイエット*5を実践してる。

M: 人は砂糖を食べるべきではないと信じている。
P: Confirm。皆そのように説教はするが、実践できていない。

M: 今、株式市場は大きなバブルであると思う。
P: Confirm。

M: モンティ・ホール問題で、ドアを変更する。*6
P: Confirm。

M: 好きな映画はノーカントリー(No Country for Old Men)である。
P: あれは好きだよ。

M: オンラインチェスに夢中だ。
P: Confirm。年に数回、削除してはダウンロードしている。今は持っているよ。

M: 好きな第1手はPawn to King 4である。
P: Confirm。

/* ここは意味がつかめなかった。*/
M: "うまくいっている転機の最中に辞めなければ、すべての政治生命は失敗に終わる"*7というEnoch Powellの引用を好んでいますが、Trump氏にも当てははまる。
P: Deny。彼はスタンダードな政治家ではない。
/********************************/

M: 死と税金は、実は避けることができる。
P: Confirm。

Pull requestsでmerge先とconflictしてしまったとき

git

pull requestしたら"This branch has conflicts that must be resolved"と警告が出てしまった。

merger先とconflictがあった。 ブラウザで見ているgithubで対処法のコマンドが出ているが、これだけだとわかりにくかったのでメモを記す。

gitに慣れていない自分みたいな人だと、一瞬どこでconflictを修正すればいいかわからない。(ちゃんと読めば書いてあるんだけど...)

また、http://sci.hateblo.jp/entry/pull_request_training の"PR がコンフリクトした"以降を参考にさせていただきました。

今回はhoge-branchをmasterにmergeすることを想定する。

まず、hoge-branchにスイッチ

git checkout hoge-branch

そして、githubに書かれいているstep1を実行

git fetch origin 
git checkout -b hoge-branch origin/hoge-branch
git merge master

ここで、conflictしている部分を修正する。hoge.cを修正したとすると

git add .hoge.c
git commit

でOK

そしてstep2を実行する

git checkout master
git merge --no-ff hoge-branch
git push origin master

日本型インダストリー4.0を読んで。インダストリー4.0を勉強してみた。

読書

インダストリー4.0について勉強しようと、長嶋聡氏の"日本型インダストリー4.0"を読んでみた。 日本型インダストリー4.0というタイトルではあるが、インダストリー4.0そのものについて丁寧に説明してあり、事例も紹介されていて、わかりやすかった。

インダストリー1.0とかって?

そもそも、インダストリー1.0や3.0を見たことがなかったが、いきなりインダストリー4.0というのが出てきた印象を前から持っていた。本書によると、インダストリー1.0 ~ 3.0は以下のように区分されるらしい。

  • 第一次 18世紀の蒸気機関による機械化
  • 第二次 20世紀前半の電気エネルギーによる大量生産
  • 第三次 1970年代ごろ、コンピューターによる自動化

インダストリー4.0の特長

そして、インダストリー4.0とは10~20年後に実現すべき製造プロセスのスマート化製造プロセスであって、大きく分けて"つながる"/"代替えする"/"創造する"に分けれるそうだ。

例えば、"つながる"の例では、キネクト技術を使って、バーチャル工場を歩き回れる事例が紹介されている。これにより、工場を新設するときの手戻りを大幅に減らせるそうだ。 また、代替えするの事例では、インテークマニフォールドの試作品製造が挙げられている。この例では、3Dプリンタで、試作期間4カ月-->4日, 試作費用50万ドル-->3000ドルに削減できたそうだ。

今までの工場での改善活動と差がなさそうに思えたが、筆者曰く以下の3点で従来とインダストリー4.0は違うそうだ

  1. 取り組むスケール、対象範囲が広い
  2. 取り組みの頻度。"これまでの週次、月次、四半期というレベルから、日次や1時間ごとへと急速に高まっている。 "
  3. ロードマップと非競争領域の存在

技術の力で、場所(1)と時間(2)のスケールが劇的に変化するということが、自分には印象的だった。

アメリカでは、データ起点のインダストリー・インターネット

また、自分が本書を読むまでにイメージしていたインダストリー4.0はIoTを使った改善であり、このイメージはインダストリー・インターネットに近かった。インダストリー・インターネットはアメリカで起きている、データ起点の製造業の進化である。 アメリカはインダストリー・インターネットの特長は以下の3つ

最近話題になっている、GEがやろうとしていることがまさにインダストリー・インターネットである。 例えば、本書でも紹介されているようにGEは 「ビッグデータ解析を活用して、エアラインに対してモノ売りだけでなく、フライトプランと照合した最適な運用方法の提案まで踏み込むことを目指している。」。 この運用方法の提案まで行おうとしているとことに新しさを感じた。

"日本型"インダストリー4.0

本書で提案されている"日本型"インダストリー4.0については、イマイチわからなかった。 "欧州の「工場起点の製造業復権」、米国の「データ起点のビジネスモデル創出」に対して、日本のデジタル化、ICT活用の方向性は、「お客様起点の付加価値創出 」がふさわしいだろう。" と述べられており、日本の持ち味「慮る」気持ちを用いることが提案されている。 また、日本は現場力が高いので、インダストリー4.0に力で従来のカイゼンを高速で行うことで、さらに製造業プロセスを進化させることができるそうだ。

まとめ

インダストリー4.0について丁寧にまとめられており、わかりやすかった。また、アメリカのインダストリー・インターネットも取り上げられていて、最近の世界の製造業の流れを見ることができる。ただ、日本型インダストリー4.0についてはまだ自分の理解が及んでいないので、もう一度、その部分を読みなおそうと思う。本書の最後には、インダストリー4.0時代に必要な「マネージャーの能力」や「現場の教育」についても書かれており、これも面白いかった。インダストリー4.0について初めて知るにはいい本だと思った。

emacs2.4 CC-modeでなぜかtabでindentされる

emacs

Windows8emacs-24.2を使ってCコードをCC-modeで書いていると、なぜか3段下げたところからtabでindentされてしまう。1段目と2段目は設定通り4スペースでindentされるのに。。 以下の設定を.emcasに書いて、tabでindetしないようして解決

(setq-default indent-tabs-mode nil)

linux mailコマンドで簡単にgmailを送る(Raspbery Pi)

Raspberry Pi Linux

Rapberry piにてlinuxコマンドでgmailを送りたいことがあり、その時設定したときの備忘録。 (最近、google cloud platformを読んだら、pythongmail APIを使ってメール出す方法など書かれていただが、たぶんそれよりも簡単だと思う。)

ブラウザでgoogleアプリパスワードを取得して、raspberry piのSSMTPの設定をするのがおおまかな流れです。

設定

google アプリパスワードを取得する

  1. ブラウザでgmail画面を開き、右上のアイコンをクリック –> “アカウント"をクリック f:id:AngusYoung:20160505210202p:plain
  2. ログインとセキュリティをクリック f:id:AngusYoung:20160505212750p:plain
  3. アプリパスワードをクリック f:id:AngusYoung:20160505212856p:plain
  4. “端末を選択"をクリック –> "その他"をクリック–> 適当な名前を付ける f:id:AngusYoung:20160505210735p:plain
  5. アプリパスワードが生成されるのでメモしておく f:id:AngusYoung:20160505210743p:plain

SMTPの設定

必要なpackageをapt-getでraspberry piにインストール

sudo apt-get install ssmtp 
sudo apt-get install mailutils
sudo apt-get install mpack

SSMTPの設定ファイル(/etc/ssmtp/ssmtp.conf)を管理者権限で編集

sudo emacs -nw /etc/ssmtp/ssmtp.conf

以下のように編集する

AuthUser=youruserid@gmail.com
AuthPass=userpass
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

ここで、AuthPassは自分のgmailアカウントのパスワードではなく"1. google アプリパスワードを取得する"で取得したパスワードを使います。

参考:https://rpi.tnet.com/project/faqs/smtp

メールを送る

以下のようなメールコマンドでメールを送ることができる。

echo "test" | mail -s "Subject" to Someone@mail.com

(備考)linux mailコマンドでmail: cannot send message: Process exited with a non-zero statusが出たときの対応

mailコマンドでgmailを送ろうと設定していたら、mailコマンド実行後に

mail: cannot send message: Process exited with a non-zero status

が出てきて、困った。 調べたところ、sudo emacs -nw /etc/ssmtp/ssmtp.confにAutoLogin=YESAuthLogin=YESの設定を追記したら治った (修正:2017/03/17 黒猫様ご指摘ありがとうございます。) (参考) https://www.raspberrypi.org/forums/viewtopic.php?t=46218&p

Pythonで符号付き8bit整数を扱う(2の補数)

Python

Raspberry Piで他の機器からSPIでsinged char(符号付き8bit)のデータをもらって、Pythonで処理しようとしたが、Pythonで2の補数で10進数に変換できなくて困った. 調べたところ、Pythonの標準関数ではできないそう. stackoverflowにのっていた関数を使わさせてもらって、簡単にできた. http://stackoverflow.com/questions/1604464/twos-complement-in-python

符号付き8bitを10進数に変換

>>> def s8(value):
...     return -(value & 0b10000000) | (value & 0b01111111)

このような関数s8を定義すれば

>>> s8(int('11111',2))
31
>>> s8(int('11111111',2))
-1
>>> s8(int('11111100',2))
-4

と符号付き8bitを10進数に変換できた.

符号付き16bitの場合

>>> def s16(value):
...     return -(value & 0b1000000000000000) | (value & 0b0111111111111111)

iPhone/NexusテザリングにRaspberry PiとPCを接続して、Raspberry Piコンソールを操作する

Raspberry Pi Linux

Raspberry Piを使うときは、Raspbery Piを室内のLANに接続し、同じLAN内にに接続しているPCからTeratermでログインして使っています(Raspberry Piのモニターなし、CUIで使用) これだと出先ではアクセスできないことがほとんどなので、iPhoneやNexusのテザリングを使ってPCからRaspberry Piにアクセスしています. 今回は、その設定方法をメモします.

動作環境

ハードウェアは Raspberry Pi 2 ModelB + WLI-UC-GNM(WLAN USBアダプタ)

WLI-UC-GNMは使っていてトラブルもなくおススメです. Raspberry PiのOSはRaspbian Wheezy

IPアドレス、ネットマスク、ゲートウェイの確認

iPhone/NexusのテザリングをONします. PCを接続してIPアドレスサブネットマスクデフォルトゲートウェイを確認. Windowsだとコマンドプロンプト立ち上げて ipconfigと入力すれば確認できます.

f:id:AngusYoung:20151201204726p:plain

Raspberry Piの設定

/etc/network/interfaces /etc/wpa_supplicant/wpa_supplicant.conf を変更します。 まず、元のファイルは保存しておきましょう。

sudo cp /etc/network/interfaces /etc/network/interfaces.original
sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.original

/etc/network/interfacesを変更します. 今回はaddressはPCで確認したアドレスの最下位bitに1加えたものにします. netmaskとgatewayはPCで確認したネットマスクとゲートウェイを入れます. networkはPCで確認したアドレスのホスト部を0にしたもの、broadcastはホスト部を255にしたものにします.

/etc/wpa_supplicant/wpa_supplicant.confを設定します. スマートフォンの設定をそのまま書きます.

(最後に接続した設定が優先されるようなので、他の設定を残しておくと、そちらに接続してしまうことがあります.)

/etc/network/interfaces, /etc/wpa_supplicant/wpa_supplicant.confを変更したら、Raspberry Piをrebootします. スマートフォンテザリングを有効にしれていれば、Raspberry Piがスマートフォンに接続されます.

Teratermで指定したアドレスにアクセス

PCもスマートフォンに接続したら、TeratermでRaspberry Piにアクセスできます. TCP/IPのホストにRapsberry Piの/etc/network/interfacesで設定したaddressを入力して、OKをクリック. これでスマートフォンテザリングを使って、Raspberry Piにリモートログインできます. f:id:AngusYoung:20151201204925p:plain

f:id:AngusYoung:20151201204934p:plain