{"provider_url":"https://hatena.blog","type":"rich","provider_name":"Hatena Blog","height":"190","author_url":"https://blog.hatena.ne.jp/mtbr/","blog_url":"https://mtbr.hatenadiary.org/","title":" Ruby \u3067\u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1 ","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fmtbr.hatenadiary.org%2Fentry%2F20060112%2FrubyhowtoRuby\" title=\" Ruby \u3067\u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1  - mtbr\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","url":"https://mtbr.hatenadiary.org/entry/20060112/rubyhowtoRuby","categories":["ruby","howto"],"width":"100%","author_name":"mtbr","published":"2006-01-12 00:00:00","blog_title":"mtbr\u306e\u65e5\u8a18","version":"1.0","description":"#! /usr/bin/ruby # 2\u5bfe\u306e\u30d1\u30a4\u30d7\u3092\u7528\u610f pin, cout = IO.pipe cin, pout = IO.pipe Process.fork { # \u3053\u306e\u4e2d\u306f\u5b50\u30d7\u30ed\u30bb\u30b9 STDIN .reopen cin STDOUT.reopen cout pout.close_write pin.close_read exec \"bc\" # \u5b50\u30d7\u30ed\u30bb\u30b9\u306f\u3053\u306e\u3042\u3068 bc \u306b\u306a\u308b } # \u3053\u306e\u5f8c\u306f\u89aa\u30d7\u30ed\u30bb\u30b9 cin.close_read cout.close_write STDIN.each { |line| # \u6a19\u6e96\u5165\u529b\u304b\u30891\u884c\u8aad\u307f\u53d6\u308a pout.puts line # \u305d\u308c\u3092\u89aa\u30d7\u30ed\u30bb\u2026","image_url":null}