Thunderbolt3接続の外付けGPUでモナコインを掘ってみた

突然だったんですが、なんとなくマイニングというものに興味があり自分でも掘ってみたいと思いThunderbolt3接続の外付けGPUBOXにGeforce GTX 1080を搭載したGigabyte Aorus GTX 1080を買ってしまいました

自分のWindows PCは自作でThunderbolt 3端子がないので、Macbook Pro 2015と2016で試してみました。ちなみに、普通にグラボを買い足せたば良かったと後から後悔しています。

まず、Macbook Pro 2016の15インチUSB-Cと同じ端子のタイプのThunderbolt 3ポートで試してみました。Mac OSがブートした状態でAORUS GPU BOXを接続、するとMacのTunderboltデバイスの一覧の下にGeforce GTX1080が表示され無事に認識されました!しかし、どうやってNvidiaのグラフィックドライバーを入れればいいかわからず…結局使い方がわかりませんでした。Nvidiaからドライバーのパッケージをダウンロードしてきてもインストールできませんでした。ちなみにeGPUと接続するとMacbook 2016の方に給電されているようで、ケーブル一本で充電もGPU接続も可能なようです。eGPU使えてないけど、Thunderbolt 3はすごくいい!

というわけで、別のMacbook Pro(MacBook Pro Retina, 13-inch, Early 2015)上にBootcampを使ってインストールしたWindows 10を使って確認してみることに。ちなみにこのMacは少し古いのでThunderbolt 3をサポートしておらず、Mini Displayport端子の形状のThunderbolt 2しかサポートしていません。試しに手持ちのThunderbolt 2 – 3変換アダプタ(apple 純正)をGPU BOX側のThunderbolt 3ポートにさしてThunderbolt 2ケーブルを使ってMacにさしてみました

するとプラグアンドプレイでドライバーのインストールらしきものが走りはじめました!と思いきや、いきなりブルースクリーン!!
どうやらSPIホストコントローラーが問題らしいので、いったんデバイスマネージャーで無効にしてからさしてみると…
無事にドライバーのインストールまで完了してNvidiaのコントロールパネルのようなソフトウェアがいきなりタスクトレイに現れました

タスクマネージャーからも正常に二つ目のGPUとして認識されています。また接続はこんな感じです

 

さっそくccminerでマイニングを開始してみました。
Nvidiaのツール上にGeforce GTX 1080を使用しているアプリケーションとしてccminerが表示され、ccminer上でも正常にグラフィックカードが認識されマイニングできているようです!
一応二日間走らせてみましたが、エラー等もなくいい感じで回っています!

AORUS GTX 1080 Gaming Box、Macでそのまま動けば最高なんですが・・よくよく考えたらMac OSはHigh Sierraから外付けGPUのサポートだったかな?と自分のMacはまだSierraでしたので要確認です

Gigabyte Aorus GTX 1080?Gaming gv-n1080ixeb-8gdグラフィックカードボックス

新品価格
¥125,570から
(2018/3/11 12:11時点)

Bootcampを使ってMacにインストールしたWindows10上で外付けGPUを使ってみたというタイトルの方がしっくりくるかもしれません。

Azureのサービスで作ったWordPressのClearDBのusernameとpasswordを確認する方法

最近AzureWebServiceで作ったClearDB MySQLデータベースについてアップグレードしろというメールが来ていました。Mercury DBとTitan DBのサービスプランをAzure Marketplaceから削除するため、上位のプランにアップグレードしろという内容でした。

まぁしょうがないのでアップグレードしようとしたんですが、Azureにログインしても既存のMySQLのプランなんて見当たらず新規作成しかできない状態で…

確かにWordPressのテンプレートを使ってこのブログを作っているので、MySQLは使用しているはずなんですが一体どこにどうやってつながっているんだろうと…

ちょっと調べてみると、どうやらClearDBのサービスの方には実際にDBが出来上がっていて、下記のウィザードでDBの情報を入力すれば、アカウントを作成できるようになってそこから支払いの設定とアップグレードができるようになるとのことです。つまり自分の場合はAzure上で簡単にアップグレードはできないということですね。

https://www.cleardb.com/store/azure/upgrade

そして、いざアップグレードしてみようと試みてみましたが…WordPressのDB名とか接続ユーザー名なんて知らねー という状態です。

なんとかして調べるしかないということで色々試してみました。

Azureにログイン、そしてApp Service -> 開発ツール -> コンソール でコンソールを開くと なんとD:\home\site\wwwrootの文字が

試しにlsコマンドをたたいてみるとなんと設定ファイルらしきもの達がいるではないですか!

そしてwp-config.php のファイルの中身をのぞいてみると、なんとDB_NAMEなどの情報が記載されているではありませんか!

define(‘DB_NAME’, ‘blog’);

/** MySQL database username */

define(‘DB_USER’, ‘hoge’);

/** MySQL database password */

define(‘DB_PASSWORD’, ‘hoge’);

これらの情報をもとに先ほどのウィザードを進めていき、アカウントと住所・クレジットカードなどの情報を入力し、無事にClearDBのアップグレードが完了しました。

ポータルが別々ってのは非常に面倒です。

そしてこの誰も見ていないブログのために月1万円くらいAzureに課金している自分っていったい…

Azure App ServiceでSSL対応サイトにしてみた

このブログはMicrosoft AzureのWeb Service? (実はあまりよくわかっていないのですが…)上にホストしてあります
ふと、Chromeブラウザで自分のブログを開いてみると(そもそもほとんど更新もしなければ自分でも見ない)
「この接続は保護されていません」などとURLバーの横に書いてあるのが気になってしまい、どうにかSSL対応サイトに変更できないかと思いAzureのWeb ServiceをSSL対応にしようと試してみました。

意外と簡単にhttps://docs.microsoft.com/ja-jp/azure/app-service-web/web-sites-purchase-ssl-web-site を見れば簡単にできそうでした

SSL証明書購入には年間7000円強必要でしたが、一か月で割れば大したことないかと思い購入し、上記のリンクを参考に設定をしてみました。

個人的な落とし穴としてはSSLのサポートはB1 Basicプラン以上(月6000円弱~)が必要ということでした。今現在はD1 Shared(月1000円程度)を使用しているので、単純に6倍以上の出費になります。一日当たり1人も来ないこの弱小ブログのためにそこまでお金を出せるのか…と悩みに悩みましたが勉強と思いB1 Basicにアップグレードしてみました。

独自ドメインでSSLを使用してウェブアプリを実行するには月7000円くらいは必要ということになりますね。

で、設定をしてみたんですが、いつまで経っても鍵マークがURLバーに出てこない…うーむ何がいけないのだろうか・・

確かにhttps で繋がるんですが…https://zeppekisamurai.com/

追記

編集していると鍵アイコンが出てきました。外部リソースの読み込みが問題か?

SSLエラーでhttps://rubygems.org/からgemのパッケージのダウンロードができなくなったときの対処法

gem install pkgname

コマンドを実行したら以下のエラーが表示されダウンロードできなくなってしまいました

ERROR:  Could not find a valid gem ‘pkgname’ (>= 0), here is why:

          Unable to download data from https://rubygems.org/ – SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

なんじゃこりゃってことでOpenSSLの証明書のアップデートを行いました。以下のコマンドを実行しました。
rvm osx-ssl-certs update all
そうするとパッケージのダウンロード等問題なく行えるようになりました

ちなみにgemのソースリストにhttpのものを追加してあげるやり方もあるみたいですが、なんとなく嫌だったのでSSL更新を行いました。。
gemのダウンロード元は以下の一個のみ
gem source –list
*** CURRENT SOURCES ***

https://rubygems.org/

APPLE MacBook Pro with Retina Display (2.7GHz Dual Core i5/13.3インチ/8GB/128GB/Iris Graphics) MF839J/A

新品価格
¥123,800から
(2016/11/15 21:01時点)

Gradleコマンドが実行できなかった時のお話

Android Studioを使っていて、Terminalから

gradlew コマンドを実行しても

bash: gradlew: command not found

が返ってくるだけで実行できない。パスを確認したところ、gradlewの実行ファイルは実在している。

一体なぜだということで調べてみるとどうやらパスを指定しないといけなかったみたい。

./gradlew

これでよかったんですね。実行できました。

AppiumでiOSの実機を用いてInspectorを立ち上げる

iOSの実機をMacに接続して、 AppiumのInspectorを使って

実機を使用するのでappium上のiOS SettingsでForce Device(device 名)とUDIDを指定

Launchボタンを押してサーバーを起動、Inspectorボタンを押すと

 

[MJSONWP] Encountered internal error running command: Error: Could not initialize ideviceinstaller; make sure it is installed and works on your system

    at IosDriver.getIDeviceObj (lib/driver.js:380:15)

    at IosDriver.get (lib/driver.js:950:49)

    at IosDriver.installToRealDevice$ (lib/driver.js:335:21)

    at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)

    at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)

    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)

    at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)

    at enqueueResult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)

    at new Promise (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:197:7)

    at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)

    at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)

    at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)

    at IosDriver.installToRealDevice (lib/driver.js:351:16)

    at IosDriver.startRealDevice$ (lib/driver.js:309:16)

    at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)

    at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)

    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)

    at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)

    at run (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:104:47)

    at /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js:115:28

    at flush (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.microtask.js:19:5)

    at _combinedTickCallback (internal/process/next_tick.js:67:7)

    at process._tickCallback (internal/process/next_tick.js:98:9)

 

Error: Could not initialize ideviceinstallerとのことなので、ideviceinstallerのバージョンを確認してみるとインストールされていませんでした。

$ brew install ideviceinstaller

でインストールすると無事にサーバーの起動ができました