LoginSignup
11
12

More than 5 years have passed since last update.

【小ネタ】ランス・アンド・マスクスの第3話にRubyのコードが載ってた

Last updated at Posted at 2015-10-19

概要

 名前の通りです。私はこの作品は観ていないですが、とあるフォロワーさんから、ランス・アンド・マスクスの第3話になぜかRubyのコードが載っているとのことで適当に分析しました。なお、以下の記述に登場するキャプチャ画像およびそれをクロップしたものの著作権をここに示します。

  Copyright© 1995-2015, Tokyo Broadcasting System Television, Inc. All Rights Reserved.

問題の画像(元がデカすぎるのて縮小掛けてます)

1.png

3.png

読めない(でもなんとか読んだ)

上記含めた数枚から再構築したコードはこんな感じです。

test.rb
def here?(uri)
  (current_server.uri rescue nil) == uri
end
module_function :here?

def config
  current_server.config
rescue
  DRbServer.make_config
end
module_function :config

def front
  current_server.front
end
if RUBY_VERSION >= '1.8'
    require 'drb/invokemethod'
    class InvokeMethod
      include InvokeMethod18Mixin
  end
  else
    require 'drb/invokemethod16'
    class InvokeMethod
      include InvokeMethod16Mixin
    end

    def main_loop
      Thread_ata

Rubyとか意味が分からないんですがそれは……

 と考えるランス・アンド・マスクスのファンの方々がいるかもしれないので補足を。
 Rubyまつもとゆきひろさんが開発したプログラミング言語で、動的言語のとっつきやすさとオブジェクト指向言語の便利さを併せ持っています。
 で、上記コードの「DRbServer」は、dRubyという分散オブジェクトプログラミング用のライブラリに使用するオブジェクトの型の1つです。……分かりやすく書けば、ネットワーク越しにメソッド(プログラム)を複数実行できるので複数台のPCで計算処理などを行えます
 「蒼き鋼のアルペジオのように、どこかからのソースを拝借しているんだろうな……」と思ってググッたところ、とりあえず「def here?(uri)~:config」までは定番コードでした。まあ、drb.rbというファイル名からして、Ruby一式に含まれるライブラリのソースそのままって感じですね。
  distributed Ruby --- dRuby 2.0.4
 また、「if RUBY_VERSION」以降も、見ての通りバージョン違いを処理するための定型文で、同じソースに含まれています。
 これから分かることは、スタッフ内にRubyistがいる可能性が高そうということですね。小難しくするだけならC++で十分ですし(暴言)。ちなみに右下でtopの実行結果らしきものが表示されていますので、OSはLinuxかその派生版である可能性が高いです。
CRr25glU8AAa-Z7.png orig - コピー.png
 あらすじによるとこの世界は二十一世紀だそうですからLinuxやRubyが出てきてもおかしくはありませんが、「マスク? サブネットマスクかな?」とか親の前にまず子を殺せ!とかネタにされる可能性も出てきたかもしれません。今後が楽しみですね。

11
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12