Archive of posts with tag 'Ruby'

GROWTH FPGA/高速ADCボード - 1 - 概要など

左がGROWTH実験用のFPGAボード。右がRaspberry Pi3。

Rubyのgnuplotで時系列データをプロット

RubyのGnuplot gemから、時系列データをプロットするときの例。基本的にgnuplotのコマンドラインでやっているように、 set timefmt '%Y-%m-%dT%H:%M:%SZ' set xdata time set format x "%H:%M" を、plotオブジェクトに対してコールしてあげればよい。Ruby + Gnuplotは、ネット上に全然サンプルが載っていないので、たまに大変なのですが、文字列処理やM2XのWeb APIと組み合わせて、簡単にプロットしたいときにはとても便利なのです。

HongoWikiを移設しました

新しいサーバへ移動しました 東京大学のサーバが不釣になって見られなくなっていたHongoWikiを、自前のサーバに移動して再開しました。新しいアドレスは以下のとおりです。そのうち、Googleの検索ランクも戻ってくると思います。あと、Mediawiki→Jekyllの変更にともない、コメント管理サービスDisqusを使ってコメント欄も付けているので、質問や改善のコメントがある人は気軽に書き込んでください。

RubyFitsでFITSファイルをCSVファイルとしてダンプする例題

RubyFitsでFITSファイルをCSVファイルとしてダンプする例題をgistにアップロードしました。

【RubyROOT】ヒストグラムをフィットする例

RubyROOTで1次元ヒストグラムのテキストデータを読みこんで、TH1D(Double型の1次元ヒストグラム)に変換し、一次関数+ガウシアンでフィットしてプロットする例を示します。RubyROOTのインストール方法は「RubyROOTをHomebrewでインストールする」を参照してください。

【Rubyで単位付き計算】X線fluxをluminosityに変換する例

Soki Sakuraiさんのruby-dimensionalを使うと、Rubyで単位付きの計算がとても綺麗にできます。

【Mechanize/Ruby】Amazonへのログイン

Amazonのウェブサービスの操作を自動化しています。RubyでMechanizeを使ってAmazonにログインしようとしたのですが、「Cookieを有効にしてください」の表示がでてしまってうまく行きませんでした。

【Selenium】Rubyでウェブページのスクリーンショット

最近Seleniumにハマっています。以下のようにするとスクリーンショットも撮影できてしまいます。

Ruby Fog::AWS::SimpleDBのサンプル

いまさらですがRubyのクラウドAPIであるFog経由でAmazonのSimpleDBを利用する練習として作ったスクリプトをgistにアップロードしておきました。ぼくは自分の写真のデータをバックアップしているAmazon Glacierとの連携や簡単なウェブサービスでの利用を想定していますが、他の誰かの何かの参考になれば。

SublimeText3 - SublimeCodeIntelの補完が効かない - TypeError: must be str, not bytes

SublimeText3のRubyモードでEclipseのContet Assistみたいに補完したい SublimeText 3でRubyスクリプトをコーディングするときに、コンテキストに応じた補完が効くと便利だと思って調べたら、SublimeCodeIntelというプラグインがデファクトスタンダードのようです。Package Controlから、 Shift + Command + P Installと入力 SublimeCodeIntelを選択 return としてインストールしました。 動かない問題 早速Rubyスクリプトを書いて、補完が効くかどうか試してみたのですが、コーディング途中に自動的に表示されるはずの補完候補が表示されませんでした。 SublimeCodeIntelのログは~/.codeintel/codeintel.logに記録されるということだったので、

[Selenium Ruby] Element is not currently interactable and may not be manipulatedのエラー

Seleniumでウェブブラウザの操作を自動化しています。社内システムや航空会社の予約システム等のウェブサービスの煩雑な操作のオートメーションに絶大な力を発揮するので感動しているのですが、webページの読み込みのタイミングによっては、たまに以下のような「Element is not currently interactable and may not be manipulated」エラーが出ることがあります。 gems/ selenium-webdriver-2.43.0/lib/selenium/webdriver/safari/bridge.rb:73: in `raw_execute': Element is not currently interactable and may not be manipulated (Selenium::WebDriver::Error::InvalidElementStateError) from gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:616:in `execute' from gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:415:in...

RubyROOTでDraw()したときに統計情報を表示しない

RubyROOTでヒストグラムをDraw()すると、.rootmacros内でgROOT->SetOptStat(0)していても効かずに、図の右上に統計情報が表示されることがあります。見栄えの問題でこの統計情報を消したい場合は、以下のようにしてください。

RubyROOTをHomebrewでインストールする

RubyからCern/ROOTが使える、めちゃくちゃ便利なRubyROOTというツールがあります。JAXAのHirokazu Odakaさんが開発・メンテしてくれています。

RubyからGnuplotを使ってグラフを描画・保存する例

Rubyでグラフをプロットする方法をいろいろ調べていますが、matplotlibやflot、protovis/d3.jsに匹敵するようなネイティブのプロッティングライブラリはないんですね。これまで何名かが挑戦しているようなので、これから参戦するのも大変そうです。

Rubyのヒアドキュメントでインデントを無視する

Rubyのヒアドキュメントは高機能(ruedapさん)という エントリで、Rubyのヒアドキュメントにおいて、終了ラベルのインデントを無視するオプションが紹介されていました(<<EOSではなく、<<-EOSのように、開始ラベルの先頭にマイナスを付ける)。知らなかった、、、。天体のデータ解析スクリプトをRubyでメタ的に生成する際にヒアドキュメントを多用する場面があるのですが、これが使えるとややソースコードが見やすくなりますね。 1 2 3 4 5 6 7 for i in 0...3 do puts <<-EOS ABC DEF GHI EOS end