ruby

C++のプログラムから pit を使ってアカウント情報を取得する

C/C++の勉強がてらに書いてみた。popen()なんて初めて使うので使い方おかしいかも。

pitの使い方メモ(ちょっと詳しく)

pitがどういうものか、というのは以下のリンクを参照。アカウント情報を管理するコマンド pit - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech久しぶりに使うとすっかり忘れてたのでメモ アカウント情報の登録 アカウント情報の登録は…

gemのbinのコマンドがインストールされない

なんか、gem installしたヤツのbin配下のコマンドが、インストールされていないっぽかったので、ちょっと調べた。とりあえず、~/.gemrcに以下のように書いておけば良いみたいだったので書いておいたらインストールされた。 gem: --bindir /usr/local/bin 参…

はてブされた数の変動を監視してGrowlするヤツ

作ってみた。 なんか、はてなブックマーク件数取得API(XML-RPC版)をRubyから叩いてみたんだけど、レスポンスのContent-Typeが"期待と違う"ということでエラーになってしまう。 どうもXML-RPCではContent-Typeはtext/xmlを期待しているみたいだが、はてなの…

Homebrewでrubyをアップデートしようとしてハマる

ruby 1.9.1だと Sinatra が動かないので、Update しようと brew install ruby と叩いたら Warning: /usr/local/lib/ruby exists as a symlink The previous Ruby formula symlinked /usr/local/lib/ruby into Ruby's Cellar. This version creates this as a…

Windowsネットワークで共有しているファイルが誰かに更新されたらGrowlで通知するスクリプト

ネットワーク上で不特定多数が共有するファイルがいつ更新されているか確認したい場合って多々ある。 そこで、ファイルの更新日をチェックして前回の更新日から変更があれば Growl で通知するスクリプトかいてみた。 実行すると、こんな感じでファイルの更新…

投げてみた

みんなruby-listにはもっと気楽に投げていいと思うんですよ。 2010-01-30 - はてなるせだいあり そうですね、ためらう理由はない。と、いうことで投げてみた。

iconvを使ったRubyスクリプトをExerbでexe化し実行すると、"`require': No such file to load -- iconv"と言われた

json_pureを使ったスクリプトをexe化するとiconvを使用している箇所でエラーが発生する現象が起きたので調査してみた。以下のようなRubyスクリプトをexe化してみる。(ファイル名は"text.rb"とする) require 'iconv' UTF16toUTF8 = Iconv.new('utf-16be', '…

ニコ生アラートを受信するrubyスクリプト書いてみた

いろいろストレスたまり気味だったので、気分転換にRubyで遊んでみた。こんな感じでズラズラと放送中の番組が表示されます。ハマったところは、リクエストを投げるときに文字列の最後に"\0"(いわゆるNULL文字)を付けてあげないと、サーバからレスポンスが…

RubyでPukiWikiプラグインを書くごく簡単な方法

ずいぶん前からイントラネットでのWikiにはPukiWikiを導入してる。 最近、プロジェクトダッシュボード的にWikiを使い始めていて、ちょっとしたプラグインが書きたくなったけどPHPだと辛いなー、ということでどうにかRubyで書く方法を模索。簡単な方法を見つ…

Ruby製 Notify.ioクライアント for Window を新APIに対応 そして"Niow"と改名した

先日公開した、Windows版Notify.ioクライアントですが、その直後にNotify.ioのAPI仕様変更 があり動いていませんでしたが、やっとまとまった時間を取る事ができ、新APIへ対応することができました。そして、アプリケーションの名前も"Notify-io-client-4R"と…

Rubyのデバッガの使い方

デバッガの起動 ruby -r debug <スクリプト> 現在の実行行の周辺のコードを表示 (rdb:x) l[ist] <行番号> ステップ実行 (rdb:x) s[tep] ブレークポイントの設定 (rdb:x) b[reak] <行番号>クラス名やメソッド名で設定することもできるらしい。*1 ブレークポイ…

VisualuRubyで"Hello, world"

irbで試してみる irb(main):001:0> require 'vr/vruby' => true irb(main):002:0> SWin::Application.messageBox "Hello, VisualuRuby world." => 1^@ ドキュメントを探すのが難儀でした。 参考 Application.rd

{windows]RubyスクリプトからWidowsAPIを呼び出す方法

ちょっと曖昧なところもあるけど、取り合えず呼び出すことができたのでメモっとく。今回、WindowsAPIのSHChangeNotifyを呼び出す必要があって、その方法を調べた。irbでためしたところ以下のような感じで呼び出すことに成功した。 irb(main):001:0> require …

バッチ処理の実行結果を自分宛にメールするスクリプト

みんなやってると思うけど、自分のためにエントリにしとく。 使い方 以下のような感じで使う $ echo "メール本文" | ruby sendmail.rb smtp.yourdomain.com you@yourdomain.comパラメータは順番に SMTPサーバ あて先(送信元)メールアドレス 基本的に自分で…

動作しているスクリプト自身がExerbランタイム上で動いているか(exe化されているか)判別する方法とexeの場所を知る方法

オンラインのリファレンスが読んでもよくわからんかったのでソースをチラ見した スクリプト自身がExerbランタイムで実行されているか判別する Exerbのランタイムで動いている際、$Exerbグローバル変数がtrueになっているので、それで判別できる。 if $Exerb …

Exerbでexeを作成するときの手順メモ

元となるスクリプトが既に存在する状態から レシピファイルの作成 > mkexy <スクリプト名>または > ruby -r exerb/mkexy <スクリプト名>でスクリプトを実行することで、レシピファイルが作成される。 レシピファイルからexeを生成 > exerb <スクリプト名>でe…

任意のRubyスクリプトを実行するとき開始/終了時のタイムスタンプを出力する方法

やりたいこと cronとかで、自動的にスクリプトを実行したときに、その実行開始/終了のタイミングで開始時刻/終了時刻を標準出力に出力したい。 そこで 汎用的に使えるちょっとしたスクリプトを組んでみた以下のスクリプトを、timestamp.rb という名前で作…

Rubyでマルチバイト文字を指定バイトで切り出す

文字コード関係は苦手 もっといい方法があるかもしれない... class String def jleft(len) result = "" total_len = 0 self.split(//).each do |c| break if (c.size + total_len) > len result << c total_len += c.size end result end end (1..18).each {…

Mechanizeでformをsubmitしたときに' can't convert nil into String (TypeError)'と言われた場合の対応

自分の場合 Googleアカウントの認証を Mechanizeで通そうとしたときのこのエラーに遭遇した。 /opt/local/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/util.rb:40:in `iconv': can't convert nil into String (TypeError) from /opt/local/li…

Excel仕様のCSVを読んで{カラム名=>値}のHashを作るコード

以下を参考に書いてみた。 codeなにがし::RubyでExcel仕様のCSVファイルの読み込みと表示 require 'csv' source = <

Rubyが実行されているプラットフォームを判断する正しいやりかた?

以下のサイトより Proper way to detect Windows platform in Ruby - The Empty WayMac OS X 10.5.8 での結果 irb(main):004:0> Config::CONFIG['host_os'] => "darwin8" Cygwinでの結果 irb(main):002:0> Config::CONFIG['host_os'] => "cygwin" Windowsで…

RSpecのメッセージを常にカラフルにする

.bashrcとかでaliasしとくといいかも alias spec='spec -c'

簡単なCGIスクリプト

いまさら聞けない。 #!/usr/bin/ruby print "Content-type: text/plain\r\n\r\n" print "Hello, Ruby" CGIライブラリ使用バージョン #!/usr/bin/ruby require 'cgi' cgi = CGI.new("html3") cgi.out {"<h1>hello, ruby</h1>"}

RubyでWindowsにインストールされているアプリケーションの一覧を取得する

必要にせまられて、ちょこっとrubyで書いてみた。たぶん、コントロールパネルの「プログラムの追加と削除」に表示されているものは出てくると思う。 追記 どうも内容が重複する場合があるようなので、 ruby list_apps.rb | sort | uniqという感じで重複をの…

WEBrickでCGIするとき、'.rb'という拡張子をCGIとして認識させる方法

Sinatraのローカル開発用としてWEBrickでテスト用CGIサーバ書いてみたが、*1 WEBrickのデフォルトだと '.cgi'をCGIスクリプトとして認識するようになっていて、完成したアプリをデプロイする前に'.rb'に戻したりするのが面倒だしトラブルの元になりそうなの…

Sinatraでも対応している軽量/シンプルなテンプレートエンジン'Haml'についてしらべたメモ

Sinatraでも対応してる軽量/シンプルなテンプレートエンジンHamlについてしらべてみた。 そのチュートリアルを勝手に要約してみる ERBと比較してみるとそのシンプルさがよくわかる。 タグとそのコンテント テンプレートエンジン 記述 ERB <strong><%= item.title %></strong>…

Chromiumの最新ビルドが出たらtwitterにつぶやくbotをSinatraベースに書き換えたので晒してみる

とりあえず晒しておく。idやパスワード、cronサービスから叩くためのapikeyなどの情報は外部ファイルに保存している。

Appjetが終わってしまうので慌ててHeroku+Sinatraに切り替えたらすごく簡単だった。

はじめてSinatraさわったけど、すごく簡単でイイ。DSLのインターフェースがAppjetにちょっと似てる部分があるのもよかったのかも。 第一には、もともとのアプリが単純すぎるってのもあるけど....以下、Herokuに移植したアプリ Twitterのフィードを吐くやつ i…

RubyでWindowsのサービスを実装するサンプル

Running a Ruby Program as a Windows Service? - Stack Overflow コードは上記のサイトの丸写し とりあえず、Windowsサービスが作れたので自分メモ下記コードを動かすためには win32-service というgemが必要 事前に gem install win32-service -rでインス…