memoryfolder

メモです

pythonでwebスクレイピングして数値を定期的に表示

仮想通貨をpoolでマイニングしてると、時系列のstatsがほしいことがあります(時間平均しか表示してくれないところが多いです)。
そんなとき、pythonで簡単にスクリプトを書いてグラフを書けたら便利だと思いました。

JSONデータを提供してくれているのでそれを使います

{"currentHashrate":35555555,"hashrate":45873284,"pageSize":30,"payments":null,"paymentsTotal":0,"roundShares":0,"stats":{"balance":728220201,"immature":39496737,"lastShare":1506157777},"workers":{"rig1":{"lastBeat":1506157777,"hr":35555555,"offline":false,"hr2":45873284}},"workersOffline":0,"workersOnline":1,"workersTotal":1}

スクリプト

import lxml.html
import requests
import json
from time import strftime

#JSON url
target_url = 'https://ubiqpool.io/api/accounts/0x79b40db0f843847d2045991379eb1ab765f22e73'

#create log file in /.log
logname='./log/log'+strftime("%Y%m%d%H%M%S") +'.csv'
f=open(logname,'w')
f.write('time,30min-hashrate,balance\n')
f.close()

for i in xrange(100000):
	#retrieve data from JSON
	target_html = requests.get(target_url).text
	root = lxml.html.fromstring(target_html)
	txtcontent =  str(root.text_content())
	jsonresult = txtcontent[0:len(txtcontent)-1]
	a=json.loads(jsonresult)
	hashrate=int(a['currentHashrate'])
	balance=int(a['stats']['immature'])+int(a['stats']['balance'])

	#print to stdout
	print strftime("%Y-%m-%d %H:%M:%S")
	print "current rate:   " + str(hashrate)
	print "total average:  " + str(np.average(rates))+'\n'

	#append to csv file
	fg=open(logname,'a')
	fg.write(strftime("%Y-%m-%d %H:%M:%S")+','+str(hashrate)+','+str(balance)+'\n')
	fg.close()

	time.sleep(900)#15min interval

仮想通貨マイニングのpoolの選び方

Radeon r9 280Xと古いDesktop PCにPSUを買ってマイニング入門しました。
今週中に280Xがもう一枚くるのでちょっとはマイニングできるとわくわくしてます。

さて、poolを色々と試して、時間を測って収益やらを見てました。
何となくですが感触がつかめました。詳しくは以下参照(詳しすぎて読むの面倒くさい)。
Which is the best pool for mining? - A guide for choosing the right pool

pool hash rateが大きすぎると逆にshareが少ない

ひとつのpoolで10時間くらいは収益の統計を取るのがよさそう

サーバーが遠いと心ばかり遅くなる

nanopoolのように細かい統計が見れるととても楽しい

Ethereumのminerの画面が止まる問題(miner thread hangs restarting miner)

EthereumとSiaCoinをClaymore dual minerでマイニングしてます。
たまに画面が完全に止まってしまうことがあります。
この時にCtrl+Cを押すと、miner thread hangs restarting minerと言ってMinerの再起動が始まります。
アイドル時間ができてしまって非常にもったいない…。

ネットを徘徊してたら答えがありました。
Miner randomly stops mining · Issue #11 · nanopool/Claymore-Dual-Miner · GitHub

コマンドプロンプトの上の白い部分で右クリックをして、「プロパティ」→「quick edit mode」のチェックを外す

でOKです。今は順調に動いてます。

中古品のパーツを集めてマイニングリグを作ってみる

最近、気まぐれに中古のデスクトップPC(HP 500b MT)を5000円くらいで買いました。PCIeスロットが空いてたのでマイニングをしようと思います。

予算と目標

3~4万円の予算でETH 40MH/s程度ほしい(2017年9月末現在で10000円/月相当。コインを選べばもう少し儲かるはず)

買ったHP 500b MTのスペック

Dual core pentium
2GB memory (+2GB additional)
500GB HDD
300W PSU
PCIe X16 *1,
PCIe X1 *1
http://h10032.www1.hp.com/ctg/Manual/c02511196

中古パーツ集め

GPU1個め

色々探した結果、値段とハッシュレートの効率が良さそうなRadeon r9 280Xを15000円くらいで買うことにしました。
ハッシュレートが一覧になってるページが少なくので苦労しましたが、参考程度にLitecoinのベンチマークを使いました。殆どのGPUが載ってるので比較に便利です。
Litecoin Mining GPU Reports

PSU

これはあまり中古品が出回ってなかったので、AmazonでCorsairのVS650を6000円くらいで買いました。HPについている300Wのものと合わせて1000W程度になるので、もう1つGPUを拡張できるはずです。
ebayとかに行けばno brandのやすいのが売ってますが、GPU用の端子が無かったりすぐ壊れたりと余計に高くなりそうなので辞めました。
http://www.corsair.com/en-gb/vs-seriestm-vs650-650-watt-power-supply-uk

GPUの消費電力はベンチマークがネットに乗ってます。
HIS Radeon R9-280 IceQ X2 OC review - Hardware setup | Power consumption


GPU2個め

PCIe X1しか残ってないので、riserを買う必要があります。これはamazonで1000円位で買えます。
GPU2個目も、結局Radeon r9 280Xになりそうです。15000円。

ケーブル

Radeon r9 280Xは6pinと8pinの両方を電源として供給しないといけません(!)
買ったcorsairは6+2pinが2つの他にはSATAしか無く、HPのPSUSATAケーブルしかないので、残り2本分を変換する必要があります。
Amazonで2*SATA to 8-pin変換コネクタを買いました。2本で1000円くらい。

設置

1個めのR9 280をPCIe X16につけました。ケースにちゃんと入ります。
次に、PCIe riserで2個目のGPUを設置しました。
ケース内のGPUは排熱効率がやっぱり悪いので、とりあえず小さい扇風機で熱を逃がすようにしてます。
PCIe riserを買ってケースの外に出さないとだめっぽい


仮想通貨マイニングを余ったPC(ubuntu)でやる

儲かるほどではないのはわかっていますが。
PCはthinkpad x121e、CPUはcore i3です。

GPUがないのでCPUで採掘できるbitzenyをやります。
基本的に以下に従いました。walletは後からでも大丈夫です。
(以下サイトで少し躓いたこと:
Linuxでwalletをダウンロードしても、agree + installだけでダウンロードはできないので注意。winかmacでやりましょう。というかwalletは後からでも大丈夫)

bombox.net

オックスフォードのpre-sessionalに行くべき?

結論として、研究やインターン等の予定が無ければ行くと良いと思います。働いている方も、退職時期を早めて休暇だと思って参加したら良いかも知れません。
ちなみに、オックスフォードのpre-sessional english courseのことで、基本的にオックスフォード大学院のオファーを持っている人のための6週間の英語コースですがLSEやUCLの人もいました。30万円します。
期間は8月初め〜9月中旬で、academic englishの勉強のほかに友人を作ったりオックスフォード市内について知ったりするのが目的となっています。
理系院生は少ない。大体マスター。アジア人はMBAとLLP率高くてみんな20後半~30代。

内容

Speaking, communication, writing, grammer, city toursが均等にある感じです。
毎日9-15時ですが、休み時間が合計2時間あって実質勉強時間は短い。

Speaking, communication

ペアや4−5人グループに別れてディスカッションなどします。テーマはニュースや"twitterとフリースピーチ"、"ドローンと戦争論"など文系よりで結構むずかしかった。
プレゼンの練習もあった。

writing, grammer

結構基礎的な文法からはじめて体系的に一通りなぞり、その後academic writingをやります。
文法って結構忘れてるので、思った以上に役に立った。ただ、理系はこんなにwriting skill要らないよって言われたw

city tours

オックスフォード市内や、バスで1時間位のところに行きます。遠足。

感想

英語に関して大きく変わった印象は無いけど、他分野の友人が(特にMBAとか)できたのはよかった。
クラスメイトが多いからスポーツとかもできた。値段の価値はあるとおもいます。

Q: settle inできた?

もう少し時間かかりそう。

ubuntuをプリンターサーバーにしてwifiに繋げないプリンターをネットワークプリンターにする

プリンターを買ったんですが、寮にWPA2のwifiしかなくて(eduroam)、仕方なく古いPCをサーバーにした時の方法です。

0: ubuntuにドライバーを入れる

ubuntu16.04なので、プリンターをつなぐだけで勝手にドライバーをインストールしてくれました。
ubuntu14とかだとコマンドラインからapt-getしないといけなかったのに(それでつまづいて時間かかった)、すごい便利。

1: Google Cloud Printをセットアップ

chromiumを入れて、settings→左上の三マーク→printers→printer settings→setup printer
から、先ほどubuntu上で認識したプリンターをGoogle cloud printに追加。

2: LAN上でプリンターをシェア

google cloud printだと、子機となるMacではchromeからの印刷しか受けてくれないので(windowsはドライバーがあるのに…)、
LAN上でシェアして家では使えるようにしました。
方法はこちら。

How to Share A Printer in Ubuntu 14.04 Trusty LTS | UbuntuHandbook


これで普通にネットワークプリンターを持ってるのと同じ環境にできましたー。