「 ruby 」一覧

rubyでバイナリデータをPOSTする

とあるサーバのレスポンステストのために、バイナリデータをPOSTする必要が生じたので、ネットで調べてコードを書いてみた。

[cc lang="ruby"]require 'net/http'
require 'uri'

uri = URI.parse("http://192.168.0.34/")
Net::HTTP.start(uri.host, uri.port){ |http|
# ヘッダー部
header = {
"Content-Type" => "application/octet-stream"
}

# ボディ部
body = [ 0x00, 0x01, 0x02, 0x3456 ].pack("CCCn")

# 送信
response = http.post(uri.path, body, header)
}
[/cc]

1バイト、2バイトなどのバイナリストリームを作るにはpack使えばいいのか。

0000   50 4f 53 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d  POST / HTTP/1.1.
0010   0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61  .Content-Type: a
0020   70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74  pplication/octet
0030   2d 73 74 72 65 61 6d 0d 0a 41 63 63 65 70 74 3a  -stream..Accept:
0040   20 2a 2f 2a 0d 0a 55 73 65 72 2d 41 67 65 6e 74   */*..User-Agent
0050   3a 20 52 75 62 79 0d 0a 48 6f 73 74 3a 20 31 39  : Ruby..Host: 19
0060   32 2e 31 36 38 2e 30 2e 33 34 0d 0a 43 6f 6e 74  2.168.0.34..Cont
0070   65 6e 74 2d 4c 65 6e 67 74 68 3a 20 35 0d 0a 0d  ent-Length: 5...
0080   0a 00 01 02 34 56                                ....4V

Wiresharkで実際のHTTPリクエストをキャプチャしてみると、いちおう想定通りのデータがPOSTされてるようだ。たぶん大丈夫かな。しかしrubyだと簡単にこんなネットワークテスト用のスクリプトが書けるのか。


さくらVPSにRedmineをインストールしてみる

さくらのVPSへの設定続きで、今回はRedmineをインストールしてみた。

ほとんどは、

Redmine 1.1.1 インストール&設定 | Risin'

のサイトをそのまま真似しただけだけど。

Ruby Enterprise Editionなんてあるんだね…。メモリ使用量が少ないのか。

Passengerも初めてインストールして設定してみたけど、ApacheモジュールとしてRailsアプリのディレクトリを指定するだけでほぼ動かすことができるのは便利かも。

一番面倒だったのはRedmineのインストールかな…。WordPressのようなDBのテーブル作成からWeb上で自動的に行ってくれるWebアプリを使っていると、rakeでmigrateしたりする手順があるのが面倒ってだけではあるのだけど。

あとはrvmコマンドで行うべきことと、gemやrvmsudoコマンドを使うべきところとの使い分けがまだ理解しきれてない。

だいぶ昔にもrvmは触っているのだけど、

Ubuntu10.10にRuby1.9.2とRails3をrvmを使ってインストールしてみた - きままな日記帳

rvmはあくまでrubyインタプリタの切り替えだけってことでいいのかな。railsはrvm管理下には無いんだろうか…?

とりあえず、今日のところはredmineをVirtualHostで動かせてgitリポジトリと連携までできたたからよしとする。開発アイテムをチケットに起こして管理するようにしなければ。


Ubuntu10.10にRuby1.9.2とRails3をrvmを使ってインストールしてみた

Ubuntu 10.10に、Ruby 1.9.2とRails3をrvmを使ってインストールしてみた。

ググるともっと詳しいサイトがたくさんあるけど、rubyとrailsは素人なので自分で手を動かしたメモとして残しておく。

まずはrubvをaptで入れる。

Ubuntuのrubyパッケージは1.8系。とりあえずgemを使うためだけにインストールする感じ。
[cc lang="bash"]sudo apt-get install ruby rubygems[/cc]

gemからrvmをインストール。実はrvmという物の存在を昨日まで知らず、ググっていてたまたま見つけた。

rubyのバージョン切り替えができるのと、ユーザーディレクトリ以下にruby環境を作るので、システムを汚さないというのがメリットか…。Ubuntuのパッケージ管理から外れるのが、最初ちょっと気持ち悪い感じもしたけど、システム汚さないのならそれほど気にすることもないよな。

[cc lang="bash"]gems install rvm[/cc]

直接

[cc lang="bash"]bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )[/cc] してインストールするほうが良いようだけど、とりあえず今回はgemで。 メッセージ通り、.bashrcの最後に [cc lang="bash"][[ -s "$HOME/.rvm/scripts/rvm" ]] ; then source "$HOME/.rvm/scripts/rvm"[/cc] を追加 rvmでrubyをインストールすると、ソースからのビルドになるのでビルドに必要なパッケージをインストールしておく。 また、rubyが使うライブラリ(zlib, openssl, readlineなど)もこの時点でインストールしておくと後がすんなり進むようだ。 [cc lang="bash"]rvm package install[/cc] コマンドで後から入れることもできるようだ。rvmでこれらを入れると、ユーザーローカルの管理になるのだと思う。必要に応じてaptかrvmか使い分けると良いのだろう。 [cc lang="bash"]apt-get install build-essential curl zlib1g-dev libssl-dev libreadline5-dev libxml2-dev libsqlite3-dev[/cc] ruby1.9.2をインストール。 [cc lang="bash"]rvm install 1.9.2[/cc] コンパイル待ち…。 インストールが終わったら、1.9.2をデフォルトのrubyに設定。 [cc lang="bash"]rvm use 1.9.2 --default[/cc] あとはrailsをインストール。おそらくすんなり入るはず。 [cc lang="bash"]gem install rails[/cc] 以下、Railsの公式チュートリアルに沿って

[cc lang="bash"]rails new blog
cd blog
bundle install
rails s[/cc]

までやってブラウザからアクセスできれば成功。

【参考URL】
rvm: 複数のRubyを共存させる最新のやり方 - 床のトルストイ、ゲイとするとのこと
RVM Ruby 1.9.1 troubles - Stack Overflow


ruby1.9にwxRubyをgemで入れるとき

wxRubyをruby1.9系列で使うときは、

[cc lang="ruby"]gem install wxruby[/cc]
ではなくて、
[cc lang="ruby"]gem install wxruby-ruby19[/cc]
のほうが正しい。

ネット上でwxrubyの指定をしているのを見てそのとおりにやってたけど、実際に書いたサンプルが動かないので何でだろう…と、しばしハマったのでメモ。



OSXでのアプリ開発、AIRかMacRubyか…

  1. OSXでサイトを監視して何かあればGrowlでアラートを出す、簡単なUI付きアプリを作りたい
  2. OSXとWindowsPCを行ったり来たりするので両方で動くといいなぁ
  3. 両方で動くならAIRアプリかな
  4. AIRでGrowl使えるんだっけ
  5. AIRはFlexBuilder無いと作りづらいの?買ってまで作るつもりは無いのだけど。
  6. FlashDevelopで作れるようだけど...。どこまでできるかよく分からない。
  7. ではOSX専用アプリだと?Cocoaだ。Objective-Cかぁ...。
  8. そういえばRubyCocoaというのがあったな
  9. む、SnowLeopardだとXCodeから標準で選択できないのか。いろいろやればできそうだけど、面倒だな。
    • あと動作もちょっと不安定?みたいな記述も見かけた。
  10. MacRuby
  11. RubyCocoaの後継を目指してるっぽい。これが後の本流になるのかな?
  12. チュートリアル(MacRuby Presentation from RubyFest | Ruby on Rails for Newbies)を見る。
    • Objective-Cで書くよりかは遙かに直感的だ。
    • ついでにiPhoneアプリ作ろうとしたときに理解できなかったInterface Builderの使い方もデモを見てちょっと分かった気がする
  13. RubyでGrowlは、ruby-growlなどいくつかあるらしいとtwitterで教えてもらった
  14. FlashDevelopとMacRubyでそれぞれHelloWorld作ってみて感触を見てみるかなぁ
  15. ↑イマココ

ということで、理想はWindowsでも使えるAIR、そうじゃなかったらMacRubyでやってみようかと思っているところ。

まぁActionScriptもRubyもほとんど書けないのでどっちから始めてもゼロからに近いんだけどね。


AWSの電子認証対応ライブラリ ruby-aaws

自作PHPアプリでAWSを使っていたけど、電子認証が必要になってからまったく対応する気が無くて放置してた。ライブラリ使わずに自分でリクエスト作って投げてるやつだったし。

いろいろ電子認証対応が面倒そうなので、Railsで作り直してみようかと電子認証対応のライブラリを探していると

RailsでAmazonの商品を, 署名認証に対応した上で扱う - make for h @ppy_things;

で、ruby-aawsというのがあることを知る。

とりあえず簡単なサンプル作って動かしてみるところまでやってみた。

しかし普段rubyを書いてないと、そもそも文法で躓くなぁ...。サンプルコード見てもパッとわかんないや。



近ごろ興味を持ってるもの(コンピュータ関係)

最近、興味を持っているものの一覧。

自分への備忘録も兼ねて、たまに書いていこうかと。興味が移るのが早い人なので、何か見て「面白そう」と思ったときにメモしとかないとすぐに忘れちゃうのよね...。

でもこれだけ全部やろうと思ったら、時間が全く足りないのだけは確実。なので優先度つけてやっていくしかないね。そのうちに別のに興味持ったり、持たなくなったりって感じで項目も入れ替わっていくだろうし。

組み込み、電子工作系

  • Marvellの"SheevaPlug"Linuxキット($99)
    • 安価なARMデバイス。I/Oもいろいろ出ているようだ
  • JTAGデバッガ
    • ARMデバイスを本格的にやるなら必要。↑のデバイスとか、BeagleBoardで使いたいのだけど何を買えば良いのかちんぷんかんぷん。
    • Olimexのこのあたりか、Flyswatterとかいうやつか。CPUチップによっても使えたり使えなかったりするんだろうか。まだ詳しくない。
  • Linuxカーネル、ドライバ周り
    • 組み込みLinuxをやるならこの辺の知識も
  • BeagleBoard
    • 買ってからLinuxをちょっと動かしただけで満足してしまってるので、何か次のステップへ。
  • Arduino
    • 電子工作と組み合わせて何か作りたい。
  • ブレッドボード
    • 電子工作の基礎を勉強するときに。

Webアプリ、LL系

  • CakePHP
    • 今勉強中。昔作ったプレーンPHPの小さなアプリと同じ物を作る学習中
  • Rails
    • Rails2.3とか出たみたいだけど、またいろいろ変わってるとかいう噂
  • Ruby1.9
    • 高速化されたのでいずれは。互換性など1.8と違ったりでハマるポイントありそう。
  • Rubyそのもの
    • 1.9とか言う前に文法もろもろ勉強しないと。頭の中での動作イメージをさくっとコードに落とせるくらいにはなりたい。
  • NetBeans
    • RubyとPHPでの開発に使い始めた。JavaFXとかにも対応するし、そのうち6.7が出る
  • JavaFX
    • Adobe AIRとどっちが取っつきやすいだろうか...

その他

  • emacs
    • テキストエディタ勉強会を見て、n回目のチャレンジ。編集系のコマンドを新しくいくつか覚えた。でも常用には至ってない。
    • 未だにvimとどっちを覚えればいいのか迷う
  • 画像処理のアルゴリズム
    • 微妙に仕事と絡んでるので
  • 画像処理、信号処理にかかわる数学
    • 画像処理、信号処理のアルゴリズム勉強するには、数学分からないと辛い。でも数学は勉強の中で一番苦手だったからなぁ...
  • iPhone/Cocoa開発
    • Xcodeの使い方と、Objective-Cから勉強しないと。iPhone関係も書籍が揃い始めてるから手をつけたいんだけど。
  • Sage
  • Mac
    • Mac miniの新型に期待。もしくはMacbookの買い換えも視野に入れる
  • Netbook
    • 外でPCを使いたいシチュエーションが増えるのなら。

RBC勉強会の資料が分かりやすい

実際に参加したわけではないのだけど、RBCの勉強会資料がけっこう分かりやすいと思ったのでメモ。

2部も終了しました。 - ナカオ日記-フリーランスの轍

NetbeansでRailsをかじってみる場合には、この資料を見ながらだけでもイケそうな気がする...。

(追記)

リンクして頂いて恐縮です。参加していたわけではないのに...。


スポンサーリンク