JRuby

WebEngineでJRubyとHTML間で連携をしてみる

JRuby(JRubyFX)とWebView上のHTMLの連携を試してみる。JRuby側のボタンを押したらHTML上のspanにメッセージを表示して、 HTML上のボタンを押したらJRuby側のラベルにメッセージを表示するプログラムは、RubyコードとHTMLコードの2つを用意します。 require…

重い処理をバックグラウンドスレッド実行させてみる

重い処理をTimeline上に書いてしまうと、処理中はGUIが止まってしまうことになります。 それを回避するためにServiceとTaskを用いる方法があります。 重い処理をTaskに書いて、バックグラウンド実行し、GUIで定期的にモニタリングするようなプログラムを作っ…

円を左右に動かすアニメーション

JRubyFXでアニメーションをやりたくて、まずは簡単なところから始めてみた。 はじめに、サークルを描画して、大きさを150、色をgreen、位置を縦方向に200の場所においた。 そのあと、play関数を呼んで、 そこで、idが"c"となっているサークルのX方向をtimeli…

Timelineを用いて1秒ごとに時刻を表示するプログラム

JRubyFXによるアニメーションを調べていて、まずは簡単なところから始めてみようと思う。 テキスト(ラベル)を1秒ごとに更新するプログラムを作成してみた。 Timelineに登録されたハンドラを1000msごとに呼ぶという単純なプログラムになっている。 require …

RubyスクリプトからSSHコマンドを実行してみる

ブログの更新がずいぶんしてなかったのですが、 最近ようやくやる気も徐々に出てきて、何かやろうかなぁと思って、 Rubyを使ってリモート操作したいなぁと思い立ってとりあえずSSHコマンドを叩いてみることにしました。まずは、インストールから % jruby -S …

JRubyFXでWebブラウザを作ってみる

JavaFxになってSwingと比べてWebViewのエンジンが強化されているようです。 SwingでJavascriptとかHTML5とかがうまく動かなかったのがJavaFXではちゃんと動くっぽいです。 まずは簡単なWeb表示 require 'jrubyfx' class App < JRubyFX::Application def star…

これはいい!JRubyFX+SceneBuilder(fxml)を使ったGUI開発

JRubyFXはJavaFxをRubyっぽく書けますが、 そこにプラスしてfxmlを使うとよりGUI開発が簡単になります。 ここではJRubyFXでfxmlを使う方法をメモとして残します。 まずはJRubyでfxmlをロードする Scene Builderを使って、適当にhello.fxmlというファイルを作…

JRubyでODEをはじめてみる2

前回に引き続き 今度はGUIで試してみます。オリジナルのODEにはdrawstuffというデモ用のGUIキット?が含まれています。 ode4jにもありがたいことにdemoのjarの中にdrawstuffが隠れています。 今回はdemoに含まれているdrawstuffを利用します。ode4jのdrawstu…

JRubyでODEをはじめてみる

物理計算エンジンOpen Dynamics Engine (ODE) をRubyでやりたい!という前々から願望があり、いろいろ調べているうちにJRubyならどうだろうということで試してみました。ODEはC/C++のライブラリですが、探してみるとJava版も存在しているようです。 Java版OD…

Windowsで簡単にRedmine on JRubyをデプロイするメモ

WindowsにてRedmineを立ち上げる方法はいろいろあると思います。 ネットで検索かければいろいろ紹介されていると思います。 ここでは、 誰でも手軽に インストールに手間をかけず 持ち運びが容易な(ポータブル) 方法を目標にします。データベースの選択は…

ANTLR4で生成したファイルをjrubyから触ってみる

ANTLR4でパーサまでを生成してクラスをjarにして、扱うときはJRubyからアクセスしてみます。 あまり、ANTLR4には詳しく説明しません。まだよくわからいので。 準備 Java JDK7準備 以下のページからJDKを落とします。 http://www.oracle.com/technetwork/java…

JRuby+LWJGLでGLSLを試してみる

はじめてということで、手始めに動くかどうかだけ試します。 GLSLのfragment側で色を緑にしてみます。 $:.unshift File.dirname(__FILE__) require 'java' require 'lwjgl.jar' import org.lwjgl.opengl.Display import org.lwjgl.opengl.DisplayMode GL11 =…

JRubyFXでボタンを押してラベルに表示するのを試してみた

jrubyfxのsampleをいろいろあさって、ボタンを押したらラベル表示を更新する簡単な実装を試してみました。実装イメージはこんな感じ。 hello2.rb require 'jrubyfx' class Hello < JRubyFX::Application def start(stage) with(stage, title: "sample", widt…

JRubyFXでまずは簡単なラベル表示をしてみた

まだ、JavaFXもよく理解していないですが、適当に実装してみます。 とりあえず、ラベルを使って文字列を表示するところから。 stage上に、まずはsceneを作って、その上にlabelとか貼っていけばよさそうです。イメージはたぶんこんな感じ。 hello.rb require …

JRubyFX+FXMLのデモを動かしてみた

今日試した限りでは、JRubyFXがrubygemsに登録されているものは動かなくて、直接githubから持ってきて、ようやく動きました。 2003/05/20にjrubyfxのバージョン1.0.0なるものがrubygemsにアップされたようです。 おそらく、FXMLローダあたりのバグが解消され…

JRubyFXのHelloWorldを実行してみた。

準備 # jruby -S gem install jrubyfx Hello.rb require 'jrubyfx' class HelloWorldApp < JRubyFX::Application def start(stage) stage.title = "Hello World!" stage.width = 200 stage.height = 100 stage.show() end end HelloWorldApp.launch

Jruby+LWJGL+RubeusでOpenGLしてみる

$:.unshift File.dirname(__FILE__) require 'lwjgl.jar' require 'rubeus' Rubeus::Swing.irb import org.lwjgl.opengl.AWTGLCanvas GL = org.lwjgl.opengl.GL11 class MyCanvas < AWTGLCanvas def initialize end def initGL GL.glClearColor 0.0,0.0,0.0,…

JRubyからImageIOで画像を触ってみる

JRubyならJavaのAPIが扱えるのでImageIOを使うと簡単に読み書きできると思います。 JPGからPNGに変換する require 'java' import 'javax.imageio.ImageIO' import 'java.io.FileInputStream' import 'java.io.FileOutputStream' def read_image name file = …

JRubyでpptを作ってみる

POIのHSLF形式がPowerPoint(ppt)にあたるようです。 とりあえず、タイトルに"Hello World"を表示させてみました。 require 'java' require 'poi-3.9-20121203.jar' require 'poi-scratchpad-3.9-20121203.jar' import org.apache.poi.hslf.usermodel.SlideSh…

jruby-poiでExcelファイルを作成してみる

Apache POIというものに少し触ってみることにしました。 http://poi.apache.org/Apache POIは、JavaのAPIでMicrosoftのドキュメントにアクセスできるものです。 Word、Excel、PowerPoint、Visio、Outlookなどにアクセスすることができます。 また、JavaのAPI…

JRuby+LWJGLでOpenGLしてみる

JavaのライブラリにLWJGLというのがあって、OpenGL、OpenAL、OpenCLが使えるようで最近気になっています。あと、コントローラもOSに依存せず使えるようになるらしいので勉強がてら触ってみようと思います。 Download 以下にアクセスしてファイルを入手します…

JRubyでBluetoothデバイスを検索してみる

Bluetoothに関する情報なかなか無いですが、JavaでアクセスできそうなのでJRubyに置きかえてサンプルを書いてみました。 ライブラリ bluecoveというライブラリを使うとBluetoothを扱うことができるみたいです。 http://code.google.com/p/bluecove/ bluecove…

JRubyでBluetoothデバイスを検索してみる

Bluetoothに関する情報なかなか無いですが、JavaでアクセスできそうなのでJRubyに置きかえてサンプルを書いてみました。 ライブラリ準備 bluecoveというライブラリを使うとBluetoothを扱うことができるみたいです。 http://code.google.com/p/bluecove/ blue…

JRuby-FFIを使ってWindowsのMessageBoxを呼び出す

JRubyには、FFIライブラリがはじめから同封されています。 FFIは、Ruby/DLと類似しています。 以下にコードを記載します。 require 'ffi' module Win32 extend FFI::Library ffi_lib 'User32' ffi_convention :stdcall attach_function :message_box_a, :Mes…

JRuby-1.7.0 Releaseされたようです

1.7.0がリリースされたようで。 http://jruby.org/個人的に、以下の内容が嬉しい理由です。 Ruby1.9.3との互換 1.9での既知のエンコードに関する問題解決 invokedynamicのサポート 日々進化していますネ。 だんだんCRubyに戻れなくなります。 あとは起動時間…

Ruby/DLでWindowsのMessageBoxを呼び出す

Ruby/DLは標準ライブラリに含まれます。以下のバージョンで動作を確認しました。 Ruby-1.9.3p286 JRuby-1.7.0.RC2 # for 1.9.x require 'dl/import' module Win32 extend DL::Importer dlload 'User32' extern 'int MessageBoxA(int, char*, char*, int)' en…

JRubyのエンコードでつまづいた件

JRubyをやっていて文字コードの扱いがCRubyと異なるんです。 サンプルを載せてみました。以下のバージョンで試しています。 Ruby 1.9.3p194 JRuby1.7.0.RC2 JRubyとCRubyでのエンコード扱いの違い # coding: utf-8 puts DATA.read.encoding __END__ 日本語で…

ちょー簡易な電卓を作ってみました

勉強がてら電卓を作ってみました。 計算機能はevalに任せてしまった安易なものです。いまさら電卓のサンプルなんて作ってもあまり新鮮味はないですが。。。 それでもやっぱり一度は作っておかないとネ。 require 'rubeus' Rubeus::Swing.irb JFrame.new "den…

JEditorPaneでswingブラウザを作ってみましたが。。。

JEditorPaneを覚えたので、ちょー簡易ブラウザを作ってみました。 require 'rubeus' Rubeus::Swing.irb JFrame.new "swing browser" do |f| f.layout = BoxLayout.new :Y_AXIS JPanel.new do |p| p.layout = BoxLayout.new :X_AXIS JLabel.new "Site: " @url…

JEditorPaneのハイパーリンクから外部ブラウザを起動する

JEditorPaneはHTML形式を表示させるのに便利です。 ここでは、ハイパーリンク表示とハイパーリンクをクリックした時にOS既存ブラウザを起動するコードをメモします。↑リンクをクリックするとブラウザが起動しリンクを表示します。ソースコードはこちら。 req…