South Ryukyu Islands の謎

投稿日: 2 Comments

twitterを眺めていたらこんな記事を見つけた。

2.2.7Rにあって、3.x-stableでなくなっているということは、自分がFreeBSDを使い始めた2.2.8Rにもあったのかなぁ。全然気づかなかった。

ちなみにこのページが動いているサーバもFreeBSD。またFreeBSD使ってみたくなってきた。

暑い…

投稿日: Leave a comment

夏至だからというわけじゃないだろうけど今日は暑かった。

会社の実験室は節電対策でエアコンOFF、照明OFF、ブラインドOPEN。
ブラインドOPENなので日差しが暑い上にエアコンOFFなのでかなり暑い。

今日は神奈川県で節電チャレンジなるものをやっていて、会社もやるぞーっという感じなので、何とか我慢できたけど、普段なら諦めてエアコン付けてたかも。

よく見たら、結果(PDF)が出ていた。前年同日13%減だったらしい。前年同日の気温が28°C、今年が31°C。3度アップで13%減は大したものか。

Pentax MX

投稿日: Leave a comment

ずっと書こうと思っていたけど、いつの間にか忘れてて、さっき思い出したので忘れないうちに書いておく。

いつだったか、今年に入ってすぐくらいかな、義父から古いカメラを2台頂いた。Asahi PentaxのSPとMX。どちらもマニュアル一眼レフ。最近はいろいろと写真は撮るので遠慮なくいただいたけど、モルトがボロボロだったり、レンズがかびていたりとどちらも実用に耐えない状態。

で、2台とも修理しても扱いきれないと思って、年代的に新しいMXの方だけを整備に出すことに。

そしてそのときの様子 → その1その2 (たぶん)

あれから、ネガ2本くらい撮ったけど、思ったよりきれいに撮れてて感動した。

梅雨が明けたらまた子供と散歩がてら写真撮ろうかな。

rubyでxlsにコピペ

投稿日: Leave a comment

とある理由でCSVからエクセルにデータを貼り付けるのに、CSVファイルがたくさんあって面倒なので、RubyでCSVをひらいてカンマ区切りの処理をして、win32oleで開いたエクセルのセルに1個ずつ貼りつけたところ、泣きそうなくらい遅くて悲しかったので、もっといい方法が無いか少し調べてみた。で、ここに辿りついて参考にさせていただいた。

結論的には、クリップボード経由で一括貼付けするのが超高速。
↓使ったコード。100×100=10000セルに値を貼り付けるだけ。

require 'win32ole'
require 'win32/clipboard'
# include Win32 # なくても動く?

require 'benchmark'

def getAbsolutePath filename
  fso = WIN32OLE.new('Scripting.FileSystemObject')
  return fso.GetAbsolutePathName(filename)
end
filename = getAbsolutePath("test.xls")

xl = WIN32OLE.new('Excel.Application')

book = xl.Workbooks.Open(filename)
xl.Visible = true

x=[]
1.upto(100) {|r|
  x[r-1] = []
  1.upto(100) {|c|
    x[r-1] << r*c
  }
}

begin

  book.Worksheets("sheet1").select
  puts Benchmark::CAPTION
  puts Benchmark.measure{
    Win32::Clipboard.set_data((x.map{|a| a.join("\t")}.join("\r\n")))
    book.Worksheets("sheet1").paste('Destination' => book.Worksheets("sheet1").Range("A1"))
    Win32::Clipboard.empty
  }

  book.Worksheets("sheet2").select
  puts Benchmark::CAPTION
  puts Benchmark.measure{
    1.upto(100) {|r|
      1.upto(100) {|c|
        book.Worksheets("sheet2").Cells(r,c).Value = x[r-1][c-1]
      }
    }
  }

ensure
  book.Save
  book.Close
  xl.Quit
end

これを実行した結果が↓。

C:\work\hoge\win32ole_xls>ruby test_xls.rb
 user     system      total        real
 0.000000   0.000000   0.000000 (  0.053707)
 user     system      total        real
 2.969000   1.906000   4.875000 ( 36.125617)

はじめはクリップボード経由、次はセル一つ一つコピー。realのところの秒数が体感速度と思うけど、クリップボード経由はほんの一瞬。セル一つ一つは30秒くらい。クリップボード経由のほうがはるかに速い。

ExcelのAPIを呼ぶ毎のオーバーヘッドがすごいのだろうか。

余談
win32/clipboardを使えるようにしたときのメモ。こちらもかなり簡単。VC++の環境設定がされたコマンドプロンプトで↓を実行するだけ。

> gem install win32-clipboard

 

Re: ぽぽぽぽーん

投稿日: Leave a comment

ここのぽぽぽぽーんにちょっと反応。

先週、幼稚園の行事(イベント)で生ぽぽぽぽーんを聞いてきました。野々歩さん

野々歩さんの事を知ったのが1年半ほど前にみたミュージカルのとき。ミュージカル中にDMMのCMの歌を歌っているとちらっと言っていてちょっと気になっていたけど、ぽぽぽぽーんの歌を歌っているのはその幼稚園のイベントの案内を聞いて初めて知った。

どうやら、幼稚園の行事(イベント)で登場したロバの音楽座の人は野々歩さんのお父さんらしい。ライブの時はそんなことひとことも言ってなかったけど。