音楽紹介 〜hide〜

何の記事??

ロクが好きな音楽をひたすら好きなように紹介するコーナーです!

気に入ったり、同じ趣味の方がいらっしゃったら是非是非お声がけください。

twitter.com


hide

今回紹介するのは hide さんです!!

hide
hide

hide(本名:松本秀人)は、1964年生まれのギタリスト、歌手、プロデューサーです。
そして、言わずもがなですが X JAPAN のギタリストとして活躍していました。

ちなみに X JAPAN の時は HIDE でソロ活動時は hide としていました。

しかし残念ながら 1998年5月2日に急逝してしまいました。当時ファンによる後追い自殺がすごく急遽 YOSHIKI が会見を開いたことでも有名ですね。

・・・と冷静に紹介するのはここまでにして、本当に好きなんですよ!!
X JAPAN 時代も好きだし、ソロ時も好きなんです。

ちなみに数日前にゲーセンでお金めっちゃつぎ込んで入手しちゃいました笑

このフィギュアが着ている服なんですが、めちゃくちゃ可愛くないですか!?

「ノーブランド品」豪華修正版 衣装 hideラインパーカーコスチューム コスプレ イエロー 自由に選ぶ

LIVE や PV でも着ているんです!!
ROCKET DIVE のLIVE です!!

ギターでいえばダントツでこれが可愛くて好き!!


ロクの〇〇の時に聞きたい!!

今回は、、、カラオケで hide 好き仲間とライブ映像を見たい!! です。

Hi-Ho


最後に

やっぱり hide はかっこよくて可愛いな〜〜

Ruby でベンチマークを取る方法

何の記事??

早速ですが、みなさんは APIレスポンスが遅かったりバッチ処理が長くて「〇〇さんの担当している部分が遅いんじゃないの?」と疑われたことはありますか??

僕はあります泣(p>□<q*)
というのもデータ処理部分をメインでやっているためどうしても単純なファイル連携のバッチなんかをイメージして同じ「バッチ」と括られてしまうとやはり処理時間の長いバッチになってしまうことがあるんです

・・・という言い訳はこの辺にして、本題に入りましょう。

そんな時に「僕のかいたコード部分はこのくらいの時間がかかっています。」「こんな手法を試してしっかりと測定した結果この方法を取っています」などと的確にレスポンスするためにも必要なことが・・・
ベンチマークを取ること!!

今回はこのベンチマークというものを知ってもらうために Ruby でベンチマークをとる方法を紹介します!!


ベンチマークとは

プログラムは何かしら目的はあった上で書くものですが、大抵の場合に手法やロジックが複数候補に上がり頭の中ないしはチームと相談してアルゴリズムを決定することが大半だと思います。

しかし、その方法本当に最適ですか??
「実装が楽だから」(たしかに魅力的!!笑)とかあの先輩が言ったからといった理由で決めていませんか??

しっかりと測定しましょうして決めるべきですよね。

じゃあどうやって測定するのか・・・そんな時にベンチマークの出番です!!

それでは具体的にどんなことを測定・比較するかと言うとそれは web、研究・開発・IoT などでだいぶ変わってくるのですが、僕は基本的な以下をいつも測っています。

  • 処理完了までにかかる時間
  • メモリ消費量


Ruby でベンチマークをとる

Ruby ではベンチマーク用の標準ライブラリ(Benchmark)が用意されています。

「文字列の連結」を例にベンチマークのコードを見ていきましょう!
今回比較するのは += で文字列を繋げる方法と << で連結する方法です。

一般的には、<< の方が早いと言われていますが実際にどうなるでしょうか。計測していきましょう!!

ベンチマークの際に GC というメモリに残ってしまったゴミを掃除する機能を明示的に止めておく必要があります。(3行目)

実際にベンチマークを出している箇所は、コメント「1個目のベンチーク」と「2個目のベンチマーク」と書かれている箇所です。

report メソッドの引数には、レポートで表示する名前を入れてあげます。今回は += と << ですね。計測したい処理をブロックの中に書いてあげます。

今回はどちらも10000回、+= もしくは << で文字列を連結している箇所ですね!

require 'benchmark'
# GC を止める
GC.disable

Benchmark.bm() do |x|
  # 1個目のベンチマーク
  x.report("+=") {
    str = ""
    10000.times do
      str += "hoge"
    end
  }
  # 2個目のベンチマーク
  x.report("<<") {
    str = ""
    1000.times do
      str << "hoge"
    end
  }
end

実行結果は!!

              user     system      total        real
+=        0.049862   0.046535   0.096397 (  0.096497)
<<        0.000112   0.000014   0.000126 (  0.000126)

システム時間やら、ユーザータイムやらあるのですが一旦見て欲しいのは、real の箇所です。

なんと += メソッドを使った方は、0.096497秒かかっているのに対して、<< メソッドで連結している方は 0.000126秒で完了していますね!!

これで自信を持って、<< の方が早いのでこちらを使いましたと言えるわけです!!


最後に

今回は比較的にすでに知られている Ruby のメソッドの早いものと遅い物を比べたのでネットで調べればどちらが早いかはすぐに出ますが、これが本当に独自処理とか噛ませていくとわけわからなくなるんですよ笑

なのでベンチマークをしっかりとってあげて安心して処理を決定してあげる必要があるんですね!!

Twitter もお願いします!!(フォローの際に「ブログから」といただけると嬉しいです。読者と絡みたい!!笑)

twitter.com

また、最近プログラミングメンターを始めました。お気軽にご相談ください。

menta.work

少しでも興味を持っていただけたら嬉しいです。

それではまた次回〜

【心理✖️論理ゲーム】中田敦彦考案のカードゲーム XENO

何の記事??

オリラジの中田敦彦が考案したカードゲーム「XENO(ゼノ)」の紹介記事です!!

論理と心理を掛け合わせたカードゲームで二人でも数人(3、4名)でも楽しめるゲームですので覚えといて/持っておいても得しかないと思います!!

是非ハマって欲しいので紹介させてください!!


XENO(ゼノ) って何??

XENO は、それぞれ効果を持った18枚のカードを使って相手のカードを読み解くゲームです!!

実際のカードは、こんな感じです。

中田敦彦考案XENO
XENO

独特な世界観があって、素敵なカードデザインですよね!!
デザインに加えてその内容もとても面白いんです。それでは中身を見ていきましょう!!


ルール紹介

正直細かなルールを僕が説明するよりも実際に説明しながらプレイしている動画を見ていただいた方がイメージが湧くと思いますのでおすすめ動画を掲載します!

イメージは湧きましたでしょうか??
勝ち方にも色々あったり、そのアプローチもいくつもあり、とても面白いですよね。


是非見て欲しいプレイ動画

絶対に見て欲しい勝負があります。
それは、、、

中田敦彦 VS DAIGO

超論理派の中田敦彦とメンタリストのDAIGO が一騎打ちをします。
それはもはや頂上決戦!!

これを見ればきっと XENO のさらなる魅力に惹きこまれると思います!!

まずは前編!

とうとう決着が!!

カードはこちらから買えます。
1000円もしないでこんなおしゃれなカードが手に入るのは素敵ですね!!


最後に

本当はしっかりとした記事にしたかったのですが、とにかくみんなに知って欲しいと思って動画に頼ってしまいました。

とはいえ、結局はプレイ動画を見ていただくのが一番楽しいですよね笑

それではまた次回〜