JRuby

JRubyでsocket client

Javaのsocketでclientを作りたくて、どんなんだっけと思ってJRubyでjava.net.Socketを使ってみた #!/usr/bin/env jruby require 'rubygems' require 'eventmachine' require 'ArgsParser' require 'java' import 'java.io.BufferedReader' import 'java.io.I…

マウスサーバー

JRubyで起動して、telnet localhost 5000で接続して 50,100 とか入力するとマウスが動く #!/usr/bin/env jruby ## telnet localhost 5000 and put "50,100" require 'java' import 'java.awt.Robot' require 'rubygems' require 'eventmachine' PORT = 5000 …

マウスを動かす

プログラムでマウスを指定した座標に移動させる方法 | OKWavejava.awt.Robot.mouseMove()を使うと動かせる #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' r = Robot.new for i in 0...1024 do r.mouse_move(i, (i*0.6).to_i) sleep 0.05 end…

JRubyでffi-rzmqを動かす

Macでjruby+ffi-rzmqを使う時 libc.dylibが無いというエラー /usr/libにLD_LIBRARY_PATHを通す zmq.dylibのアーキテクチャが違うというエラー zmqを64bitでインストールして、環境変数JAVA_OPTSに-d32を付けていると起こる このあたりハマる。 MacのJRubyの…

パソンコの画面の動画を取る

画面を撮るソフトを買うお金が無かったのでテキトウにjrubyで作った。音はいらないので無しで。 capture_screen_video.rb #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' import 'java.awt.Rectangle' import 'java.awt.Color' import 'java.…

ubuntuのjrubyの起動を倍ぐらい速くする

と思ったらcacaoあんまり更新されてないから微妙 http://en.wikipedia.org/wiki/CACAOubuntu10.04のaptで入れたjava1.6に、rvmで入れたjruby1.6で試す。こうしておく export 'JRUBY_OPTS=-X-C' export 'JAVA_OPTS=-cacao' -X-Cはありで、-cacaoか-serverのど…

壊れた画像を探して削除する

いちどjrubyで画像として読み込んでwidthやheightが取れていれば破損していないとみなす delete_broken_imgs.rb #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' import 'java.awt.…

nailgunを使う

nailgunは一度起動したJVMを毎回使い回すことでJRubyの起動速度の遅さをなんとかするものらしい。 http://blog.headius.com/2009/05/jruby-nailgun-support-in-130.html JRUBY_OPTSに-X-Cがあるとnailgunが起動できないので一旦消してサーバー起動 export 'J…

MacのJRubyの起動が2倍速くなった

前の記事の続き。java -helpに32bit起動オプションが書いてあった.zshrcとかに書いておく export 'JRUBY_OPTS=-X-C' export 'JAVA_OPTS=-d32' 試す time ruby -rubygems -ve 'require "active_support"; puts Time.now'jruby 1.5.3 (ruby 1.8.7 patchlevel 2…

JRubyの起動を早くしたい

MacでJRubyのアプリを開発していて、何度もJRubyを起動するので起動時間の遅さが気になった 結論 export 'JRUBY_OPTS=-X-C'Macbook しておくと、MacbookAirでは0.5秒ぐらい、MacbookProでは0.3秒ぐらい起動が速くなった あんまり嬉しくない普段使っているmac…

JButton押下イベントを登録

javaと同じように普通にActionListenerを継承したクラスを作ってJButtonに登録 #!/usr/bin/env jruby require 'rubygems' require 'java' import 'javax.swing.JFrame' import 'javax.swing.JPanel' import 'javax.swing.JLabel' import 'javax.swing.JButto…

画面をキャプチャする

1秒ごとにキャプチャしてJFrameに表示 #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' import 'java.awt.Rectangle' import 'javax.swing.JFrame' f = JFrame.new f.title = 'interval capture' f.setSize(800, 600) f.visible = true r = Ro…

swingを使う

jruby -rubygems -ropen-uri -rjava -e 'import "javax.swing.JFrame";import "javax.swing.JTextPane";f=JFrame.new;f.title="サイバーパンク!";f.setSize(320,240);f.visible=true;textp=JTextPane.new;textp.text=open("http://shokai.org").read;f.cont…

jrubycで作った.classを実行する

jrubyc test.rbtest.classができる 実行するとエラーが出る class file for org.jruby.ast.executable.AbstractScript not found classpathにjruby.jarのあるディレクトリを追加しておくとよい export CLASSPATH=$HOME/lib/java/jai/lib:$HOME/lib/jruby/lib…

Rubyで画像生成メモ

数百枚のVGA程度の解像度の画像にそれぞれ数十のアルファチャンネルあり画像をcompositeして書き出す処理なら、RMagickよりjavax.imageioをJRubyから使うのがいいんじゃないの javax.imageio、JAIともにJavaで書いてもJRubyから使っても速度差は無かった(と…

JRubyインストール

sudo apt-get install sun-java6-jdk sun-java6-bin aptのjrubyが古いのでバイナリを持ってくる wget http://jruby.org.s3.amazonaws.com/downloads/1.5.1/jruby-bin-1.5.1.tar.gz tar -zxvf jruby-bin-1.5.1.tar.gz mv jruby-1.5.1 ~/lib/jruby .zshrc path…

javax.iamgeioが遅いのか

http://d.hatena.ne.jp/shokai/20100629/1277804347 の続き 前のコードではjavaのBufferdImageがRubyのオブジェクトに毎回変換されている気がしたので int配列でwidth,heightだけを返すJava classを作ってJRubyのスクリプトから呼ぶ事にした。 Javaで配列で…

JRuby+javax.imageioを使うか、Ruby+RMagickを使うか

画像読み込んでwidth, heightを出力対決 画像46枚でJRuby+javax.imageio #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' import 'java.awt.image.BufferedImage' start = Time.now…

JRubyでjavaのclassを呼び出す

javax.imageioで使える画像フォーマット - 橋本詳解をJRubyで書いてみる test.rb #!/usr/bin/env jruby # -*- coding: utf-8 -*- puts 'jruby start' require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' System.out.println("javaのp…

JRubyインストール

インストール http://jruby.org/download から最新releaseを取ってホームディレクトリに置く wget http://jruby.org.s3.amazonaws.com/downloads/1.5.1/jruby-bin-1.5.1.tar.gz tar -zxvf jruby-bin-1.5.1.tar.gz mv jruby-1.5.1 ~/lib/jruby ~/lib/jruby/bi…

JRuby+JAIで画像サイズ取得

http://d.hatena.ne.jp/shokai/20100629/1277804347 と同じ条件でimage_size.rb #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'javax.media.jai.Interpolation' import 'javax.media.jai.JAI' import 'javax.media.jai.RenderedOp' …