Ruby

IO.popenで遊ぶ

IO.popenでRのインタプリタを開いてRubyからRを操作出来ないかなーと思ってちょっと弄ってみました。 ちなみに遊びとかではなくて普通にRubyからRを使いたい場合はRSRubyというライブラリがちゃんとあるのでそちらでどうぞ。 で、とりあえず適当に書いてみた…

gem install twitterする際の注意点

ただの個人的な覚え書き。 sourceでgithubを指定しないとちゃんと入らない。 ソースはこの辺。 coreserverにruby twitter gemをインストールした時のメモ - blog@longkey1.net

RubyGemがアップデートできない罠のつづき

先日の、MacPortsでRubyGemsがアップデートできない罠にはまっている - negatonの日記という感じのやつの続き。 まだMacPortsでRubyGemsでアップデートできないのは解決できてないのですが、とりあえずgem自身でのアップデートが出来たのでメモっておく。gem…

MacPortsでRubyGemsがアップデートできない罠にはまっている

GoogleAppEngineでJRuby on Railsを使って遊んでみたくて、とりあえずローカル環境用に sudo jruby -S gem install rails としてみたところ、今の環境ではgem1.2.0しか入っていなかったため1.3以降を要求された。 仕方ないのでgemを更新しようと試みたら % s…

Problem 10

10以下の素数の和は2 + 3 + 5 + 7 = 17である. 200万以下の全ての素数の和を計算しなさい. Problem 10 - PukiWiki Ruby def get_primes(n) a = (2..n).to_a ret = [] begin b = a.shift ret << b a = a.reject{|i| i%b == 0 } end while b*b < n return ret+…

Problem 8

以下の1000桁の数字から5つの連続する数字を取り出してその積を計算する。そのような積の中で最大のものの値はいくらか73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501…

Problem 7

素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり、6番目の素数は 13 である。10001 番目の素数を求めよ。 Problem 7 - PukiWiki Ruby def prime?(n) (2..Math.sqrt(n)).each do |i| return FALSE if n%i == 0 end return TRUE end c = 0 k = 1 whi…

Problem 6

最初の10個の自然数について、その和の二乗と、二乗数の和は以下の通り。 1² + 2² + ... + 10² = 385 (1 + 2 + ... + 10)² = 3025これらの数の差は 3025 - 385 = 2640 となる。同様にして、最初の100個の自然数について和の二乗と二乗の和の差を求めよ。 Pro…

Problem 5

2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり、そのような数字の中では最小の値である。では、1 から 20 までの整数全てで割り切れる数字の中で最小の値はいくらになるか。 Problem 5 - PukiWiki 数学的素養が大変残念な感じなので最小公倍…

Problem 4

左右どちらから読んでも同じ値になる数を回文数という。 2桁の数の積で表される回文数のうち、最大のものは 9009 = 91 × 99 である。では、3桁の数の積で表される回文数のうち最大のものはいくらになるか。 Problem 4 - PukiWiki まぁあれです、正直に言うと…

Problem 3

13195 の素因数は 5、7、13、29 である。600851475143 の素因数のうち最大のものを求めよ。 Problem 3 - PukiWiki Ruby a = 600851475143 x = [] while a != 1 do for i in 2..a do if a%i == 0 then x << i a = a/i break end end end puts x.max 何も考え…

Problem 2

フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。 Problem 2 - PukiWiki 問題の意味を理解す…

Problem 1

10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、これらの合計は 23 になる。同じようにして、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。 Problem 1 - PukiWiki awk版 今回だけawkで変数使うとどう…

TwitterAPIを使ってみている2

投稿してみる こんな感じ? require 'net/http' require 'uri' require 'rexml/document' Net::HTTP.version_1_2 Net::HTTP.start("twitter.com") do |http| req = Net::HTTP.Post.new "/statuses/update.xml" req.basic_auth("id", "pass") req.body = "sta…

TwitterAPIを使ってみている

こちらの翻訳を参考にしてます。 http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html まずはPublicTimelineの取得 こんな感じ? require 'kconv' require 'net/http' require 'rexml/document' addr = 'twitter.com' Net::HTTP.start(addr) do |ht…

RubyKaigi2007の感想(2日目)

流石にこんな遅れて感想書く人もいないよなーとか思いつつもとりあえず書いてみる。 まさか私用やら風邪やらでこんなに遅れるとは自分でも思ってなかった…。2日目は諸事情で午後から参加。 セッション3:GUI Frameworks Ruby/Tk, Ruby-GNOME2, VisualuRuby, …

RubyKaigi2007の感想(1日目)

とりあえずゼミの発表を切り抜けた! と言う訳で、ちょっと時間が空いちゃったけどメモを見ながら感想などをつらつらと… セッション1:Rubyコア Ruby1.9は12月に出るとか。RHGも読んだ事ない俺には中で何が起こっているのかさっぱりですが、とにかく便利な方…

リーク…じゃなかった

WWW::Mechanizeを使いまわしながら色んなサイトを見に行くとhistoryが全部たまっていくらしい。 とりあえず明示的に agent = WWW::Mechanize.new agent.max_history = 1 とかしてみたらメモリ使いまくる事はなくなったみたい。 max_historyがデフォルト値だ…

メモリリークしまくる

rubyで作ったプログラムを動かしてるとじわじわとメモリ消費が増えて死ぬ… うまくGCされてないって事なんだろうけど、どこをどう直したら良いのか分からなーい。 そもそも何が漏れているのかさえ掴めない状況。 デバッガとかで分かるのかなぁ?

配列のある要素を2つの要素で置き換えたい

あまりいい例が思いつかないんだけど、例えばこんなのとか。 a.collect! do |i| if i.match("http://d.hatena.ne.jp/negaton/") then [i+"20070419/", i+"20070416/"] else i end a.flatten! もうちょっといい書き方がある気がするんだけど…。 each_indexで…

初歩のミス

C++で言うところの int a[5] = {1,2,3,4,5}; for(int i = 0; i < 5; ++i) { a[i]++; } 的な事をやろうとして暫く詰まってた。 Rubyでは a = [1,2,3,4,5] a.each {|i| i = i+1 } じゃなくて、 a = [1,2,3,4,5] a.collect! {|i| i + 1 } collect!使うのね。な…

更に問題が…

coLinuxのdebianでgemが動かない。 gem install 〜〜 Bulk updating Gem source index for: http://gems.rubyforge.org で止まる。というか、その後暫くするとshellを巻き込んで落ちる。 何かトラブル続きでいい加減萎えそうだ…。

WWW::Mechanizeが動かない

coLinuxのdebianにWWW::Mechanizeを入れたんですが、いざ使おうとすると何かエラー吐いて動きません…orz /opt/rubygems/gems/mechanize-0.6.7/lib/mechanize/net-overrides/net/https.rb:108:in `remove_method': method `use_ssl?' not defined in Net::HTT…

Rubyのレシピ本買ってきました

昨日、Rubyレシピブック 第2版を買ってきました。Rubyレシピブック 第2版 268の技作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ出版社/メーカー: ソフトバンク クリエイティブ発売日: 2007/02/01メディア: 単行本購入: 9人 クリック: 182回この商品を…

coLinux導入 Ruby編

前回からかなり間が空きましたが、ようやくRuby編書きます。 かなり今更感漂ってるんですがねー。自分用メモって感じなので、後の自分のためにも…。 まずRubyは # sudo aptitude install ruby irb rdoc ri って感じで関連するものを一気に入れます。 次にRub…