たくろぐ!

世界一のチラ裏

Vagrantfile

中身

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "ubuntu/xenial64"

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine and only allow access
  # via 127.0.0.1 to disable public access
  config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" # Rubyの環境のときのPort
  config.vm.network "forwarded_port", guest: 8000, host: 9080, host_ip: "127.0.0.1" # Pythonの環境のときのPort

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"
  config.vm.synced_folder "./tmp", "/home/vagrant/tmp"
  config.vm.synced_folder "./project", "/home/vagrant/project"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Enable provisioning with a shell script. Additional provisioners such as
  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

rails6.0.0でrails serverが立ち上がるまで

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  # config.vm.box = "base"
  config.vm.box = "bento/ubuntu-18.04"

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine and only allow access
  # via 127.0.0.1 to disable public access
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.100"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Enable provisioning with a shell script. Additional provisioners such as
  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
  # documentation for more information about their specific syntax and use.

  config.vm.provision "export env",
    type: "shell",
    run: "always",
    privileged: true,
    inline: <<-SHELL
      echo "# vagrant script for every boot" > /etc/profile.d/vagrant.sh
      echo export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn >> /etc/profile.d/vagrant.sh
      echo export DEBIAN_FRONTEND=noninteractive >> /etc/profile.d/vagrant.sh
      # echo export CLIENT_SECRET=#{ENV['CLIENT_SECRET']} >> /etc/profile.d/vagrant.sh
      # echo export CLIENT_ID=#{ENV['CLIENT_ID']} >> /etc/profile.d/vagrant.sh
      chmod +x /etc/profile.d/vagrant.sh
    SHELL

  config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  apt-get update
  apt-get -y install git curl g++ make
  apt-get -y install zlib1g-dev libssl-dev libreadline-dev
  apt-get -y install libyaml-dev libxml2-dev libxslt-dev
  apt-get -y install sqlite3 libsqlite3-dev nodejs
  # for webpacker
  curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
  echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
  # echo export DEBIAN_FRONTEND=noninteractive
  apt-get -y install --no-install-recommends yarn
  SHELL

  #  config.vm.provision "ansible" do |ansible|
  #  ansible.playbook = "playbook.yml"
#  end
end

シュタインズゲートを観た(遅ればせながら)

シュタゲ(アニメ)観た

2011年の1期をリアルタイムで観ていて5話くらいでツマンネって勝手に自分で打ち切りしたら実は後半むっちゃおもしろくなって後世に残る(大げさ?)大作アニメとなったのがこのシュタインズゲートということだ(ワイ調べ)。

当時ダルの2ちゃん用語に死語感を感じていたんだが、原作がゲームだから仕方ないよねっていう発想があればそのままだらだら観ていたかもしれない。

はたまたハルヒのようないわゆるセカイ系よりかはらき☆すたのような日常系(例が悪くてスマン)が好きで、日常系かぶれ感がして嫌気がさしたからかもしれない。

いづれにしてもあのときの選択は間違いだったようだ。

1期(2011)と映画(2013)、そしてゼロ(2期・2018)を観てとてもおもしろいアニメだと思ったので真面目に感想を述べてみたい。

あらすじ(というネタバレ)

1期の内容はこうだ。

タイムマシン理論を提唱した中鉢教授の記者会見を観に、ラジオ会館に足を運んだ主人公岡部倫太郎が教授の話を割って入ったときに、有識者として業界では有名な牧瀬紅莉栖(まきせくりす)からつい先ほど会ったかのようなことを言われる。

その直後、紅莉栖が血を流して倒れているところを目撃、ダル(橋田至)にメールを送ったところでめまいがして気がつくとラジオ会館を出ている。

ちょうどそのときラジオ会館の上階に突如と巨大な未確認物体が現れる。

調べていくうちに岡部とダルが発明した電話レンジ(仮)を通してメールを送ることで過去の事実を変えることができることを発見する。

それを使って漆原るか(るかこ)は男から女に、

桐生萌郁(もえか、シャイニングフィンガー)は携帯電話を機種変しなかったことに、

フェイリス(秋葉留未穂)は死んだお父さんを生き返らせることになった。

しかし事実を変えることは予期せぬ結果を招くことに繋がることに後から気がつく。

つまり岡部の幼馴染、椎名まゆり(まゆしぃ)が死んでしまうことに収束する(結果が定まっている)世界だとわかる。

その結末を避けるために再度元に戻すことに・・・

しかしそれはつまり紅莉栖が死んでしまう世界に戻すことになるということに土壇場で気がつくが、紅莉栖の説得で紅莉栖のいない世界を生きることを決める。

世界変動は大きな世の中のうねりの年に起きやすく、ここで並行世界が分岐していく。

その分岐点が牧野紅莉栖の死ということだ。

なぜ紅莉栖の死が分岐点となるかというと紅莉栖が死ぬことでタイムマシン理論が紅莉栖の父親である中鉢教授の手に渡り、ロシアに亡命することでアメリカとのタイムマシン開発競争に世界が巻き込まれて第三次世界大戦が引き起こされるという結末になるから(β世界線)。

一方でまゆりが死んでしまう世界でも岡部とダルがタイムマシン(タイムリープ装置)を開発していることがアメリカの諜報機関のような研究所(SERN)にばれて命を狙われ、その後この世界では岡部たちとつながりのない紅莉栖がSERNでタイムマシンを完成させて世界は全てSERNの管理下に置かれるディストピアの世界となる(α世界線)。

2期は紅莉栖のいないβ世界線から始まる。

2036年の世界戦争中にダルの娘である阿万音鈴羽(すずは)が未来の岡部とダルが作ったタイムマシンに乗ってやってきて、この世界も絶望が待っていることを知る。

そこでαでもβでもない、誰も死ぬこともなく戦争も起こらないSG(シュタインズゲート世界線を目指すことにする。

しかし鈴羽の決死のタイムリープも叶わず、計画は失敗。

2036年の岡部は2010年当時の記憶を強制的に脳内に送り込むことで意識を取り戻し、3,000回ものタイプリープを繰り返して2010年まで戻る。

そこから鈴羽のタイムマシンでまゆりが自分しかできないことをやりに鈴羽と過去にタイムリープすることに。

紅莉栖を救おうとしても収束する世界は変えられない。

絶望する岡部を前に誰も何も言えなくなりβ世界線を生きることになっていたが、まゆりが岡部を鼓舞するために平手打ちをする。

それに目が覚めた岡部が諦めずに紅莉栖を救うことができた結果、SG世界線へと到達する。

パラレルワールド?いいえ、タイムリープです。

1期でよく出るメール送信は大雑把に言えば世界線を変えることと似ている。

大局的に見ればα世界線ではあるのだが、未来が少しずつ変わっていることを考えるとパラレルワールドを移動しているということになる。

時間軸は変わらず、空間が変わるイメージでいい。

一方でタイムリープマシンは時間の移動(主に過去に遡る)に使われている。

パラレルワールドは個人的にはおもしろい発想だったが、もはやタイムリープが出てきた時点でオワコンが過ぎると思ってしまった。

事実、2期ではメール送信は1度しか使われない(結構大事なメールではあるけど)。

まとめ

全て見てみて少し理解が浅くて戸惑う部分もあったが、過去の点と点が一本の線となったときなるほどと知的好奇心がくすぐられた。

とは言え伏線回収がどうのとかそれほど難しい話でもないのでSF(サイエンス・フィクション)が好きな人でなくても楽しめると思った。

岡部の声優であるまもるんは自分のキャラが出せなくて辛かっただろうなとメタ思考になっていたのは反省したいところだが、最終的にはみてよかったと思える作品だった。

ドクぺおいしいよね。

おわおわり。

参考

www.arupakano.com

www.arupakano.com

興味ある

CHAOS; HEADって1期と同時期くらいにアニメ化してた?

シリアルエクスペリメンツレインもいいし、クロスチャンネルも友達が絶賛していたから見たいぞオ〜

www.arupakano.com