2008-01-01から1年間の記事一覧

Aptana+RadRailsで「チーム」→「共有」を使ってsvnリポジトリにプロジェクトをチェックインできない

いまだに治らないAptanaのバグ(だと思う)。亀さんを使えばおk1. Aptanaをしめる 2. プロジェクトのディレクトリを丸ごとコピーして念のためバックアップする 3. TortoiseSVNを使ってcheckin 4. Aptanaのworkspaceとして使っている場所からプロジェクトのデ…

好きなキーボード

3年ぐらい前からキーボードには結構こだわりがあります。 Realforce91(PS/2)NE0100 「いいキーボード」を語ろうとするとまず間違いなく話題に出るだろう、東プレのRealForceシリーズ。自宅でテンキーレス, Winキーとアプリケーションキーがついているモデ…

will_paginate

Rails.2.0.2でwill_paginateを使うときにハマったので。 require "will_paginate"はconfig/environment.rbの一番ケツに書く。 それだけ。 Rails::Initializer.runより前に書くと各種定数がundefinedなのでwill_paginateのenableが走らない。ちなみにAptana R…

pとかputsとかによるデバッグだとRadRailsのコンソールで文字化ける@Rails

※開発環境はWindowsXP+RadRails, Rails自体は2.0アクションの処理をデバッグするときとか、pとかputsとかでRadRailsのConsoleビューに表示させてるんですが、今日どうやらConsoleビューに日本語を出すと文字化けするという現象を確認しました。http://leno-i…

Controllerの外でsessionは使えないらしい

Ruby on Railsの話。 まんま。controllerの外でsessionに関係する実装を隠蔽するクラスをlib/session_manager.rbとかして作ってみたんだけどcontrollerの外ではsessionが使えない様子。controllerの中にclassを作ってもダメ。Javaでいうところのstaticインナ…

OpenSSL パッケージの脆弱性とその影響について (SSH鍵、SSL証明書等)

http://www.debian.or.jp/blog/openssl_package_and_its_vulnerability.htmlちょっと前のニュースですが。 Debian系OSだと影響を受けるで、バッチ処理で鍵を使ってリモートホストにファイル転送などをする処理を作っている人は鍵を差し替えた方がいいかもし…

Problem 16 (written in Ruby)

tomotaka-mbp:~ tomotaka$ irb >> (2**1000).to_s.scan(/./).map{|s|s.to_i}.inject(0){|r,s| r+=s} => 1366ワンライナー楽しす。Problem: http://odz.sakura.ne.jp/projecteuler/index.php?Problem%2016

Problem 15 (written in Ruby)

(21..40).to_a.inject(1){|r,s| r*=s } / (1..20).to_a.inject(1){|r,s| r*=s }Problem: http://odz.sakura.ne.jp/projecteuler/index.php?Problem%2015単純に40C20だった。brute-forceバージョン笑↓ X_MAX = 20 Y_MAX = 20$count = 0def search(x, y) if x …

Ubuntu 8.04が出ていた

Ubuntuのversion 8.04が出ていました。 備忘録も兼ねてメモ。日本語版ローカライズド(Desktop) Download http://www.ubuntulinux.jp/products/JA-Localized/downloadUbuntu Server 8.04 Download http://www.ubuntu.com/getubuntu/downloadさくらインターネ…

Problem 191 (written in Ruby) (途中経過?)

注: 未完です status = ""$count = 0$reject_pat1 = /AAA\z/ $reject_pat2 = /L.*L/def a_day(current_status, day, max) #print "Day=#{day} STATUS=#{current_status}" if $reject_pat2 =~ current_status || $reject_pat1 =~ current_status then #puts "…

Problem 193 (途中経過)

今アップされている一番番号のデカい問題にふと挑戦してみた。問題はこちら http://projecteuler.net/index.php?section=problems&id=193ガチの力ずく探索だとアホほど時間がかかるのでエラトステネスのふるい的なものを一定のセグメントごとに作るような実…

Problem 11 (written in Ruby)

頭の中で整理しきれなかったので冗長に記述してしまっている。 table = 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 1…

Problem 10 (written in Ruby)

def prime?(n) return false if n % 2 == 0 lim = Math.sqrt(n).to_i 3.step(lim, 2) do |i| return false if n % i == 0 end return true endtotal = 0 1.upto(2000000) do |n| total += n if prime?(n) endp totalProblem: http://odz.sakura.ne.jp/projec…

Problem 9 (written in Ruby)

馬鹿正直に3重ループでやるとめちゃくちゃ時間がかかる。 ちなみにこれを実行するとa,bが入れ替わった2パターンが出力される。 問題文には"唯一の組み合わせ"とあったので焦った。 (1..1000).each do |a| (1..1000).each do |b| if (1000-a-b)*(1000-a-b) ==…

Problem 8 (written in Ruby)

n = 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 6689664895044524452316173185640…

Problem 7 (written in Ruby)

def prime?(n) return false if n % 2 == 0 lim = Math.sqrt(n).to_i 3.step(lim, 2) do |i| return false if n % i == 0 end return true endprime_numbers = [] i = 2 while prime_numbers.size prime_numbers i += 1 endp prime_numbers.lastProblem: htt…

Problem 6 (written in Ruby)

sigma = (1..100).to_a.inject(0){|r,n|r+=n} puts sigma ** 2 - (1..100).to_a.map{|n|n*n}.inject(0){|r,n|r+=n} Problem: http://odz.sakura.ne.jp/projecteuler/index.php?Problem%206

Problem 5 (written in Ruby)

numbers = (1..20).to_a numbers.delete(1) optimized_numbers = [] numbers.each do |n| bigger = false (n..numbers[-1]).each do |m| if m % n == 0 && n bigger = true break end end optimized_numbers endoptimized_numbers = optimized_numbers.sort.…

Problem 4 (written in Ruby)

max, fa, fb = 0, 0, 0 (100..999).each do |a| (100..999).each do |b| s = (a*b).to_s if s[0..s.length/2] == s[s.length/2..-1].reverse then max = a*b if max fa, fb = a, b end end endputs "#{max} = #{fa} * #{fb}"Problem: http://odz.sakura.ne.j…

Problem 3 (written in Ruby)

# 2で割り切れないことは自明である n = 600851475143 factors = [] i = 0 while true do devided = false 3.step(n, 2) do |i| if n % i == 0 then factors n = n / i devided = true break end end break if not devided endfactors.each{|n|puts n}Proble…

Problem 2 (written in Ruby)

def fib i = 1 p = 0 n = 0 while true do i += 1 n = i + p p = n yield p end endtotal = 0 fib do |n| total += n if n % 2 == 0 if 4000000 total -= n break end endputs totalProblem: http://odz.sakura.ne.jp/projecteuler/index.php?Problem%202

Problem 1 (written in Ruby)

(1..1000).select{|n| n % 3 == 0 || n % 5 == 0}.inject(0){|r,i|r+i}Problem: http://odz.sakura.ne.jp/projecteuler/index.php?Problem%201

Project Euler

Project Eulerが面白いのでしばらくこれをネタにプログラムを晒していこうと思います。 間違っているかもしれないので間違いを見つけたら適当に教えて頂ければ幸いです。 息抜きに楽しくやりたいので, 楽しくかけるRubyで当面は書いていきます。高速化のため…

Problem 14 (written in Ruby)

こちらも計算量がかなり多い様子。 2.18GHz Core Duoで2分ほど。 def create_pattern(n) ret = [] while n != 1 do ret if n & 0x01 == 1 then n = 3*n+1 else n = n / 2 end end ret return ret endlongest_n = 0 longest = 0 (1...999999).each do |n| pat…

Problem 13 (written in Ruby)

numbers = 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74324986199524741059474233309513058123726617309629 91942213363574161572522430563301811072406154908250 2306758820753934617117198…

Problem 12 (written in Ruby)

こいつは手強かった。 普通にやると計算爆発を起こして数十分単位の時間が必要になります。 三角数の数学的な性質を使うと1分以内に解けるようになりました。 def factors(n) ret = [] 1.upto(n) do |i| ret end return ret endtn = 0 i = 0 prev = [1,2] wh…

はじめまして

学生だったり、プログラマーだったりする者です。 自分が忘れそうなことを書いていきます。