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

you21979の日記

実験ネタとか。仮想化とかnodejsで嵌った所とかおもしろかったところとかいろいろ

暗号通貨ツアー

Bitcoin Advent Calendar 2014

この記事はBITCOINアドベントカレンダー21日目の記事です

ビットコインを試してみたい、体験してみたいという人向けの記事になります

技術者向けの話は特にありません。

 

はじめに

ビットコインはインターネット上のお金です。
現実世界ではお金のやり取りをするとき、財布からお金を出して払えばよいだけなので
誰かに何かを申請する必要はないのですが
現在のインターネットではお金を払うときに受け取る側と支払いたい側以外の第三者に申請をする必要があります。
それが決済サービスです。

また受け取る側と支払側の利用したい決済サービスがマッチしていなければ払えません。

自分はペイパル使えるけど相手は銀行振り込みしか受け付けてない場合、銀行口座を使わなければ支払えません。
銀行振込は休日は休みだったり決済サービスの都合によって利用者は制限されます

ビットコインはそういったアンマッチングを解決する手段として非常に優れていて
受け取るだけなら誰かに申請すら必要なくソフトを立ち上げるだけで口座開設が完了します。
審査もありません。受け取りたいと思ったら受け取れます。

受け取ったビットコインを法定通貨に変えるときに身分確認などの申請は必要になりますが少なくともすでに持っていて払う側には
現実のお金のように誰かに対して許可を貰う必要はなく財布からお金を出すような感覚でインターネット上で支払いができます。

 

 ■手に入れてみたい

ビットコインはかなりの価値がついているので気軽に試すのは難しいですが
ビットコインをフォーク(コピー)した他のコインなどは比較的簡単にネット上で手に入るので
それを使って気軽に試してみることができます

当然、価値は低いけどお金と同等のモノであるのでなんらかの労働の対価や他の価値と交換として得る必要があります

まず実際に使える額まで貯めるのは大変ですが少額をもらう方法があります
定期的に少額を少しもらえるサービスをFAUCETといいます(蛇口から滴り落ちるという意味です)
これは送金のテストをするくらいなら十分まかなえます

送金テストから何か他のモノやサービスと交換したい場合はモナコインを選ぶと良いと思います
FAUCETだけでは貯まるまでに時間がかかると思います

このツアーではモナコインをどうにかして手に入れるための手引を書いておきます。
100%もらえるわけではありませんが可能性はあります。
そのための方法を紹介します。


モナコインの財布を作る
まず受け取る場所が必要なので財布を作ってください
windowsなどの実行ファイルもありますが管理や同期など敷居が高いので最初はWEBウォレットを使うのがよいでしょう。
おすすめの財布は以下のサイトです

 

monappy

https://monappy.jp/
ポータル機能のついたオンラインウォレット
親切にいろいろな情報が日本語でわかります

 

offlinewallet

http://offlinewallet.info/

安心安全なオフラインウォレット。オンラインなのにオフラインなウォレットです。
このページをダウンロードしてつかうこともできます(インターネットにはつながってる必要はあります)。
パスフレーズは簡単なものにすると他の人に財布を開けられてしまいますので注意です。
ここでは技術的な説明はしません。

 

■財布を作ったらやること

まず自分のアドレスを見つけてください

アドレスとはメールでいうメールアドレスみたいなものです
Mで始まるランダムな文字列がモナコインのアドレスです

送金するときに宛先を指定し、金額を指定することでそのアドレスに送金できます。

 

モナコインを手に入れる

お財布を作ったらモナコインを手に入れてみましょう
以下に紹介するサイトでもらえるかもしれません

 

sighash
http://www.sighash.info/

オンラインウォレットでtwitterアカウントがあればすぐに使えます
FAUCETから毎日モナコインをもらえます

 

la pool
https://multi.xau.jp/faucet/

マイニングプールなのですがアカウントなくても大丈夫です。
FAUCETから毎日モナコインをもらえます

 

askmona
http://askmona.org/

交流サイトです
ウォレット機能が組み込まれていて投げ銭を受け取れます

以下の様な行動をするともらえるかもしれません
困っている人の手助け
人を楽しませる
情報提供
バラマキスレに書き込む

 

cryptad
https://cryptad.com/

ソーシャル広告のサイトです
懸賞に応募するだけでももらえます
応募した懸賞をtwitterやご自分のブログなどで宣伝してアクセス数を稼げれば賞金の取り分もおおくなります

 

etwings
https://exchange.etwings.com/

取引所です

苦労しないでお金で解決したい人はここで買えます
現金に変えたい場合もここで変えられます

 

2ch
http://hope.2ch.net/cryptocoin/

とくに板はだしませんが関連板でもらえるかもしれません。
乞食をしてスルーされたり罵られたり根性がある人むけでしょう。
メール欄に財布のアドレスを貼ると良いでしょう

モナコイン以外の通貨は比較的、簡単にもらえるのでわらしべ長者的に交換していくのもあり。

 

twitter
http://tip.monash.pw/

twitterハッシュタグ#monacoinをつけてなにかおもしろいことをつぶやいてみる
オモシロイと思った誰かがtipmonaを使って投げ銭してくれるかもしれません
また絵を書くのが得意なのであれば#monacoinをつけて投稿するのもありです。
コインを受け取ることに成功したらWEBサイトに有るマニュアルにコインの引き出し方が書いてあります

 

マイニング
monacoinのマイニングは気軽にはできません
しかし簡単に掘れるモナコイン以外の通貨を掘ってモナコインと取引所で交換することはできます
わらしべ長者をやってみたいか、なんらかの理由で電気が格段に安く手にはいるなら選択肢にはいります。
ASICをレンタルできるクラウドマイニングというサービスもありますがこれも敷居が高いです
クラウドマイニングではお金やビットコインさえあればかなり性能の良いマイニングマシンを借りることはできます。

 

もなとれ
https://monatr.jp/

モナコイン交換所
国内でモナコイン以外の通貨を得たらモナコインと交換できます
ここでモナコインをビットコインに交換することも出来ます

 

■送金

手に入れたらつかってみたいですよね
まずは送金の概念に慣れましょう
これはビットコインや他の暗号通貨でもほとんど一緒です

別の財布を作ってそこに送るのも良いですし他サービスに入金してみるのも良いです

 

デジタルコンテンツを買ってみる
http://monaroad.net/

コンテンツを選んで購入するボタンを押すと支払いアドレスが表示されますのでそのアドレスに送金するとコンテンツの購入が完了します

 

twitter投げ銭してみる

使い方は簡単でtwitterでコマンドをつぶやきます

1.入金

 @tipmona deposit

 これをつぶやくと入金先アドレスがリプライされてくるのでそこにお財布から入金します

2.入金確認
 @tipmona balance
`
 これをつぶやくと入金の状況を確認できます(リプライしてくれます)
 入金が確認できるまで待ちます

3.投げ銭
 @tipmona tip @palon7 0.2

 これをつぶやくと投げ銭出来ます
 tipのあとの@palon7のところに投げたい人のアカウントをいれます

 これだけで投げ銭出来ます

 

金券を買う
https://coingift.jp/

お試しで15円のAMAZONギフト券を買えます

メールアドレスが必要なサービスです。
支払い完了後にギフト券が送られてきます

 

最後に

駆け足的に日本で作られている暗号通貨のサービスを紹介してみましたが
ひと通り受け取りから支払いまで出来ることがわかると思います

ビットコインがこれから支払い出来る場所がどんどん増えてくると思いますが
予習を兼ねてモナコインで慣れておくと良いと思います

  

おまけ

何かのコインを手に入れたら取引所にいってみると世界が広がります

世界中の取引所をビットコインを所有するだけで取引できるようになります。

一例としてallcoinをあげておきます。モナコインも取引できます。

AllCoin.com - The fast, secure and afficent cryptocurrency Exchange

 

 

注意点としては取引したコインは取引所に置きっぱなしにすることだけは避けてください。

マウントゴックス事件と同じことが今後起きないとも限りませんので。

お財布として安全なのはクライアントタイプのお財布かオフラインウォレットがサーバーに保存されないので安全です。

 

エンジニアと糖質制限

最近糖質制限が流行っている

自分は去年から始めた

 

あまりまじめに記録してないので記憶をたよりにするが

30歳頃から急激に太り始めて70kgを超えた

自分はソフトドリンクはあまり飲まないのでおかしいなとおもいながらご飯の量を半分にしたりして4年経過した。

34歳時に80kgになった。

食べる量を減らしても体重は増え続けていた。

 

食べているから悪いとおもい断食もしたりしたが続かなかった。

しかも1日2日の断食では体重は変わらなかった。

 

そういえば糖質制限とかいうのを思い出して、クエン酸回路や糖新生を勉強してるうちに

それほどおかしくはないと思えるようになった。

はてブなんかをみてると非科学的だという人もいるがとても科学的だとおもう。

人間にそういう機能が備わっているんだから。(あまり使ってないだけで)

 

糖質を制限するのは普通の生活をしていたら難しい。

加工食品はほとんど糖質まみれである。

糖質は清涼飲料水、スナック菓子、チョコレート、米、うどん、そば、パン、スパゲッティ、デザート、カレー、芋など。

 

自分は食べ物は簡単に手に入るナッツ、肉、プロテイン(ホエイ、ソイ)、ドライ納豆、チーズ(カマンベール食べまくりです)、野菜を主体にした。

惣菜コーナのとんかつや唐揚げは普通に食べてた(腹いっぱい)。

脂っこいのはまったく気にしなかった。

飲み物はブラックコーヒ、炭酸水(フレーバーあり)、水を主体にした。

 

糖質を制限した途端2週間ほどで効果が出た。

半年で10kg

一年で20kgほど減った

 

なんというかあっという間にやせた。

特に運動もしてないけど元が筋肉質なので腹筋が割れた(昔は割れてた)。

むちゃくちゃ食べたいという衝動もわかないからリバウンドもない。

そもそも普通に腹いっぱい食ってるし(糖質除く)

 

最近は週一くらいは糖質食べているが特に体重が増える気配がない。

 

やるもやらないも自己責任です。

 

 #制限中に甘いモノが欲しくなったらエリスリトールをプロテインに混ぜてた。

 # 糖質制限するとエンジニア的に頭が働かなくなるとおもうかもしれないけど

日中の眠気がないのでバリバリコードが書けるようになりました。

脳みそはブドウ糖だけがエネルギーというわけではないみたいです。

 

#改善した症状

高脂血症中性脂肪

高尿酸血症

花粉症

脱毛

脂漏性皮膚炎

睡眠障害

過食

 

長年医者に行っても治らない病気(薬を使い続けなければならないやつ)が改善されてるんだから

糖質のとりすぎが原因としか思えないんよなぁ

 

#日常では食材を探すのが意外に大変なのだがamazonを使うと簡単に見つけられるので↓はその一例

 

 

 

 

 

 

 

nodejsをプロジェクトで適用してメンバーに使わせてみた話

node.js

node.jsを1からプロジェクトメンバーに教えてみて思ったことを書いていきます

 

チームのメンバーはC++使える新卒4人とPHPを扱う中堅3人といった構成です。

それぞれ知識のバックエンドが違うのでそれぞれ教える方法も変えました。

 

PHPプログラマ

 

JavaScriptについて

自分の認識ではPHPを使ってる人たちはJavaScript(jQuery)もある程度使えるという認識だったのですが

その考えは間違っていたようで文法から教えました。(マークアップとサーバで分業していたようです) 

文法だけみるとPHPJavaScriptは一対一で対応する関数が多いので対応表を用意しておいたのでそれほど大変ではなかったです。

クラスについてはクラスラッパを使って擬似的に対応させました。

 

PHPでは当たり前にやっていたノウハウを忘れさせる

apacheを使うところにこだわるので忘れさせる

 

■イベントドリブン 

ブラウザ側のJavaScriptや他のGUIライブラリを触ったことがあればよかったのですが

ないようなので概念から教えました。 

 

■非同期処理

非同期でのDBのトランザクションではパイプライン処理の概念を教えました。

asyncなどのフロー制御で非同期処理ごとに関数を分けることで対処するようにしました

やりかたをレールをしいてしっかり教えないとここで躓きます

 

■データをメモリに保持させる

PHPではデータを保持するときは選択肢がなくてシェアードメモリ、memcached、mysqlなど言語で扱うメモリの外に確保するしかないのですが

nodejsではデータをメモリ中に確保し続けられるのでデータにアクセスするコストが圧倒的に低いことを教えました

 

新卒のゲームプログラマー

 

JavaScriptについて

JavaScriptは触ったことがないようでしたがオブジェクト指向はかなりしっかりしてました

関数型について知識がなかったようなのでそのあたりを教えました

・クロージャ

高階関数

・ラムダ

 gcに慣れてないと普段アンマネージドなコード書いてるからか混乱する場合もありました。

 

■イベントドリブン 

ゲームプログラマはリアルタイム処理をやっているので簡単に覚えられるのではないかと思ってました。

サーバーのプログラムはゲームのプログラムに似ているところを伝えて、相違点を覚えてもらう方式で教えました。

メインループがありタスクシステムがあり、ゲームではすべての処理を16msで処理を終わらせれば良いのを

サーバーでは例えば1000人同時にアクセスさせる(一秒間に一回リクエスト)なら1ms以内に返せないとならない。

 

■非同期処理

 非同期についてはゲームでは普通に行なっているので特に教えることはなかったです(Nowローディング画面などでやってるから)

 

■データをメモリに保持させる

普通にやってるので教える必要がありませんでした

 

■その他 

ネットワークについてはIPとポートの概念をさらっと教えただけで適当に流しました。

データベースに馴染みがないのでSQLのクエリーやトランザクションについて重点的に教えました

 

教えてみた感想

 nodejsはゲームプログラマ向きだと思いました

必要なスキルがかぶってます

PHPプログラマでも時間をかければ覚えてもらえます。

 早い人は一週間くらいで使いこなせるようになるし、一番最初の導入の敷居が低いから

 自宅とかで勉強したりしやすいのだと思います。

 

node.jsとか求人出しても経験者はほとんどいないわけですし、本格的に普及させるには既存の人材に教えていくことも考えないといけない時期なのかなとおもい書いてみました。

 

 

node.jsのセキュリティ

node.js

nodeの脆弱性について

http://www.ustream.tv/recorded/40193490

 

node学園のLTでコレをみて思い出したのだけれどHTTPの脆弱性を直してもバックエンドが遅い場合

nodeの場合いくらでもリクエストを受けてしまってバックエンドのリクエストをキューにためてしまう場合に結局メモリ不足で落ちてしまう

それに対する一つの解として以前qiitaに記事を書いた↓

node.jsにリミッターを設定したい

 

一つのセッションあたりの秒間リクエスト数がキャパシティプランニングから導き出せていれば秒間あたりのリクエスト数を絞ることで回避できるかなと。

東京node学園祭2013行ってきました

node.js

東京node学園祭2013行ってきました

 

■基調講演

 印象に残ったのは

・strongloopのように優秀なモジュールを組み合わせた環境を用意したりするのもkernelとdebianみたいな関係でnodeコミュニティとしては問題ないと。

・小さなコアを維持する

・モジュール機構は完成している

・stream2は後方互換性を維持

・node.jsは後方互換性を重視する

 

特に後方互換性を重視する姿勢はプロダクションレベルのソフトをつくる基準にたっしているとおもう。

 

Grunt, yeoman, bower

YOおじさんがテンプレートから自動生成して開発を助けてくれますよという話で

generator-generatorつかえば自動生成機能も簡単に作れますよという感じでした

gruntやbowerはそこそこ使われてるけどyeomanはまだあまり使われてないみたい。

 

自分はyeoman使ってないけれどrailsみたいなイメージでした

 

JSXネタ

前半は@kazuhoさんの話でした

DeNAでたくさん使われているかといえばそうではなくて新規プロジェクトで条件が合えば使うみたいな感じでした。

 

後半は@wasabizさんの話でした

コンパイラを担当されているようで今後C#のasync-waitの構文をいれてみるとかそういう話をしてました

 

JSの問題点である、オブジェクト指向言語、最適化、コールバック地獄の解決をやっているようで

JSX使ったゲームフレームワークとかも公開してくれると使いやすいかもなぁとおもったりしたのですがその辺どうなんだろうなぁ

普及するかしないかはフレームワークがあるかどうかにかかってるとおもうし。

(ノウハウは金になるから公開しないだろうなぁとおもいつつ。)

 

アフィン変換で行列をあつかっているスライドがあったけど、JSで行列の速度まともにでるならつかってみたいかなと。

この辺、自分で実装してテストしたのだけど普通に実装するとメソッド呼び出しでかなり時間が取られることがわかってるのでインライン展開使いたいなぁ。。。

 

ES6で変わるNode.jsプログラミング

プリミティブな型の整理が言語として行われているという話でした

・generatorとpromise

・クラス

・イミュータブルな値

・変数スコープのブロック化

・引数や配列など基本的なところ

 

JSの構文がついに整理された感じです

 

ロボットの外部脳としてのnode.js

Bluetoothによるシリアル通信でセンサーからのデータをうけとりnode.jsで制御するという話だった。

・組み込みは通常コンパイルしてROM焼き込みという手順をするのだがjavascriptでは手直しして再起動という手順ができるので楽。

・フィジカルとネットワーク(スマートフォンなど)のつなぎ込みはお金の匂いがします。

(実際センサーからのデータ使ってzabbixやfluentdと組み合わせたりスマートフォンでモニタリングしたりいろいろできそう)

 

総括

 

nodeはフレームワークとか使い道とか多様性(WEBに限らない)が出てきていて

一つのプラットフォームになりつつあるなぁという感じです

 

以下資料

 

録画

http://www.youtube.com/playlist?list=PLuLCOB9HcrT0ZeWiyddLVNR93QdGmtW57

 

基調講演

https://docs.google.com/presentation/d/1IYwvHLAT0sFLAOmBGQ7dUyD7NKajwfkOgh8SAYvJa2c/preview?sle=true#slide=id.p

 

Grunt, yeoman, bower

https://speakerdeck.com/yosuke_furukawa/yeoman-grunt-bower

 

Rendr入門

http://www.slideshare.net/mshk/rendr

 

JSXネタ

http://www.slideshare.net/kazuho/jsx-oct-26-2013

http://www.slideshare.net/yuichinishiwaki/jsx-generatorimpl

 

Node.jsを選ぶとき,選ばないとき

http://www.slideshare.net/tricknotes/nodejs-27589695

 

WebRTCを始めよう

http://www.slideshare.net/mganeko/2013-web-rtcnode

 

#台風の開催ポリシーがしっかりしてたのでとても良いと思いました

運営サンGJ

懇親会のピザパーティもアドリブだったのによかったです

VMWARE ESXi 5.5 その1

仮想化

 VMWARE ESXi 5.5 が公開されていたので試してみた。

 

構成は前の記事参照のこと

簡単になったGPUパススルー - you21979の日記

 

とりあえず確認することは5.0、5.1ではパッチが当たるたびに使えたり使えなくなったり迷走していたUSB3のPCIパススルー関連から。

 

結論から言うとまったく問題なくなっていた。

 

再起動するとUSBだけPCIパススルーのチェックが外れる不具合もなおってる。

GPUのパススルーもすこし試したぶんには特に問題はない。

f:id:you21979:20130925234204p:plain

 

 

vSphere Clientのインストール時にwindows xpだとインストール時に警告画面が出た。

f:id:you21979:20130925170022p:plain

(XPでは接続できないかもしれない。)

 

特に問題なく使えるが、vSphere Clientを使っている限り新機能がまったく使えない。

新機能を使うにはweb clientをインストールしなければならないがvCenterの機能のため無料のライセンスで使えるのか試したことがないのでよくわからない。

 

ネットワークカードでintel82579lmのドライバはまだ同梱されていなかった

 

他についてはまた次回へ。

 

 #追記

フリーのライセンスで登録した情報

メモリ制限がなくなっている

f:id:you21979:20130925232343p:plain

 

#追記2

蟹チップの入ったマシンにインストールしようとしたら認識されなくなっている模様

http://www.tinkertry.com/install-esxi-5-5-with-realtek-8111-or-8168-nic/

 

GPUとUSB3のPCIパススルーができるESXiのバージョンはどれ?

仮想化
ちゃんとした情報がまとまってるページが見つからなかったので書いておく。
 
すぐ動かせるカスタムISOイメージ
 
VMware-ESXi-5.1.0-1021289-Fujitsu-v251-2.iso
 
自分でパッチ当てるなら以下の組み合わせ
 
VMware-VMvisor-Installer-5.1.0-799733.x86_64.iso
ESXi510-201303001.zip
 
ESXi510-201303001以前、または5.1 update1 以降はなぜかUSBをPCIパススルーできない
 
しかも毎回再起動するたびにUSBのパススルをチェックしなければならない面倒くささ(自分はあまり再起動しないのであまり気にしてない)
 
#一度直ってまた再発してるのはなにか問題があるのだとおもうが単にやる気がないのかもしれないし、意図的なものなのかもしれないしその辺はわからぬ
 
#追記
5.5でまったく問題なくなっている模様