ruby

win32ole with ADO 経由でプライマリキーの取り方が分からん

field 名とカラムタイプの取り方は分かったんだけど、プライマリキーの取得方法が謎・・・ primary = connection.OpenSchema(28 , ["pubs", "dbo", table_name]) 配列の引数の pubs と dbo を何か設定すれば良さそうだけど不明。 require 'win32ole' module …

ActiveRecord っぽくしてみた

require 'active_axs' ActiveAXS::Base.establish_connection( :source => "test.mdb" ) class User < ActiveAXS::Base ; end class Job < ActiveAXS::Base ; end puts User.find_first(:id => 1)[:name] puts Job.find_first(:id => 1)[:name] なかなか良い…

ActiveAXS

仕方がない(?)ので試しに win32ole 版のデータソースまたは mdb ファイルからデータを検索する ActiveAXS を作ってみた。 ActiveRecord の define_attr_method と、るびまに載っていたソースを参考に以前から作ってたものを流用してやっつけ仕事をしてみた。…

ActiveRecord から ODBC 接続

mdbtools がうまくいかないけど、ActiveRecord の ODBC Adapter を見つけたのでこれはいけると思い activerecord-odbc-adapter (2.0) odbc-rails (1.5)2 つを gem からインストールしてもうまくいかなくて、 For accessing ODBC data sources from the Ruby …

activemdb が動作しない

linux からでも Microsoft の mdb (Access) を操作できるライブラリ(検索に限る)。これを動かすには mdbtools が必要。最初はソースを持ってきて make したもののエラーがでるので困ってたが sudo apt-get install mdbtoolsで OK だった。続けて gem からイ…

HTML 解析

UI 変更があって以来 API 経由だと Twitter のリアルタイム性が失われてしまったので、以前ちょこっと作っていた Twitter にログインしてホームの HTML を解析して json を起こすプログラムを手直ししてみた。 久々に触ったら hpricot の API がさっぱりにな…

Excel 操作

たいしたプログラムではないのだけど、個人的なファイル生成と解析に役立ったのでのっけときます。 使い方 begin # Excel オブジェクトを生成 excel = EXCEL::Excel.new() # Sheet1 を取得 sheet = excel.sheet("Sheet1") # 1行目から5行目までをぐるぐる sh…

さくらに gem で twitter と mongrel をインストール

gem でインストールしようとすると chown/chgrp: Operation not permitted が出て失敗しちゃうから、できないんだろうなぁと思ってたんだけど Google 先生に聞いたらさくっと教えてくれた setenv RB_USER_INSTALL true さくらインターネットで、gem install …

Ruby 1.9 インストールできた

同居できないものだとばかり思っていたから 1.9 入れるの躊躇してたんだけど、二世帯住宅でも OK の許可が出たので同居しちゃった。 ちなみに、 ./configure --program-suffix=1.9 の方でやった。 んで、Ruby 1.9 を使っての記念ポスト♪と思ったら1.9付け忘…

Mechanize

cygwin から Mechanize#get で page を取得した時に body が空の場合があって何回かリトライしないといけなかったんだけど、andlinux から同じプログラムを動かしたときはそれがない。 ubuntu の時も fedora の時も大丈夫なんだけど、Windows は何が違うんだ…

TwitterArchiveFilter を cygwin 上で動かす

何も考えずに実行するとエラーが出ちゃう $ ruby twitterarchivefilter.rb -k vim -p 10 Keyword => vim PageNum => 10 LogFile => archive.log /usr/lib/ruby/gems/1.8/gems/scrapi-1.2.0/lib/scraper/reader.rb:216:in `parse_page': Scraper::Reader::HTM…

TwitterJSON

Twitter の HTML を解析して JSON 形式にする。 発言のアンカータグを消す修正をいれた。 require 'rubygems' require 'mechanize' require 'json/lexer' class TwitterJSON def initialize(user_name , password) @user_name = user_name @password = passw…

Twitter のページから JSON を生成する

API 制限かかりまくりで Tween みたいに HTML 解析するクライアントじゃないとまともに使えない。Tweenもいいんだけど、、、自分で作った firefox アドオンの方がしっくりくる。てことで、Mechanize と ruby-json を使って HTML から json を起こす script …

Ruby は仕事じゃないから楽しい

一部だけ切り取り。 Javaをワクワクしながら使う人が少ないのは、Javaが仕事で使う言語だからだと思います。 ひがやすを blog 確かにそうだよなぁ。僕が仕事のメインで Ruby を使うことは(今のところ)会社を変えないと無理な気がしてるし、日頃は開発のサポ…

Railsレシピブック 183の技

2年以上前からずっと書き続け、一部では(都市)伝説の本とも言われていたRailsのレシピ本ですが、ようやく出版できる運びとなりました。Amazonでもページができています。最終的には(w id:takahashimさんと私での共著となりました。レビュアーの方々や井上さ…

Ruby 本購入

本当は Adobe AIR の本を探しに行ったんだけどこれと言って良いのがなかったのもあって Ruby 本を2冊購入。まるごと Ruby! Vol.1作者: るびきち,arton,大場光一郎,高井直人,後藤謙太郎,新井俊一,瀧内元気,cuzic,倉貫義人,大場寧子,久保優子,十河学,舞波出版…

「Ruby活用などで県外の仕事を獲得」,島根県のIT企業33社が団体設立

島根県情報産業協会は2008年6月3日,団体「しまねソフト産業ビジネス研究会」を設立した。Ruby活用などで県外の仕事の共同受注を目指す。島根県のIT企業33社が参加した。 「Ruby活用などで県外の仕事を獲得」,島根県のIT企業33社が団体設立 島根頑張るなぁ…

ログ解析頑張ってみた

とある部署のデータがDBから消えて表示されなくなった 処理した時間帯を含むと思われるアプリケーションログがある ログにはデータの削除と追加したデータのキーコードが出力されている ログにはいろいろな部署のデータが混在している ユーザがどの様な操作…

今更聞けない private と protected の違い

を調べてみる privateの意味は、メソッドを関数形式でだけ呼び出せるようにし、レシーバー形式では呼び出せないようにするという意味です。したがって、可視性がprivateなメソッドは、自クラス及びサブクラスからしか参照できません。protectedも同様に、自…

Twitter API

Twitter に投稿する部分のソースを見てみる。 インストール gem install twitter 使い方 t = Twitter::Base.new(mailaddress , password) t.update(status) ソース module Twitter class Base def initialize(email, password) @config, @config[:email], @c…

Ruby で Twitter に投稿

タイトルもぱくりっと。 $ gem install twitter require 'twitter' twit = Twitter::Base.new("email", "password") twit.update('testing Ruby Twitter Gem') EXDESIGN - RubyでTwitterに投稿 すげー簡単だなぁ・・・。 ユーティリティを作る時の Ruby のハ…

自作の例外をキャッチできない

一時間以上悩んだ・・・ class Test def execute throw SomeError.new end end class SomeError < StandardError end begin Test.new.execute rescue SomeError end 例外をキャッチできず test.rb:4:in `throw': uncaught throw `SomeError' (NameError) fro…

テキストファイルの中身を書き換える

排他もかけてテキストフィルの中身を書き換える場合にどうするか。 f = open("test.txt" , "r+") f.flock(File::LOCK_EX) body = f.read body = ・・・・(書き換え) f.truncate(0) f.rewind f.puts body f.close ってのが自分で考えた答えだったんだけど # …

SHA-1

SHA-1 によるハッシュ値 require 'sha1/digest' Digest::SHA1.hexdigest 'spider-man' #=> "e94f53ca4146e5875acf7e93a2bb91530ef3e6df"

development -> production

rails で作った自前のスケジュールと wiki アプリをずっと development で動かしていたのだけど、最近 thin のサーバインスタンス 5 で動かしてる割にはもっさりするなぁと思って RAILS_ENV を development から production に変えた。 結構違うのね、さくさ…

Matzに聞いてみた:効率の良い開発についてどうお考えでしょう?

「たとえば、仕様書があって、ハンコを押してもらって、外部設計書があって、内部設計書があって……というトラディショナルな開発というものがあるかと思うんですが、そうしたトラディショナルな開発については、正直知らん、っていう感じですね。もう好きに…

mdb アクセス

とある調査のために ruby から mdb へアクセスしてデータを取得した後に集計するプログラムを作った。もともと mdb へのアクセスライブラリは自分で書いてたけど。 ruby 知らなかったらどんなことになってたんだろうか・・・考えるだけでも恐ろしい・・・。

Excel 操作

とある csv ファイルの内容を集計するために以前作っていた Excel 操作ライブラリを使ってみた。 集計処理はできたけどゴリゴリになっちゃったよ。作り直しを決意。その都度 Excel を操作するよりも、Excel を読み込んだ後はシートや行、セルのオブジェクト…

1.9 gem

gem install mechanize 相変わらず返ってこない・・・

1.9 のコンパイル

Cygwin の場合は、setup.exe から autoconf と bison をインストールした後 cd ruby-1.9 autoconf ./configure make make install でOK。