移動式のブログ

ガジェット、アニメ、プログラミング、考えたことその他色々・・・特にこれといったテーマはないカオスなブログです。

bot 作った

Twitterbot 作った



ツイッターのボットを簡単に作成できるサイトとかもあるが、自分で作ってみた。

twitter.com
↑こちらが作成したbot

phpqueryなどで、自分が書いたブログの内容などを収集する。
その収集した内容を組み替えて文章を生成して、毎回異なる内容をツイートをさせたかったからだ。

このブログの記事にアクセスするたびに、ボットのプログラムのサーバーのプログラムが自動で実行されてツイートするようになっている。
ボットのツイート内容は、このブログにある記事をリソースとしているので、俺がブログを更新すると、ツイートする内容が豊富になると思われる。
また、マサチューセッツ工科大学のニュースサイトからも、データを収集しているので、英語でツイートすることもある。
しかし、プログラムで、単語を組み替えて文章を加工して要約しているので、なかなかに意味不明でカオスな内容をツイートしている。



GitHub pushできないPermission to denied to

GitHubでPermission to denied to や The requested URL returned error: 403が出たときの対処メモ(Mac)

git remote add origin https://github.com/アカウント名/リポジトリ名.git
git push -u origin master

以上のように、gitで、ローカルから、githubにpushしようとしたら、以下のように表示されて、pushできなかった。

remote:Permission to (名1リポジトリ) denied to( アカウント名2)
fatal: unable to access 'https://github.com/アカウント名/リポジトリ名.git/': The requested URL returned error: 403

Macのターミナルでこの状態になった場合、パソコン上に別のgithubのアカウントの情報が、キーチェーンアクセス上に残っている可能性がある。
その場合、アプリケーション⇨ユーティリティ⇨キーチェーンアクセスを開いて、”github.com”を削除すれば、解決できる。

削除した後、再びgit push origin masterすれば、username、passwordと、アカウント名とパスワードの入力を求められるので、入力すれば、OK。

今回は、キーチェーンアクセスに過去に利用していたgithubアカウントの情報がそのまま残っていたことが原因で、現在利用したいリポジトリにアクセスできない。そのためpushできなかったということだ。

これが原因で、ターミナルからgithubとうまくやり取りできずに何時間も消費してしまった…




GitHub実践入門 ~Pull Requestによる開発の変革 (WEB DB PRESS plus)

新品価格
¥2,786から
(2018/2/22 14:03時点)

heroku  cloneでコピーしたアプリのフォルダとHerokuアプリを紐付ける

heroku cloneしたファイルをgit push heroku masterする


まず、Herokuのコマンドを使えるようにするには、HerokuのサイトからHeroku CLIツールをインストールする必要がある。
devcenter.heroku.com


インストールが完了したらまずは、Herokuにログインするコマンドを入力する。

$ heroku login

heroku login のコマンドを入力すると、メールアドレスやパスワードなどの入力を求められるので、自分のHerokuアカウントで登録したものを入力すれば準備完了。


Herokuのサーバー上にあるアプリのファイルをパソコン上に持っていきたい場合は

$ heroku git:clone -a  アプリ名

でパソコン上にアプリのファイルをダウンロードすることができる。


そのダウンロードしたアプリのフォルダ内でpushしようとしても、Herokuのアプリとパソコン上のcloneしたデータが紐づけられていなければpushできないので、まずはpushするアプリのフォルダ内で以下のコマンドを入力する。

$ heroku git:remote -a アプリ名

以上のコマンドを入力すれば、Herokuサーバー上のものとパソコン上のアプリのフォルダが紐付け
されるので、以下のようにコマンドを入力してpushすることができるようになる。

$git init
$ git add -A
$ git commit -m"1commit"
$ git push heroku master

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)

新品価格
¥1,944から
(2018/2/11 23:44時点)

意識についてのメモ 













コインチェック NEM ハッキング

インチェック(coincheck) NEM 消失

被害額は日本円換算500億円越え

corporate.coincheck.com

有名な仮想通貨の取引所「コインチェック」がハッキングの被害にあい、日本円換算で大体500億円〜ぐらいの仮想通貨が盗まれたようだ。
 
インチェックは顧客から預かったビットコインのうちの流動しない分を、インターネットから隔離した「コールドウォレット」に保管するとしていた。
しかし、NEMについてはシステム的に難しかったとして「ホットウォレット」で保管していたようだ。

Goxするのではなどの声がネット上に溢れたが、コインチェックは被害額を保証してくれるようだ。

しかし、500億とか600億とかやばいな〜
平均的な社畜の生涯年収の300倍ぐらいはあるじゃないか。
それでもなお、保証できるほどの資金があるなんて、コインチェックも良い意味でなかなかやばい企業である。





1月26日に不正送金されたNEMの補償について

総額 : 5億2300万XEM
保有者数 : 約26万人
補償方法 : NEM保有者全員に、日本円でコインチェックウォレットに返金いたします。
算出方法 : NEMの取扱高が国内外含め最も多いテックビューロ株式会社の運営する仮想通貨取引所ZaifXEM/JPY (NEM/JPY)を参考にし、出来高の加重平均を使って価格を算出いたします。算出期間は、CoincheckにおけるNEMの売買停止時から本リリース時までの加重平均の価格で、JPYにて返金いたします。
算出期間  : 売買停止時(2018/01/26 12:09 日本時間)〜本リリース配信時(2018/01/27 23:00 日本時間)
補償金額  : 88.549円×保有
補償時期等 : 補償時期や手続きの方法に関しましては、現在検討中です。なお、返金原資については自己資金より実施させていただきます。   

http://corporate.coincheck.com/2018/01/28/30.htmlより引用



取引所が潰れたり、仮想通貨が盗まれても今回のような返金がない場合、たくさんの金を失うことになるので、対策が必要だ。
ハッキングの被害から守るためには、コールドウォレット、ハードウェアウォレットに仮想通貨を入れておくことがお勧めである。


オンライン上に仮想通貨を置いておくと、少なからず盗まれるリスクがある。
しかし、専用のウォレットやパソコンのストレージ内などのローカル環境に保管しておけば、ハッキング被害にあって盗まれる可能性は低くなる。


専用のハードウェアウォレットに入れておけば、インターネットから遮断された環境に保管できる、そのため、そのウォレットが物理的に壊れたりしない限り仮想通貨を失うことはほぼない。
そのため、日本円にして何千万とか何億レベルの仮想通貨を持っている場合は、その一部をハードウェアウォレットに入れて置いた方が良いだろう。


ハードウェアウォレットにはTREZORやLedgerなどがのものがアマゾンで数万円程度で販売されているので、億単位の仮想通貨を盗まれるのが心配な場合は買っておいて損はない。

ビットコインウォレットTREZOR(トレザー) (ブラック)

新品価格
¥17,800から
(2018/1/28 10:32時点)




Ledger Nano S (レジャー ナノS)暗号通貨ハードウェアウォレット 【正規品】

新品価格
¥19,800から
(2018/1/28 10:33時点)

イスラームとブロックチェーンの類似性について

イスラームブロックチェーン

ツイッターでこのようなツイートを見かけた。

イスラームのシステムはブロックチェーンと似ているところがあるという考えが面白かった。
自分が過去に読んだイスラーム関係の本について思い出したので、イスラームについて書く。


ハディースとは

イスラームハディース(預言者言行録)というものがある。
イスラーム聖典クルアーンアルクルアーン)である。
クルアーンにはイスラーム教の教えが書かれているが、細かい指示などは書かれていない。
例えば定めの喜捨をしろとコーランには書かれているが、具体的な金額や方法などは書かれていない。
そのため、クルアーンの指示に加えて、ムハンマドが具体的な行動内容を示す必要がある。
ハディースの中には細かい指示などが書かれていて、ムハンマドの言行、指示、認可などの預言者慣行(スンナー)などはそこに書かれている。
つまり、クルアーンには信者に対する命令はあるが、定義は詳細には書かれていなくて、定義はハディースで詳しく語られているということだ。

ハディースは一つ一つが非常に長い。しかも、様式を見ればわかるとおり原則口伝であったため、優秀な信徒・ウラマー・研究者となるためには高い暗記力が要求された。ハディース - Wikipediaより引用

また、クルアーンハディースはもともと書物などはなく、全て口頭で伝えられていた。




イスラームとは何か~その宗教・社会・文化 (講談社現代新書)

新品価格
¥907から
(2018/1/21 23:49時点)



伝承者の鎖とブロックチェーン

似ている点
・最初から現在に至るまでの伝承経路(取引履歴)が全て記録されている
・複数の人物(サーバー)によって内容の正確性が保証されている


ハディースには伝承者の鎖というものがある。
f:id:idoushiki:20180121201611p:plain
ハディースには本文とは別に伝承者の名前が並んでいるようだ。
ムハンマドが言ったことをBがCに伝えて、それをDに伝えて・・・という感じに伝承者の名前が続いている。
その名前のうち、一人でも異なっていれば、本文が同じハディースでも別のものとして見なされる。
本文も伝承者の名前も全て一致すれば同じハディースということになる。
以上の図では、A~Cは同じハディースで、Dは伝承経路が違うので他とは違うハディースということになる。

また、ハディースなどは複数の伝承者が書いていていくつも存在するので、複数の人間がムハンマドの発言を証言しているということになる。
多くの人物が証言しているので、その内容は信憑性が高いということだ。

この考えは、ブロックチェーンのシステムに少し似ている点がある。
f:id:idoushiki:20180121232919p:plain
ブロックチェーンは、取引の記録「ブロック」をチェーンで繋いでいる感じ。
それぞれのブロックに、以前のブロックとの取引データが記録されている。

f:id:idoushiki:20180121201715p:plain
ブロックチェーンが記録されているサーバーA~D

例えばビットコインの場合は、ブロックチェーンで取引A取引B取引C・・・と取引を記録したデータが繋がれていく。そのため、過去の取引まで遡ることができる。
ビットコインで、取引A取引B取引Cと続いているが、過去から現在に至るまでの取引内容が保存されているいくつかのサーバー同士で取引内容をくらべたときに、偽造などによってデータの内容が少しでも異なればその取引は無効になる。
以上の図の場合、Dのサーバーに記録されている取引内容が他と違うので、Dは無効になる。

ハディースの伝承者の経路もそれと同じように、誰が誰に伝えたのかを記録したデータが繋がれていている。そのため、書かれている伝承者を辿っていけばムハンマドまで遡ることができる。
偽造されたハディースを識別する際も、伝承経路を遡っていき、偽物かどうか判断していたそうだ。
例えば、存在しない人物や時間、空間的に会うことができない人物が伝えたことになっている伝承経路があれば、それは偽物というように。
もちろん、複数のハディースを見比べて本文が違っていた場合や、明らかに変な内容があったものも偽物として排除する。
現在に至るまでの全ての伝承経路を記録しているところがブロックチェーンと似ている。

新しいビジネスモデルがここから生まれる! 超図解ブロックチェーン入門 暮らしやビジネスはどう変わる?

新品価格
¥1,620から
(2018/1/21 23:51時点)





非中央集権と合意

イスラームは、教会組織をもたない。

キリスト教には教会組織があり、聖職者の組織があり、組織に明確な階級的なものがあり、命令系統がはっきりとしている。
f:id:idoushiki:20180121224134p:plain
カトリックの場合はローマ法王をトップとして、その下にピラミット枢機卿大司教などがあり、ピラミット型の組織となっている。
仏教にも、僧侶のリーダー的なものがいたり、僧侶の任命権は本山が持っていたり、階級的なものがある。
f:id:idoushiki:20180121224147p:plain
イスラームの場合、ローマ法王大司教などといったような明確な地位は存在しない。
法王の教令や教義を決定する権威なども存在していない。メッカやメディナカーバ神殿など聖地は存在するが、そこに法王的な人がいるわけではない。
ウマラーという指導者的な地位は存在するが、特定の権力者によって任命されるわけではない。



イスラームでは、ローマ法王的な人物の命令ではなく、ウンマイスラーム共同体)のイジュマー(合意)によってあらゆることが決定される。
ウンマイスラーム共同体なのでムスリムたち(イスラム教徒たち)ということだ。
ウンマイジュマー(合意)は「無意識の多数決」のようなものである。
例えば、イスラームにおいて指導者的な立場の人間はウラマーと呼ばれるが、その決定方法はウンマによる無意識の多数決によって決められるようなものだ。
ウラマーは、ウンマイスラーム共同体)によって認定される。ウラマーに相応しい人が人々に認められて自然と認定されるようなイメージだ。
ウラマーは指導者的な存在であると言っても、ウンマの中で大きな強制力をもっているわけではない。
例えば、コーヒーがイスラーム世界に現れて、広まってきたときに、多数のウラマーが「コーヒーはイスラーム法的にダメな飲み物」と言っていた。
しかし、たくさんのムスリムたちが普通にコーヒーを飲んでいて、コーヒーが一般的に普及したら、コーヒーは合法であるということになった。
これで、「コーヒーは合法というイジュマーが成立した」ということになる。

つまり、一部の指導者がダメだと言っていることでも、多くの人間だダメじゃないと認めれば、ダメじゃないというイジュマー(合意)が成立することもある。
このイジュマー(合意)は権力者が命令したり、誰かが無理やり行動したりするわけでないので、はっきりと成立するまでに100年以上かかることもあるようだ。

つまり、多くの人が合意すればそれが認められる、多数決ということだ。
ブロックチェーンでも、複数のサーバーでブロックチェーンの内容を比べたとき、多数派のブロックチェーンが正しいものとして見なされる。
同じ取引内容が記録されているブロックチェーン10個と、少し異なる内容のブロックチェーン1個が存在していた場合、10こある方が正しいものであると決定される。
ブロックチェーンで、ビザンチン問題と言われるものがある。
blockchain-jp.com
ビザンチン将軍問題 - Wikipedia

その問題は、多い方のものが認められるということは、偽造した取引情報を持つブロックチェーンで全体の51%を満たせば、偽造したブロックチェーンが多数派になり、それを正当化できるということだ。
つまり、ビットコインの取引内容を改ざんして不正にビットコインを入手することが可能になるのでは?という問題点である。
しかし、ビットコインが採用しているシステムはこれが一応できないようになっている。
PoWという方式を採用している。
この方式は、データを改ざんする場合、現在に至るまでの全てのデータを計算し直さなければいけない。
現在行われている取引が成立するまでの間に全ての計算をやり直さなければいけないので相当な計算能力が必要であり、改ざんするよりもマイニングによってビッットコインを手に入れた方が改ざんするよりも少ない労力で済むようになっている。
そのため、不正をするよりも正当な方法を利用した方が得をする仕組みになっている。
よって、不正をするメリットがないので不正をする人間が現れにくいということだ。


このように、イスラームは、法王みたいな一人の人が全体に命令するような中央集権的な組織ではなく、分散型な組織となっている。
この特徴も、ビットコインブロックチェーンと似ている。ビットコインは銀行によって管理されていない非中央集権的なものだ。


まとめとして
・現在に至るまでの伝承経路(取引履歴)が全て記録されている
・複数の人物(サーバー)によって内容の正確性が保証されている
・中央集権的ではなく、分散型な仕組みとなっている。
・多数決によって決定される




過去に書いたイスラーム関係の記事はこちら
idoushiki.hatenablog.com
idoushiki.hatenablog.com
idoushiki.hatenablog.com