{"height":"190","type":"rich","blog_url":"https://secondlife.hatenablog.jp/","blog_title":"2nd life (\u79fb\u8ee2\u3057\u307e\u3057\u305f)","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsecondlife.hatenablog.jp%2Fentry%2F20050822%2F1124641079\" title=\"Ruby\u306eObservable - 2nd life (\u79fb\u8ee2\u3057\u307e\u3057\u305f)\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","categories":[],"image_url":null,"author_name":"secondlife","title":"Ruby\u306eObservable","published":"2005-08-22 01:17:59","url":"https://secondlife.hatenablog.jp/entry/20050822/1124641079","description":"http://www.ruby-lang.org/ja/man/?cmd=view;name=ObservableActiveRecord\u306e\u30bd\u30fc\u30b9\u8aad\u3093\u3067\u3066\u3001Observer\u30d1\u30bf\u30fc\u30f3\u306e\u3068\u3053\u308d\u3067include Observable\u3068mix-in\u3057\u3066\u3066\u306a\u3093\u3058\u3083\u3053\u308a\u3083\u3063\u3066\u601d\u3063\u305f\u306e\u3067\u8abf\u3079\u305f\u3089\u3001\u6a19\u6e96\u6dfb\u4ed8\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3053\u3093\u306a\u3093\u3042\u3063\u305f\u306e\u306d\u30fc\u3002 \u3064\u30fc\u3053\u3068\u3067\u7d50\u57ce\u3055\u3093\u306eJava\u8a00\u8a9e\u3067\u5b66\u3076\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u5165\u9580\u306eObserver\u30d1\u30bf\u30fc\u30f3\u306e\u30b5\u30f3\u30d7\u30eb\u3092Observable\u3092\u4f7f\u3063\u3066\u5b9f\u88c5\u3057\u3066\u307f\u305f\u3002 #!/usr/bin/env ruby require 'observer' class RandomNumberGenerator\u2026","author_url":"https://blog.hatena.ne.jp/secondlife/","version":"1.0","provider_url":"https://hatena.blog","width":"100%","provider_name":"Hatena Blog"}