(O+P)ut

頭の整理のために、Slerで働く若手インフラエンジニアが、【 (O+P)ut = OutPut 】していく場です。

【特に問題なし】BRITA(ブリタ)の携帯用ボトルで水が噴出してきた件

f:id:mtiit:20180121073516j:plain

携帯する浄水ボトルとして人気の、BRITA。私も、愛用しております。

ただ、口をつける部分(マウスピース)を上げた時に水が噴出してくることがありました。

念のため、BRITAさんにメールで確認しましたところ、

下記のような回答をいただきました。

・製品の不良ではない。
・ボトル内の空気が暖められ膨張し、マウスピース・ディスクカバー及びマイクロディスク内の水が空気の圧力に押されて、マウスピースの穴から出てくると考えられる。

確かに、この事象が起こったのは出社後、あたたかい部屋でマウスピースを開けた際だったので、
マイクロディスクに水が染み込んでいる状態で、空気が膨張してしまった可能性は大アリです。

同じようなことが起こった方は、ご参考ください。

(これを防ぐためには、どうすればいいんだろう...)

【2018/01/11 時点】仮想通貨のポジ/ネガチェック

仮想通貨(暗号通貨)界隈ですが、ビットコインだけでなく、アルトコイン*1にも注目が集まっています。

Yahooのリアルタイム検索で、キーワードが含まれているSNSへの投稿を分析し、感情の割合を見ることができます。

今回は、2018年1月11日時点の、仮想通貨時価総額Top5と、番外編として日本発のアルトコインから モナコイン と Bitzeny のポジネガ具合を見ていきたいと思います。

f:id:mtiit:20180111142418p:plain 
仮想通貨ランキング(ビットコイン、リップルなど)やICO格付け | モーニングスター より 1/11 14:30時点 抜粋




では、それぞれのポジネガを見ていきましょう




第一位 Bitcoin
f:id:mtiit:20180111143147p:plain

ネガティブが多いんですね。
くどいというのは、CoincheckというアプリのCMを指しているようです。




第二位 Ethereum
f:id:mtiit:20180111143245p:plain
すごい不穏なキーワードが並んでいます(笑)
陰謀というのは、ロックフェラー系の銀行がEthereumの開発に関わっているという記事からきています。





第三位 Ripple
f:id:mtiit:20180111143323p:plain
こちらにも陰謀という文字が...
こちらの陰謀は、ロスチャイルドとの関係が噂されているみたいです。
ちなみに、ロックフェラーとは石油王で、ロスチャイルドは金融王。





第四位 Cardano  ※Bitcoin CashBitcoinに含まれるので順次繰り上げ
f:id:mtiit:20180111143456p:plain
こちらですが、ネガティブが少ないというよりかはあまり日本で盛り上がっていないことが原因な気がします。
人気や成熟度の段階でネガティブな意見が多くなったりするスマホゲームがわかりやすいかも。




第五位 Litecoin
f:id:mtiit:20180111143555p:plain
こちらもよく聞く名前なので、それに伴ってやはりネガティブな意見も散見されます。





ここからは、我が日本発のアルトコインを見てみます。






番外編① Monacoin
f:id:mtiit:20180111143619p:plain
愛されていますね(笑)



番外編② Bitzeny
f:id:mtiit:20180111143636p:plain
こちらも、愛されています(笑)



やはり、日本発のアルトコインである2つは勃興期だからか活気があるように見えます。
これが、成長・成熟していくことができれば、色々な方が参入し、多様な意見が発せられるようになって、ネガティブ意見の割合もTopにいるアルトコインに近づいていくんでしょうね。

そういう意味では、ネガティブな意見があるというのもまた、いい指標なのかもしれません。

ちなみにですが、ポジネガの割合は wgetコマンドでワンライナーで取得できます。自動的にこれらを監視しようとする時に使えます。これはBitzenyを検索しようとした時ですが、URLを確認してgrepでぬきだしてくだい。

wget -O - 'https://search.yahoo.co.jp/realtime/search?ei=UTF-8&fr=rts_top&aq=-1&oq=&ts=2266&p=bitzeny&meta=vc=' 2> /dev/null | tail -n +2 | grep positiveBtn
<span class="ic"></span><a id="positiveBtn">28<span class="percent">%</span></a>

 wget -O - 'https://search.yahoo.co.jp/realtime/search?ei=UTF-8&fr=rts_top&aq=-1&oq=&ts=2266&p=bitzeny&meta=vc=' 2> /dev/null | tail -n +2 | grep negativeBtn
<span class="ic"></span><a id="negativeBtn">8<span class="percent">%</span></a>

tail -n +2 としているのは、一行目以外を取得するためです。今回は、一行目が検索でひっかかってきていたので、明示的に外しました。

以上です。

*1:Alternative Coin(代替のコイン)の略。ビットコイン以外の暗号通貨(価値記録)の総称

【クリスマス前】出会いマッチングアプリの登録者推移【R言語】

データを解析するにあたって、おもしろいデータか否かというのはとても重要です。分析、解析するデータの選定ですね。

今回は、少しおもしろそうなデータを用意しました。出会い系マッチングアプリの登録者数です。

f:id:mtiit:20171227223729p:plain

個人的に、クリスマスを境にしてどのような変化があるのか興味がありました。

私の仮説は、下記になります。


クリスマスに近づくにしたがって登録者の伸びは加速し、クリスマスを境に増加がゆるやかになる



さて、結果はどうなのでしょうか。

まずは、データの用意です。今回は、" CROSS ME " というアプリを用いて検証します。

こちらのアプリは、登録者が自分の いいね などのランキングを全体の登録者数との立ち位置として確認できるため、全体の登録者数を取得できます。協力者に頼んで、男性と女性でアカウントを作成し、毎日0時に登録者をメモするという作業を繰り返しました...(まさかの手動) ちなみに登録者数の閲覧は課金せずとも可能です。

さて、そんなこんなで取得したデータは下記です。

12/7,54768,26733
12/8,55482,27056
12/9,56171,27296
12/10,57101,27644
12/11,58316,28018
12/12,59142,28340
12/13,59997,28724
...

一列目は日付、ニ列目は男性の登録者数、三列目は女性の登録者数。

今回はRで推移を可視化するためにデータを読み込みます。
CSVファイルで読み込めるので、ファイル名をhoge.csvとすると下記のように簡単に値を取得できます。

> data_crossme <- read.csv("./hoge.csv")
> dim(data_crossme)
[1] 20  3

用意した日付は12/7 0:00~12/27 0:00 の計20です。

データの差分は diff で取得できます。

> diff(data_crossme[[2]]) #男性
 [1]  689  930 1215  826  855  942  819
 [8] 1033  778 1095  764 1014  627  712
[15]  998 1003 2371  852  844
> diff(data_crossme[[3]]) #女性
 [1] 240 348 374 322 384 316 328 356 329
[10] 339 239 310 187 232 228 324 299 282
[19] 263

あれ...男性の値が飛びぬけてる日があるような....

そして、同じように日付をx座標にするため、文字列を日付に変更します。こちらは strptime を用いて形式を指定してあげれば変換できます。

> day_data <- strptime(data_crossme[[1]],"%m/%d")
> day_data
 [1] "2017-12-08 JST" "2017-12-09 JST"
 [3] "2017-12-10 JST" "2017-12-11 JST"
 [5] "2017-12-12 JST" "2017-12-13 JST"
...

準備が整いました。増減を可視化してみます。

> plot(x=day_data[2:length(day_data)],y=,diff(data_crossme[[2]]),ylim=c(0,2500),xlab="",ylab="")
> par(new=T)
> plot(x=day_data[2:length(day_data)],y=,diff(data_crossme[[3]]),ylim=c(0,2500),xlab="",ylab="",pch=2)

f:id:mtiit:20171227230131p:plain
△マークが女性、〇マークが男性です。

△マークは特に日による変化は見られません。一方、〇マークは1日だけ突出している日があります。
よく見ると、12/24 0:00~12/25 0:00 のところだけ2000を超える異様なデータとなっています。

仮説がはずれました。分析するまでもなく見られた結果は、

クリスマスイブに、男性側のみ登録者数が急増する


でした。理由はなんなのでしょうか...直前すぎてどうともならない気がするんですが...

以上、興味本位のデータ可視化でした。

【超絶入門】表スペースと表の違い【データベース】

データベースとインスタンスの違いについては、下記のように記載しました。
mti.hatenablog.com

一方で、同じようにややこしい用語がデータベースの話の中ではいっぱいあります。
今回は、表スペースと表について、簡単に説明します。

まず、どちらもデータベース単位で管理されています。しかし、同等というよりかは表スペースの中に表がいる、といった方が理解しやすいかもしれません。イメージは、下記のような感じです。
f:id:mtiit:20171224173934p:plain



さて、表スペースというのは、少し定義が難しい代物だと思います。Googleで「表スペースとは」で検索すると以下の2件が上位にでてきました。

●表スペース(表領域) とは、データベース管理システム(DBMS)がデータを保管するために記憶装置(ストレージ)上に確保した領域のこと。  by IT用語辞典


●表スペース とは、表が実際に保管されるデータ・セットを保持する、ディスク上のボリューム・セットです。すべての表が、表スペースに保管されます。 by IBM Knowledge Center



どちらも少し難しい説明となっていますが、表スペースの中に表がいるというイメージが伝わると思います。

表 と システムのディスクor物理メモリー の橋渡しをするような存在として記述されている文献もあったりします。



定義が難しい表スペースに比べて、表はとても分かりやすいと思います。

表とは、関連するデータを論理的に列と行に配列したコレクション です。テーブルとも言い、DBの操作として CREATE TABLE ... で作るものが表です。見慣れている2次元のあれです。

簡単に表スペースと表について記載しましたが、さきほどの図に残りのオブジェクトを追記したものがこちらになります。

f:id:mtiit:20171224175243p:plain

この図に出てくる用語に、具体的なイメージを持てていれば、データベースを取り巻くオブジェクトの話でちんぷんかんぷんになることはないように感じます。

以上、データベースの超入門パート2でした。

【BitZeny】採掘ログを可視化【Linux】

f:id:mtiit:20171218181307j:plain:w100

先日、BitZenyはCPUでも採掘が可能、という話をYescryptの解説とともに記事にしました。

mti.hatenablog.com

今回は、実際に平日の5日間の採掘ログを元に採掘がよく成功する時間帯などはあるのかな?と思い簡単に可視化・分析してみます。

まず、採掘結果は下記を保存するためにCygwinで下記のように実行しました。

./zenymin.exe 2>> ./hoge.log

zenymin.exe は、minerd.exe -a yescrypt -o stratum... という記載がある一連のスクリプトです。
そして、標準エラーとして実行結果を出力しているようなので 2>> としてログファイルに記載しています。

ログファイルは、下記のようになっています。

[2017-12-17 00:39:41] thread 0: 1125 hashes, 0.39 khash/s
[2017-12-17 00:39:41] accepted: 1/1 (100.00%), 0.39 khash/s (yay!!!)
[2017-12-17 00:39:48] thread 2: 4096 hashes, 0.40 khash/s
[2017-12-17 00:39:48] thread 3: 4096 hashes, 0.39 khash/s
[2017-12-17 00:39:48] thread 1: 4096 hashes, 0.39 khash/s
[2017-12-17 00:39:56] thread 3: 2929 hashes, 0.40 khash/s
[2017-12-17 00:39:56] accepted: 2/2 (100.00%), 1.57 khash/s (yay!!!)
[2017-12-17 00:40:00] Stratum requested work restart
[2017-12-17 00:40:00] thread 0: 7627 hashes, 0.39 khash/s
[2017-12-17 00:40:00] thread 2: 4689 hashes, 0.39 khash/s
[2017-12-17 00:40:00] thread 3: 1742 hashes, 0.39 khash/s
[2017-12-17 00:40:00] thread 1: 4630 hashes, 0.39 khash/s
[2017-12-17 00:40:06] thread 0: 2209 hashes, 0.40 khash/s
[2017-12-17 00:40:06] accepted: 3/3 (100.00%), 1.58 khash/s (yay!!!)
[2017-12-17 00:40:18] thread 1: 7012 hashes, 0.39 khash/s

ここで、"yay!!!"という行がブロック報酬をもらえたという意味のようです。

例えばこのファイルから、
12/18分のログで1時間毎にyay!!!が出力された行数を取り出すにワンライナーは下記となります。
今回は簡単に grep を使っていますが、検索列まで絞りたい時は過去記事をご参照ください。
【Linux】指定した列を特定の単語で検索し、表示する【awk】 - (O+P)ut

$ for i in `seq -w 0 23`;do cat hoge.log | grep yay | grep -c "12-18 $i";done
95
100
94
91
88
以下略

seq -w で 0詰の00~23を出力されてそれを元にgrepをかけています。

これを、12/18-22も5日間の結果として出力したものが下記となります。
f:id:mtiit:20171223170015p:plain

特に相関関係はなさそうですが、マイニングプールのサーバーが落ちたりして 0 とかになってる時間帯がないことを知れたのはよかったです。マイニングですが、100枚くらいたまればやめようかなーと思ってます(笑)

以上、採掘ログの可視化でした。

【BitZeny】Yescryptとは?【超絶入門】

先日、下記の記事でBitZenyとモナコインを題材に仮想通貨(暗号通貨)を扱いました。
mti.hatenablog.com

そこで、BitZenyはマイニングに参加しやすい、と記載しましたがその理由は書いていませんでした。

ここでは、「Yescrypt とは」 「Yescrypt 仕組み」 と気になっている人向けに 私が分かる範囲で簡単に説明してみます。



f:id:mtiit:20171218181307j:plain:w100



そもそも Yescryptとは?

これは、簡単に言えば宝探しのルールとなります。

実は、ビットコインのマイニングは、市販のPCでは太刀打ちできません。

GPUマイニング、ASIC*1マイニングという言葉を聞いたことがあるかとは思いますが、市販のPCに積まれているCPUではなく、暗号解読専用のかなり高額の機器を使った人たち等々が、ビットコインのマイニングに参加しています。例えば、ASICなんかはビットコインが採用しているSha256dというアルゴリズムに最適化されています。
簡単に言えば、小学生(CPU)が、オリンピックメダリスト(ASIC)と100m走を競争するようなものかもしれません。何人でかかっても、奇跡的に何かに躓いてこけてくれでもしないと勝てないです。

f:id:mtiit:20171218180052j:plain:w200
ビットコイン採掘機なんてものが売られちゃっている今日この頃)



ただ、暗号というのは何もビットコインだけで使われているわけではありません。それこそ、クレジットカードの取引から日常の電子メールでも用いられています。
そういった意味では、専用の機器を使われたら暗号が解かれやすくなっちゃう というのは暗号の仕組みとして少し困ってしまうことでもあります。これらをASCI Attack 、GPU Attack なんて呼んだりします。

そういった背景の中で、BitZenyとは関係なく提案された暗号手法が、
Yescrypt
となります。つまり、GPU Attack や ASCI Attack にめっぽう強く設計されています。

そんなYescryptを採用しているのがBitZenyというわけです。

こういった背景もあって、市販のCPU でも 戦いやすくなっています。 (逆に言えば、CPUでも束になれば解けちゃうというのは暗号としてはそれこそ困ってしまうポイントでもありますが)

※Yescryptに関しては、こちらに技術的な文章があります。
http://www.openwall.com/presentations/PHDays2014-Yescrypt/


ちなみに、BitZenyについて、英語で下記のような文章を見つけました。
When the well known alternative currencies grabbed the market’s attention, this crypto was not to be left behind.
Yescryptを採用した暗号通貨は他にもあったが、特に流行らなかったので出てこなかった と読めます。流行らなかった理由があるのであれば、そこも知りたいものです(笑)何か欠陥を抱えているとか?これも分かればこの文章に追記しようと思います。

以上となります。ご参考ください。

*1:Application Specific Integrated Circuit

【超絶入門】モナコインとBitZenyで仮想通貨を簡単に理解する【比較】

本記事は、日本発の仮想通貨(暗号通貨)である

を題材に仮想通貨についての超入門記事を書いてみました。

f:id:mtiit:20171218153540p:plain


比較するのは 「誕生時期」「総発行枚数」「ブロック生成時間」「ブロック報酬」、この4つの観点となります。仮想通過とはなんぞや?というイメージを少しでも掴んでいただければと思います。






(1/4) 誕生

モナコイン:2013年末
BitZeny:2014年末

モナコインが1年ほど前に先行して誕生した、という感じですね。
ちなみに、仮想通貨の先駆け、ビットコインは2009年末に誕生しています。

仮想通貨は、本当に有象無象にあります...
f:id:mtiit:20171218162603p:plain
2017年12月1日 – ゼロから始める仮想通貨より画像抜粋




(2/4) 総発行枚数

モナコイン:約1億枚
BitZeny:約2億枚

これらの仮想通貨は、上限が決まっており、新たに発行される枚数の半減期というものが設定されています。*1
手に入りにくくなることは、1枚の価値をゆるやかにあげていくということに繋がります。

ちなみに、半減期というのは、こんな感じのグラフ。だんだん、緩やかになっていくイメージ。
f:id:mtiit:20171218154853p:plain



(3/4) ブロック生成時間

どちらも:90秒

これは何かというと、簡単にいえば、90秒毎に会計チェックを行うということ。ちなみに、この会計チェックをやり遂げた人がマイニングの勝利者として次の項目である報酬をいただけます。




(4/4) ブロック報酬

モナコイン:50MONA
BitZeny:250ZNY

先ほど述べたように、ブロック生成時間(90秒)毎の取引に不正がないかどうか、みんなが会計チェックをしています。その中で、一番早くチェックをした人に報酬として支払われるものがブロック報酬なるものです。
さっきの半減期というのは、このブロック報酬が半減する、というのが正確な言い方となります。あと、BitZenyに関しては私用のPCで簡単にマイニングに参加できます。

おまけですが、
マイニングをお宝探しとして簡単に表したのが下記の図です。
f:id:mtiit:20171218163932p:plain

この、発見するまでの時間間隔が大体90秒くらい、というイメージで、お宝発見者が受け取る報酬がブロック報酬となります。一人で見つけるのが大変なら、チームを組んで探したりします。

この絵の中に、発見と確認というものがあります。
実はここが味噌で、仮想通貨を支えるブロックチェーン技術は、「本物の宝物を発見するのはものすごく大変だけど、発見された宝物が本物かどうかを確認するのはとても簡単」という暗号の基本を利用しています。

以上となります。この辺をぼんやり理解していれば、もう少し難しい記事を見ても理解がスムーズになるかと思います。

【BitZeny】Yescryptとは?【超絶入門】 - (O+P)ut
[PR]BitZenyが私用のPCでマイニングに参加できる理由

*1:正確に言えば、期間ではなくブロック生成の数に依存している