Ruby

Ruby で Google Analytics から直近1時間のページビューランキングを取得する方法

サイトのアクセスランキングを作る方法はいろいろありますが、自前で HTTPサーバのログから計算するのは大変です。Google Analytics の API を使うとアクセス数が Ruby には Google Analytics API を操作できる Garb という便利なラッパーライブラリがありま…

Ubuntu の Redmine を 1.3.0 にアップグレードした

Redmine 1.2.0 から 1.3.0 アップデートするのに色々とハマったのでメモしておく。Redmine 1.3.x で必要となる Rails などの依存バージョンは以下の通りです。 Ruby 1.8.7 Rails 2.3.14 Rack 1.1.1 参照)Redmineのインストール — Redmine Guide 日本語訳 Ru…

AKB48 の Google+ アクティビティデータを MongoDB で MapReduce してみた

MapReduce について実際やってみたことがなかったので、MongoDB で試しそうと思っていました。 そんななか、AKB48 の(18歳以上?の)メンバーが Google+ を開始しました。これで「バルス」以上に定時でかつてない負荷が Google+ にかかり始めたと思われます…

Ruby で Windows Azure Storage テーブルを操作するには

Github にある johnnyhalife/waz-storage · GitHub ライブラリを使うと簡単に操作できます。Windows Azure Storage REST API のラッパーになってます。 Rubygems でインストール $ sudo gem install waz-storage Fetching: mime-types-1.17.2.gem (100%) Fet…

Rubygems で x64 環境の標準 MySQL に対して mysql ライブラリをインストールする

x64 環境だとオプションを指定しないと、mysqlclient が見つからず config で失敗する。 # gem install mysql -- --with-mysql-config=/usr/lib64/mysql/mysql_config Building native extensions. This could take a while... Successfully installed mysql…

手軽に QR コードの画像ファイルを生成できる Ruby ライブラリ rqr を試す

「ruby qrcode」でググると Y.Swetake さんの QRコードクラスライブラリ for Ruby - QRcode encode class library for Ruby が真っ先にヒットする。だが、単に PHP 版から移植したと説明されているのと beta 版ということもあって躊躇っていた。 RubyForge…

Ruby で PHP の base_convert() のような基数変換を簡単に実装してみる

基数変換は、ハッシュやキーなどの処理で必要になることがある。PHP では base_convert 関数があるので簡単だ。 Ruby にはないのかと思っていたら String, Integer クラスの to_i, to_s にはそれぞれ基数を引数に渡せることがわかった。よって、この二つを組…

lighttpd で Ruby の PStore によるセッション情報の書き込みがリダイレクトで中断されるみたい

require "cgi" require "cgi/session" require 'cgi/session/pstore' cgi = CGI.new user_id = cgi['loginid'] session = CGI::Session.new(cgi, { 'database_manager' => CGI::Session::PStore, }) session['userid'] = user_id session.close headers.stor…

ruby-fcgi (FastCGI library for Ruby) を C バージョンでインストールするには

Fast CGI Development Kit をインストール http://www.fastcgi.com の「API/Libraries」のThe Development Kit - C, C++, Perl, and Java, libraries as well as assorted documentation.の Current Download から fcgi.tar.gz をダウンロードする。普通にコ…

モバイルサイト用のヘッダ出力を Ruby で書いてみた

モバイルサイト用のヘッダ出力を Python で書いてみた - Tosshi Note モバイルサイトを3キャリアでほぼ共通化して作りたい - http://d.hatena.ne.jp/tilfin/20080530/1212376626 上記のエントリで DoCoMo, au, SoftBank 用のモバイルサイトを XHTML で作成…

Eclipse(Ganymede) に Dynamic Languages Toolkit をインストールする

Eclipse Foundation に Dynamic Languages Toolkit というスクリプト言語の IDE 環境のプロジェクトがある。 まとめて手に入れられるので便利そうなのでインストールしてみた。 Eclipse Dynamic Languages Toolkit (DLTK) Downloads - for Committers and Ea…

Ruby で CSS のカラー指定を RGB 値の配列に変換する

スタイルシートのカラー指定文字列を 3 要素の RGB 値の配列として取得する方法のメモ書き。逆変換のメソッドもあり。 css.rb # # Ruby CSS Color Module # module ColorUtil def get_rgb(value) if value =~ /^#?([a-fA-F0-9]+)$/ c = $1 if c.length == 3 …

Ruby net/http で Web サービスが動いているか確認する

Web サービスが停止していないかどうか確認するスクリプト。 open-uri を使うとタイムアウトが設定できないので、net/http で行う。 #!/usr/bin/env ruby require 'net/http' PROXY_ADDRESS = nil # プロキシサーバのアドレス PROXY_PORT = nil # プロキシサ…

Ruby CGI::Session で Cookie が発行されない

ログイン CGI でクッキーがクライアントに返らないので調べたら・・・ #!/usr/bin/env ruby18 require 'cgi/session' …(省略)… def create_session(cgi, timeout) begin # 既存のセッションは削除 session = CGI::Session.new(cgi, { 'new_session' => false…

Ruby/LDAP を使って LDAP からユーザーとその所属グループのリストを生成する

Ruby/LDAP を使う。Ruby/LDAP People からユーザとそのメイングループ番号を gidNumber から取得する。 各ユーザーのメイングループの cn を取得する。 グループを全て走査して、所属するユーザーにマップをグループに追加する。 「user:group1,group2」とい…

Ruby で PDF を出力する CGI

pdffile のパスにある PDF を読みつつ吐き出す CGI のサンプル #!/usr/bin/env ruby pdffile = "sample.pdf" print "Content-Type:application/pdf\r\n" print "Content-Length: #{File.size(pdffile)}\r\n" print "\r\n" open(pdffile, "rb") { |f| while b…

Ruby で Premature end of script headers

CGI を作っていて、Premature end of script headers が全然消えない。 print 'Content-Type:text/html\r\n\r\n' ってシングルクォートで囲うと、\r\nが特殊文字ではなくそのままに認識されるのでした。 print "Content-Type:text/html\r\n\r\n" でないとダ…

REXML と Libxml-Ruby とのエンティティ出力比較

REXML で大きな XML ファイルを処理したらあまりにも遅かった。Ruby で書かれているのでいたし方ないんですが。もちろん REXML は標準でついているし、手軽に使えて良いという大きなメリットがあるけど、行う処理が数時間レベルなので速くしたい。そこで Lib…

Ruby の REXML と RSS Maker で Amazon で売れてるオライリー本のフィードを簡単に作る

使用したライブラリ open-uri rexml/document rss/maker RSS Parser ※ We retire raa.ruby-lang.org という Amazon Web Service を簡単に使えるライブラリも存在するが、単にリストを取得するだけなので今回は見送った。 コード RSS 2.0 で出力する。RSS::Ma…

REXML

Ruby の XML ライブラリ REXML を試す。(REXML - Home) Rubyクックブック ―エキスパートのための応用レシピ集 を買ったが、REXML については書かれていない。オリジナルの Ruby Cookbook (Cookbooks (O'Reilly)) には REXML が一章使われて説明されている…

Ruby での Location Redirect の CGI サンプル

Ruby を使うことになったので色々調べて、メモ書き。引数 url にリダイレクトする CGI サンプル #!/usr/bin/env ruby # # Redirect Sample CGI # ###################### require "cgi" cgi = CGI.new redirect_url = cgi['url'] print cgi.header({ 'status…

redMine を試してみる

プロジェクト管理ツール redMine を試してみる。trac よりも高機能らしい。ガントチャートがデフォルトで使えるとのこと。 Mac にセットアップしてみた。 展開 http://rubyforge.org/projects/redmine/ から redmine-0.6.0.tar.gz をダウンロードしてくる。 …

Ruby on Rails をインストール

redMine を使ってみたかったので、Mac に Ruby on Rails を入れてみる。 Ruby ruby-1.8.6-p111 をダウンロード、インストール。 $ bunzip2 -c ruby-1.8.6-p111.tar.bz2 | tar xvf - $ cd ruby-1.8.6-p111 $ ./configure --enable-install-doc $ make $ sudo …