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

Rails Migration versioningと5.1での変更点

Rails 5.0で導入されたMigration versioningでは、Migrationを作成する際にSuperClassにバージョンを指定することで挙動をコントロールできるようになりました。

Version the API presented to migration classes, so we can change parameter defaults without breaking existing migrations, or forcing them to be rewritten through a deprecation cycle.

http://guides.rubyonrails.org/5_0_release_notes.html

例えばRails5.0でModelを生成するとこんな感じにMigrationが生成されます。

class CreateHoges < ActiveRecord::Migration[5.0]
  def change
    create_table :hoges do |t| 
                                                                                                                                                                                  
      t.timestamps
    end 
  end 
end

4.2と5.0の挙動の変更点は下記サイトを参考にする限りtimestampsのnot_nullがデフォルトになったことと、外部キーのindex:trueがデフォルトになったようです。
http://blog.bigbinary.com/2016/03/01/migrations-are-versioned-in-rails-5.html

ただ、Rails5.1でより多くの動作の変更がありました。

バージョン指定が必須

Rails5.1でSuperClassへのバージョン指定が必須となりました。指定しない場合例外が発生します。

Inheriting directly from ActiveRecord::Migration raises an error. Specify the Rails version for which the migration was written for.

http://guides.rubyonrails.org/5_1_release_notes.html

主キーのデフォルトがBIGINT

主キーのデフォルトがBIGINTに変更になりました。

Change Default Primary Keys to BIGINT.

http://guides.rubyonrails.org/5_1_release_notes.html

これまで、BIGINTを使用する場合には指定する必要がありましたが、5.1では逆にINTを使用したい場合は指定が必要になります。

ここで、バージョン指定が挙動に関係してきます。4.2や5.0のMigrationでは指定しないとINTになるが、5.1ではBIGINTになるので同じアプリケーションの中に混在すると紛らわしいと感じました。

5.1仕様に書き直す方が記述内容が減るのでバージョン記載する5.1用に更新することになるかなと考えています。

改訂2版 パーフェクトRuby

改訂2版 パーフェクトRuby

Rails 5.1 Encrypted secretsの使い方

Rails 5.1がリリースされました。
Ruby on Rails 5.1 Release Notes — Ruby on Rails Guides

待望のsecrets.ymlの暗号化が取り込まれているので早速使用してみました。

暗号化されたsecrets.yml生成

$ rails secrets:setup

生成されるファイル

  • config/secrets.yml.key
    • 複合する為の鍵ファイル
  • config/secrets.yml.enc
    • 暗号化されたsecrets.yml

追記されるファイル

  • .gitignore
    • config/secrets.yml.keyを除外する設定が追記

生成時に表示されるメッセージの中に下記表記があります。

You can edit encrypted secrets with `bin/rails secrets:edit`.
Add this to your config/environments/production.rb:
config.read_encrypted_secrets = true

編集方法と有効にする設定方法が記載されています。
prodiction.rbに記載するよう記述がありますが、development.rbに記載すればdevelopmentでも使用することが可能でした。
また、暗号化されていないconfig/secrets.ymlを併用することもできるようです。

暗号化されたsecrets.yml編集

上記に記載されたコマンドで編集が可能ですが、編集の際環境変数EDITORのエディタが使われます。

$ EDITOR=vim rails secrets:edit 

暗号化されたsecrets.yml利用方法

config.read_encrypted_secrets = trueが設定されており、config/secrets.yml.keyが存在する。または、環境変数RAILS_MASTER_KEYにconfig/secrets.key.ymlの値を設定しておけば自動的に復号してくれます。
Rails.application.secretsで値を取得することが可能です。

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

PS4 ウォーキング・デッド オールクリア 感想/レビュー

ウォーキング・デッド 【CEROレーティング「Z」】

ウォーキング・デッド 【CEROレーティング「Z」】

PS Storeセールで購入したウォーキング・デッドでクリア。
カテゴリとしては「ライフイズストレンジ」に近い作品だと思う。アクション性もあるがQTEが主なのでストーリーに重点をおいた作品。

プレイ開始当初はグラフィック面に不満を持っていたが、展開される内容が想像していたよりエグくこれをリアルな描写で見ると大変負担がかかるなと感じたのでこのくらいがいい塩梅なのかもしれない。
このような描写を海外ドラマ版ではどのように表現しているのか興味が湧く。

人間性に重点を置いたシナリオというか、ゾンビ(作中ではウォーカー)の出現によりどういう感情を持ち、どういう行動を起こす人間がいるか。また、その人間とどのように付き合うかが問われる。

「ライフイズストレンジ」と同じくチャプタークリアのタイミングで、自分の選んだ選択肢を何%の人が選んだかという統計データを見せてもらえるのは良い。

既に「ウォーキング・デッド シーズン2」が発売されているので、いかにも続きがありそうな終わり方で終わるのだがリーの物語としては完結なのかな。
不満点は歩くスピード(走れないよね?)。狭いエリアならいいけど広いエリアでは少々移動が面倒。
あとはちらほら怖がらせる為の演出が見受けられたのでもう少しビックリ演出が欲しかった。

選択肢やQTEの結果によってシナリオ分岐するが、別の選択肢でもう一回やるのが少々ハードルが高い気がする。
またあのドロドロした話を見ないといけないのかと。
全部の展開みたいのだけどね。シーズン2には本作の選択の結果も引き継いでスタートできるらしいのでより楽しみ。

本日のゲーム購売記315

オメガラビリンス - PS Vita

オメガラビリンス - PS Vita

購入

  • PSVita,オメガラビリンス,2592

PSNウォレットの臨時収入があったのでGWセールが終了する前になんか買おうと思っていた最後の買い物。
ザ クルーと悩んでいたがこちらは先日プレイしたニード・フォー・スピードのようなゲーム性みたいなので後でいいかと。

ザ クルー アルティメットエディション - PS4

ザ クルー アルティメットエディション - PS4

これで購入欲は満たしたのでひたすらプレイしていく。まあどうせすぐまた買い足すのだろうが....

本日のゲーム購売記314

テイルズ オブ グレイセス エフ

テイルズ オブ グレイセス エフ

購入

  • PS3,テイルズ オブ グレイセス エフ,500
  • PS3,BLEACH ソウル・イグニッション,500
  • PS3,ぬらりひょんの孫 -百鬼繚乱大戦-,500

売却

  • PS3,KILLER IS DEAD PREMIUM EDITION,80
  • PS3,シンギュラリティ,50
  • PS3,薄桜鬼 巡想録,110
  • PS3,マーセナリーズ2 ワールド イン フレームス,110
  • PS3,アイドルマスター2,50
  • PS4,バトルボーン,110
  • PS3,薄桜鬼 黎明録 名残り草,110
  • PS3,圧倒的遊戯ムゲンソウルズZ,110

GWセールで安く購入でき、高く売れ...なかったが(値段落ちきってるタイトルばかりなのでしゃーない)成果はまあまあ。

本日のゲーム購売記313

WHITE ALBUM2 -幸せの向こう側-通常版(特典なし) - PS Vita

WHITE ALBUM2 -幸せの向こう側-通常版(特典なし) - PS Vita

購入

  • PSVita,WHITE ALBUM2 幸せの向こう側,925
  • PS4,Unravel,437
  • PS4,Color Guardians,583
  • PS4,XCOM 2 デジタル デラックス エディション,4050
  • PS4,ボーダーランズ ダブルデラックス コレクション,1354

あの「WHITE ALBUM2」を1000円でプレイ出来るとはなんということなんだ!
未プレイの人も美少女ゲームに多少抵抗がある人も是非プレイしてみてほしい!

その他ではXCOM2を購入。てっきり英語版しか存在しないと思っていたのだがダウンロード専売では日本語版があった模様(パッケージ版はないよね?)
今回はシナリオクリアまでたどり着きたい...

本日のゲーム購売記312

ウルフェンシュタイン:ザ ニューオーダー - PS4

ウルフェンシュタイン:ザ ニューオーダー - PS4

購入

  • PS4,ウルフェンシュタイン: ザ ニューオーダー,100

CERO:Z実質フリープレイ。ザ オールドブラッドしか持っていなくて入手する機会を伺っていたので嬉しい!

本日のゲーム購売記311

家族計画 Re:紡ぐ糸 (通常版) - PS3

家族計画 Re:紡ぐ糸 (通常版) - PS3

購入

  • PS3,家族計画 Re:紡ぐ糸,1550
  • PS3,デウスエクス,500
  • PS3,ガチンコヒーローズ,250

ずっと狙っていたPS3家族計画を入手。家族計画とはいっても原作ではなくリファイン試みたものだが評判が良くない...
原作は好きだった民からするとキャラデザで少し拒絶反応が出てしまうのがまずよくないな...

その他は値段に釣られて購入。

本日のゲーム購売記310

THE KING OF FIGHTERS XIV

THE KING OF FIGHTERS XIV

購入

  • PS4,THE KING OF FIGHTERS XIV,2799
  • PSVita,ひぐらしのなく頃に粋,2682
  • PS4,ロックマン クラシックス コレクション,1125
  • PS4,アケアカNEOGEO ザ・キング・オブ・ファイターズ '94,740
  • PS4,RISE OF THE TOMBRAIDER,3132
  • PS4,The Walking Dead,972

各種セールが盛りだくさん。ついにKOF14を購入。KOF13がとても面白かったのですぐ購入するつもりでいたがGGXrdRで格闘ゲーム欲を満たしてしまったせいか発売当初は見送ってしまった。
バージョンアップが実施されバランス調整された直後なので始めるにはいいタイミングかなと。この値段ならマストバイでしょう。

他にも販売停止されていたひぐらし粋の再販。
ロックマン1-6未プレイ(初プレイはロックマン7)な自分には嬉しいコレクション。
「トゥームレイダー ディフィニティブエディション」が面白かったので楽しみな「ライズ オブ ザ トゥームレイダー」。
とても評判の良いウォーキング・デッドと盛りだくさん。(その為値段も盛り沢山...

ESL Japan Cup #1 FIFA17部門に参加しました

ESL(Electronic Sports League)はeスポーツプラットフォームとして数多くのゲーム大会に利用されています。
私がESLを初めて知ったのは「ストリートファイターV」の賞金付き大会の時でした。

ESL Japan Cupの運営はESL Japanが行っているので厳密には上記大会と運営は異なるのですが、ストVの様に規模や賞金額が大きくなっていく可能性があるのではないか?と期待に満ちています。

ESLを利用したゲーム大会はこれまで数多く開催されているようですが、今回はSIEJA協賛のもとPS4のイベント機能を使って大会を行うという試みが行われています。

私はこのイベント機能を使った取り組みがなければ今回参加していなかったと思います。
FIFA17部門に参加したのはそれしか所持していなかった為ですが、BBCP以降まともにプレイしていない「BLAZBLUE」と全くプレイしていない「フォーオナー」に比べれば日常的にプレイしている「FIFA」なら多少は勝算があると考えました。

結果は奮わず1回戦負けでしたが、とてもよい経験が出来たので実際トーナメントが進行するフローを紹介します。

全体の流れ

  1. ESLアカウント作成
    • 日本 | ESL Play
    • ESLプレイのウェブサイトから新規登録を行います。
  2. Discordのインストール
    • Discord - Free Voice and Text Chat for Gamers
    • 本大会の参加にはDiscordのインストールが必須となっていました。
    • Discordはテキスト/ボイスチャットツールとしてゲーマーを中心に人気を集めているようです。
    • 今回アカウントを登録して初めて使用しましたが使用感はSlackと近いものがあります。
    • インストール後左メニューから+を選択し「サーバに参加」を選択して記載のあるURLを追加します。
  3. エントリー
    • PS4のイベントからエントリーをします。
    • 今回エントリー締め切りは大会開始の15分前(厳密には15分1秒前)。チェックイン開始前までです。
    • エントリー時にESLアカウントとPSNアカウントの連携(OAuth)を行います。
  4. チェックイン
    • 簡単に言うと当日受け付けといえば伝わるでしょうか。
    • 今回は大会開始前15分前から可能になってしました。
    • チェックインを行わないと大会に参加できません。登録はしていたけど出れなくなったというような人を弾く仕組みですね。
    • チェックインはPS4のイベント、またはESLプレイのウェブサイトから行えます。
    • PS4の場合チェックイン可能になるとお知らせが来ました。
  5. トーナメント表確認
    • チェックインしたユーザを対象としたトーナメント表を運営が作成してくれます。
    • トーナメント表が作成されると対戦相手が決まります。
    • そのタイミングでPS4にはお知らせが来て、相手のPSNアカウントと自分のPSNアカウントが記載された対戦カードとして確認できるようになりました。
  6. 対戦相手とフレンド登録
    • FIFAでは対戦方式としてフレンドと対戦を行う「オンラインフレンドリー」というメニューを使用する為、対戦相手とフレンドになる必要がありました。
    • 前述の対戦カードの欄から相手にフレンド申請を行うとスムーズでした。
    • 基本的にトラブルが起きた場合以外は運営の指示は待たずにユーザ同士で進行していくスタイルなので、トーナメント表が完成したらどんどん進めていいみたいです。
  7. 対戦
    • 大会ルールに基づいてロビーを作成し対戦します。
    • 相手の方がロビーを作成してくれたので設定方法などは後日確認します...
  8. 結果報告(承認)
    • 対戦結果のスクリーンショットを添付して結果の報告を行います。
    • 報告された方は結果を承認する必要があり、報告&承認セットで完了です。
    • 報告があっても承認されない場合はトーナメント表が進行しません。
    • どうしても承認されない場合や、連絡がつかない場合はDiscordで運営に連絡して対応を確認する必要があります。

上記の繰り返しによって進行していきます。
PS4を起動していればお知らせにバンバン通知が来るので非常にスムーズに進行できました。

Discodeについて

大会ウェブサイトに下記記載があります。

大会開催時にはESL JapanのDiscordサーバーに接続する必要があります。 Discordアプリはスマフォ、PC、ブラウザーで使用できます。 https://discordapp.com/ こちらのリンクからダウンロードできます。 ESL Japanサーバーはこちらから接続できます https://discord.gg/Z55b3Xh Discordで運営スタッフと連絡とれます

Discodeの左メニューの+から「サーバに参加」を選択して上記URLを入力すれば良いです。

今後に期待する部分

いくつかありますが多くは下記ページの日本語訳が用意されれば解決に向かうと考えています。

難しい話ではないので読めばある程度わかりましたが、英語表記に抵抗を覚える人も少なからずいると思うので日本語ページがあるとより良いと思います。

フォーオナーのページでは一部日本語化されていたので恐らく準備の予定が無いわけではないと思います。


初めてオンライン大会参加、初めてFIFAの大会参加、初めてESLの大会に参加と初めて尽くしでしたが非常に良いイベントだと感じました。運営の皆様、参加者の皆様ありがとうございました。

ESL Japan Cupは今後2週間おきに開催されますので該当タイトルを持っている方は是非参加してみてください。


FIFA 17 -PS4

FIFA 17 -PS4