katonobo’s blog

創作、プログラミング、思いつくこと徒然

スポンサーリンク

備忘録:はじめてのブロックチェーンアプリケーション(Browser solidityとethereumノードの接続)

Browser-Solidityをインストールし、「Web3 provider」で、Ethereumノードと接続しようとしても、

 

Error: Invalid JSON RPC response:

とエラーが出て、接続されない。

解決方法

まずは、Gethを起動

geth --networkid 4649 --nodiscover --maxpeers 0 --datadir /home/username/data_testnet console 2>> /home/username/data_testnet/geth.log

 

その後、

 

admin.startRPC("0.0.0.0", 8545, "*", "web3,db,net,eth")

 

を入力。これで接続できた。

 

追記

これだと、ロックされてるため、解除する必要がある

 

personal.unlockAccount(eth.accounts[0], "pass0", 0)

"pass0"は設定したパスワード。

備忘録:コインチェックAPIでデータを取得する(python)

仮想通貨取引所であるコインチェックから、APIを使い、データを取得する方法。

 

①Macのターミナルから、jupyter notebookを起動する。

!pip3 install coincheck    #pipを使い取り込む

ジュピターノートブックでは、「!pip3」にする

 

②マーケットデータ取得

from coincheck import market

 

③表示

m1 = market.Market()
m1.ticker()

 

 

「結果」

{'ask': 453653.0,
 'bid': 453621.0,
 'high': 469986.0,
 'last': 453653.0,
 'low': 407000.0,
 'timestamp': 1502623526,
 'volume': 73683.47522132}

 

参考(ってかこれ)

pypi.python.org

 

 

「はじめてのブロックチェーンアプリケーション」で勉強を始めてみた。

世間はお盆ですね。こういった大型連休の時、暗号通貨の価格が上昇するのは何なんでしょうね。今年のGWを皮切りに、ここもと仮想通貨は大盛り上がりです。

僕はといえば、プログラミングの勉強を今年から始めてとても楽しいプログラミングライフ(?)を送ってます。

変化といえばこの前、少し驚いたことがありました。

スマートフォンアプリ作ってたのですが、その途中経過を一緒に作ってる友人に送ろうと動画を撮ったんですが、みてみたらその動画に変な声が入ってるんです。何いってるかわからないんですが、確かに人の声なんです。ってゆうか僕の声でした。あれですね、プログラミングしているとなんか独り言とか増えますね。しかも気づかないうちにってのがリアルホラーですね。

 

さて、仮想通貨、持ってるだけでも時代の先端って感じでカッコいいんですが、せっかくプログラミングを始めたんだから、がっつり勉強してやろうとこの度思い立ちました。そしてこの本を買いました。

 

 

ビットコインって何?ブロックチェーンで何?って人向けの本ではありません。これは、知るための本でなく開発するための本です。

もし、ビットコインが何か、ブロックチェーンが何かを知りたい方は、以下の本をオススメします。

 

この二つを読んでおけば、ブロックチェーンすげー!ビットコインすげー!みたいな感じでオールオッケーです。二つ目の「ブロックチェーン・レボリューション」は、どんな風にブロックチェーンが我々の世界に浸透するかをいくつかの具体例をあげているので、さらっと読むだけでかなりイメージつくと思います。

 

話を戻しましょう。「はじめてのブロックチェーンアプリケーション」では、暗号通貨業界の二雄の一角である、イーサリアムを使い、スマートコントラクト開発をしちゃおうじゃないかという本です。

 

今日は、MacでGethのインストールまで、備忘録として。

本書では、本文ではUbuntuでのインストール方法が記載されており、Macでのインストールは、Appendix(付録)に載ってます。

二つ方法が記載されていますが、「Homebrew」でインストールする方が楽です。

Homebrewは、以下でダウンロードできます。brew.sh

僕のイメージでいうと、すげー簡単に色々インストールできちゃう魔法の呪文って感じです。アイコンのビールがイカしてます。

さて、あとは付録通りですが、ターミナルを起動し

$ brew tap ethereum/ethereum

と入力。結構時間かかります。その後インストールできたら、 

$ brew install ethereum

 でオッケーです。ちょっとびっくりしたのは、「$ brew install ethereum」でインストールしていたら、途中で

You are in 'detached HEAD' state. You can look around, make experimental

changes and commit them, and you can discard any commits you make in this

state without impacting any branches by performing another checkout.

 て出てきてしばらくそのままだったんですね。どうすればいいんだろうと色々調べていたら、勝手に進みました。変なことしなくてよかった。

さて、これでGethの準備ができました。

 

 

 

レファレンス共同データベースが、マニアックで面白い

インターネットって、便利だけど、情報が薄いことが多いです。

まとめサイトが最初に出てきて、内容の真偽もよくわからないし、本当に知りたい記事にヒットすることも簡単じゃありません。

そんな今の現状と逆を行く、素晴らしいサイトがあります。

レファレンス共同データベースというサイトで、有名なので知ってる人も多いと思いますが、質問と回答を眺めるだけでもすごく面白いのでみんなに知ってもらおうとこの記事を書きました。

crd.ndl.go.jp

 

目的

レファレンス協同データベース事業は、公共図書館、大学図書館、学校図書館、専門図書館等におけるレファレンス事例、調べ方マニュアル、特別コレクション及び参加館プロファイルに係るデータを蓄積し、並びにデータをインターネットを通じて提供することにより、図書館等におけるレファレンスサービス及び一般利用者の調査研究活動を支援することを目的とする事業です。

http://crd.ndl.go.jp/jp/library/index.html

質問も、その回答内容もマニアックなことが多くて、ついつい見ちゃいます。答えてる人たちの知識と検索能力はちょっと変態レベルです。いや、まさにプロです。

 

最近の質問と回答で面白かったのを一つ紹介します。

crd.ndl.go.jp

 

そうです、あの映画、「ホタルの墓」の名ゼリフです。

「何でホタルすぐ死んでしまうん?」の答えです。

 

ちなみにこの回答者、すげー調べてます。

「ホタルは儚い生き物なんだよ」、なんて答えは許しません。

30以上の参考文献が紹介されています。

質問する人もする人ですが、ちょっと一緒に映画とか観たくないかもです。

他にも

 

crd.ndl.go.jp

サンタクロースのソリを引いてるトナカイの名前は何というか?という質問の回答なども面白いです。よく疑問に思いますね。ってかあのソリって、8頭で引いているんですね。贅沢です。

 

ぜひみなさんもお気に入りの質問をさがしてみてください。

 

書評:「やりがいのある仕事」という幻想

 先日台湾にバックパッカーで旅行に行ったんですが、ちょうど台風がやってきてしまって、ほとんど行きたいところに行けなくて、ホテルやカフェでずっと本を読んでました。なので、今回はアウトプットを兼ねて、その中でも面白かった本を書評しようと思います。

 

 ちなみに、書評の前に少し台湾の話なのですが、台北の故宮博物院に行きました。

台風がくると、ああいう公共の施設ってお休みになっちゃうんですね。ギリギリで入れた感じです。

みなさん、故宮博物院の目玉って何かご存知ですか?それは、何と「白菜」です。

あの、野菜の、「白菜」です。

ただし、本物の白菜ではなく、白菜をかたどった石です。

白菜には、子孫繁栄や、質素堅実など、縁起がいい意味が多いそうで、この白菜の石が目玉とされています。中国からの団体客が多く、白菜を見るためにみんな何十分も並びます。そして部屋に入ると、その「白菜」がちょこんとあるんですが、ずっとは見れないんですね。人気だから。

白菜の横には係員がいて、ほんの少し見ているとなんか言われて、白菜の前からどかされます。

テレビの、AKBの握手会の映像で、よくファンが目当てのアイドルの前にずらーと並んで、やっと自分の番がきたと思って話していると、すぐ側のガードマンみたいな人に引っ付かれて退出を促されているのを観たことあるんですが、あんな感じです。あれ、「剥がし」っていうそうですね。

なので僕は、白菜に会うために数十分並んで、そして剥がされました。そんな台湾の旅でした(投げやり)。

 

しょうもない話が長くなりました。

さて、今回の書評である「「やりがいのある仕事」という幻想」は森博嗣の本です。

 

森博嗣といえば、ドラマにもなった「すべてがFになる」でも有名です。

小説もとても面白いんですが、僕はエッセイがとても好きです。

もともと工学部の教授だった人であるため、文章がとても公平というか、一定の旋律が流れているというか、すごく読みやすく、入りやすいです(自分に内容が理解できてるかは別ですが)。

仕事も、締め切りは必ず守るし、一日一時間と決めて執筆しているそうです。創作活動をそんなにロジカルにできるとは驚きです。

この本も、すごく面白いです。

 

今って、就職活動とか恐ろしい世界です。20歳前半の若者が、自分の人生のやりがいとか、自分とはこんな人間ですだなんて言うのです。そして、仕事に対して、一種の幻想を持ちます。

本書にもあるように、仕事は人生をかけてやるものだとか言う空気が、今の若者には合っていないのです。社会人になるまでは、やりたいことを見つけることが尊いみたいに育てられてきたのに、急に社会人になった途端、古い考えを押し付けられるため、そのギャップに悩んでしまうのは無理がありません。

この本は、そんな幻想を解いてくれる本です。

仕事というものは、今どんな服を着ているかというのと同じくらい、人間の本質ではない。

「やりがいのある仕事」という幻想(前書き:キンドルだと何Pかわからないです。)

さくさく読める本です。

仕事に疑問を持っている人、仕事の立場から、偉そうになってる人など、一度この本を読んでみてはいかがでしょうか。

書評:群青のマグメル

書評と言っても、漫画です。

群青のマグメル、これを今まで見過ごしていたのは迂闊でした。

いきなりウィキ貼っちゃいます。

群青のマグメル - Wikipedia

もうすでに5巻まで出てます。

一気に読んじゃいました。

毎週欠かさず週刊誌をチェックしている僕ですが(多分近くのコンビニでの僕のあだ名は妖怪立ち読み)、なぜ見過ごしたのかというと、これは「少年ジャンプ+」で連載なのです。ウェブコミックはまだ全然ちゃんと抑えれてないです。

 

さて、漫画、なにが面白いかというと、

少年ジャンプの数々の探検漫画への作者の憧れを実現する形で連載が開始。

(ウィキベディア)

とあるように、この群青のマグメル、なんかすごく痒いところに手がとどくというか、こうなって欲しいなみたいな読者の期待に見事に答えてくれるような漫画なんです。

独特の世界観、異世界のアドベンチャー、特殊な能力を持った主人公、キュートなヒロイン、ストーリーも見事!読者を一気に引き込みます。僕はキンドルで一気に購入しました。そういえば、キンドル最高!

 

何というか、ハンターハンター好きな人にはハマるような感じがします。 

今後が本当に楽しみです。

ってゆうかみんな読んだ方がいいよ。

 

PoloniexのAPIから、ボリンジャーバンドを出してみた

前回の記事で、PoloniexのAPIでデータの取得と、グラフを出してみました。

 

www.katonobo.com

 さて、今回は、この続きで、ボリンジャーバンドを表示させてみました。

ボリンジャーバンドってなに?ってかた。イメージしてください。

「バンド」でピンときませんか。

 

…そうです。髪の長いサッカー選手がよく頭につけてるあのバンドです。

 

 

 

嘘です。違います。

 

ボリンジャーバンドとは、株式投資などでよく用いられるテクニカル分析の一つです。

統計の技術を使ってまして、この分析で、株価の位置どころをみたりします。

ボリンジャーバンドについて、もっと知りたい方がいたら、検索してみてください。すぐ出てきます(投げやり)。

 

さて、前回までに、PoloniexのAPIからデータを取得し、グラフを出すところまでやりました。今回は、そこから、移動平均を出し、ボリンジャーバンドを表示させるところまでやります。

参考にさせていただいた記事は以下になります。

 

qiita.com

 

www.stockdog.work

 

まずは、移動平均を出します。

仮想通貨取引所のPoloniexからAPI経由でデータ取得し、ディープラーニング(Chainer)で翌日の価格予測をしよう - Qiita

を参考に、前回のjupyter notebookに必要なデータを入力。

今回は5日移動平均を使います。

data_l = pd.rolling_mean(df['close'], 12 * 24 * 5)

と入力し、出力します。ところが、

FutureWarning: pd.rolling_mean is deprecated for Series and will be removed in a future version, replace with 
	Series.rolling(window=1440,center=False).mean()

 

 なんかエラーが出ました。

replace with 
	Series.rolling(window=1440,center=False).mean()
こちらに変えろということでしょう。変更したのがこちら

data_l = df['close'].rolling(window=1440,center=False).mean()

 

 これでうまく行きました。

 

続いて、ボリンジャーバンドです。今回はシグマは2にします(2標準偏差)。

ボリンジャーバンドをpythonで描く 〜python〜 - 株も歩けば犬に当たる

こちらを思いっきり真似させていただきました。

 

deviation = 2
std = df['close'].rolling(window=1440).std()
sigma = pd.Series.rolling(data_l, window=1440).std(ddof=0) #σの計算
upper_siguma = data_l + sigma
upper2_siguma = data_l + sigma * deviation
lower_siguma = data_l - sigma
lower2_siguma = data_l - sigma * deviation

 

これでバッチリです。stdは、標準偏差を出します。

 

# 描画を綺麗に表示する
from matplotlib.pylab import rcParams
import seaborn as sns
rcParams['figure.figsize'] = 15, 6

plt.plot(df['close'], color='#7f8c8d')
plt.plot(data_l, color='#2980b9') # 長期線
#plt.plot(upper_siguma, color='blue')
plt.plot(upper2_siguma, color='red')
#plt.plot(lower_siguma, color='blue')
plt.plot(lower2_siguma, color='red')


plt.show()

 これで出力してみます。ちなみに、1シグマは今回は出さないようにコメントアウトしています。

 

f:id:katonobo:20170805234055p:plain

出力できました。
うーん。これだけ見ると、ボリンジャーバンドは仮想通貨の動きにはあんまりうまく機能しないのかもしれないですね。億万長者への道は長い…!
とにかく、今回はボリンジャーバンドをやってみました。