Rakontanto de ludo

Peace cannot be kept by force. It can only be achieved by understanding.

雨の日はインドアな夜更けになります

こんばんわ。

現在の島根県松江市は雨です。残念ながら最近マイブームの夜中の徘徊はできそうにありません。夜中外に出た時に夕食をどっかで食べればいいかと何も買わずに休日出勤から帰宅したのですが、雨で徘徊が中止になったため夕食を食べ損ねました。食材は尽きましたので何も作れず。カップラーメンがあるので後で食すか・・・。

最近ラブライブ!のネタが続いていて他のことが書けていなかったので今日はラブライブ!のネタは置いといて最近の身の回りの出来事を書きます。

スクフェス始めました!

すいません。いきなりラブライブ!の話です。3 日坊主ならぬ「3 行坊主」で前言撤回です。

tomohiko37-i.hatenablog.jp

先日、μ's の新曲「HEART to HEART」の CD を購入した記事でスクフェス云々の話を書いていました。よくよく見たら、スクフェスで使えるシリアルコードが封入されていました。

f:id:tomohiko37_i:20151102012958j:plain

これです。もう使っちゃったのでコード部分を隠す必要もないのですが、いつもの癖で。というわけで再びスクフェスを AppStore からダウンロードしました。

このシリアルコードを使うと、HEART to HEART のパッケージに描かれている海賊?風のコスの穂乃果と真姫と希のカードがもらえます。

f:id:tomohiko37_i:20151030052124j:plain

このデザイン。貴重なのでゲットしておくことに。あまりスクフェス自体はプレイしていませんでしたが、これを機にいろいろやってみたら練習の方法とかレベルアップの方法とかわかってきたのでちょっと進みました。おかげで劇場版の新曲「Angelic Angel」と「SUNNY DAY SONG」と「僕たちはひとつの光」がプレイできるようになったので結構ご機嫌に。少し続けてみようと思います。

エヴァスマホのリーフレットをもらってきた

本日も会社へ行って仕事をしてきたのですが、昼食を求めて例のセブンイレブンへ行ってきました。エヴァンゲリオン 20 周年とかでセブンイレブンとのコラボ企画があるようです。気になるチラシがあったのでもらってきました。

f:id:tomohiko37_i:20151102014016j:plain

デザインがめちゃくちゃカッコイイんですが。iPhone ユーザなので Android は基本的に買いませんが、ちょっと後ろ髪を引かれるデザインです。おまけに SIM フリーだし。

f:id:tomohiko37_i:20151102014223j:plain

f:id:tomohiko37_i:20151102014249j:plain

Android も 5.0 を搭載するようです。ロリポップですね。

ちなみにチラシの最後に衝撃的な商品が紹介されていました。

f:id:tomohiko37_i:20151102014442j:plain

1,728,000

これ買う人いるんでしょうねぇ。レイかアスカならゼロが 2 つか 3 つ少なければ買おうと思いますもん。自宅に置いといたら帰宅した時とか夜中にふと目が覚めた時にビクっとしそうですが・・・。

Ruby の資格を取りたい

この間までやっていた Swift でゲームを作るやつはとりあえず一旦メドがついたので、次は Ruby をもうちょっと深く勉強することにしました。ちょうど資格試験もあるようなのでちゃんと勉強して Ruby の資格を取得しようかと画策しています。

Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

この本をちょっと前に買ってあまり読んでいなかったので、少しずつ読み始めました。年内には最初の段階の Silver の取得を目指したいと思います。

面白かったところ

今日は文法の配列のあたりを中心に読んでみたり実際にコードを動かしたりしてみたのですが、面白かったところを。

a = []
b = [10, true, "30"]
b[0] #=> 10

最近は iOS 系の Objective-C をやっていたり、去年は C/C++ をやったり、それまでは長年 Java を使っていたので基本的に重厚長大プログラミング言語を扱っていたのですが、軽い感じで書けるスクリプト言語を本格的にやるのは Ruby が初めて。衝撃だったのがこのコードです。

それが配列の要素に異なる型を入れられるということ。Java だと、

int[] a;

という感じでそもそも配列に型を指定するので、その型の要素以外は入りっこいないのですが、Ruby は動的型付けなので変数の宣言に型を指定しません。そのためこのように柔軟なことができるんですね。

もうひとつ。

v1 = [10]
v1.length #=> 1

これはわかるんですが、

v1 = [10]
v1[3] = "aa"
v1.length #=> 4

これができてしまうこと。要するに [10, nil, nil, "aa"] という配列を作ってくれているのですね。これの逆版で、

p v1     #=> [10, nil, nil, "aa"]
p v1[-1] #=> "aa"

となります。要するに out of range が出ないのです。out of range とはプログラム初心者ならずとも下手なプログラムを書くと中級〜上級者でもやらかす基本的な配列に関するバグです。

そもそも配列というのは「いくつかの箱」を最初に用意しておいて、「1 番目の箱には 3 を入れて、2 番目の箱には 5 を入れて・・・」と「n 番目」の指定をしてあげるわけです。だから当然、箱を 10 個しか用意していないのに「11 番目の箱」にものを入れようとしてもエラーになるわけです。同じように「-1 番目の箱」にも値は入れられません。この手の間違いをやるとシステムが out of range ... というエラーを吐くのがこれまでのプログラミング言語の通例です。

今日勉強した限りだと Ruby はこれが起こらない。起こらないのがいいかは別ですが、動きが異なるのですね。非常に面白い。