2012-01-01から1年間の記事一覧

Rakefileでg++コンパイルするとき、.oファイルを別ディレクトリにする

g++コンパイルするとき、".o"ファイルがソースと同じディレクトリにあるのがあまり好きではありません。 そこで、.objdirというディレクトリを作成し、そこに".o"や".mf"を置くようにしたいと思います。 CXX = "g++" CFLAGS = "-O2 -Wall" LIBS = "-lm" TARG…

Rakefileでg++コンパイルするとき、ヘッダファイルの依存関係をインポートしてみる

Rakefileは便利なのでg++コンパイルでMakefileの代替になればと思い、いろいろ模索中です。 ひとまず、簡単なメイクは作れるようになってきたところです。 で、問題が1つ浮上。 これまでMakefileでヘッダファイルの依存関係を定義(-MM)していましたが、それ…

Vine6.1でrmagickがインストールできない時

Vineをメインで使っているわけではないのですが、どうしてもVineじゃないとインストール出来ないエンベPCがあって、そこにRedmineサーバをたてようと思ったんだけど、rmagickがうまく入らなかったんです。 でも、なんとかインストールできたので、その対処方…

Rakefileでg++コンパイルするとき、ヘッダファイルの依存関係をインポートしてみる

Rakefileは便利なのでg++コンパイルでMakefileの代替になればと思い、いろいろ模索中です。 ひとまず、簡単なメイクは作れるようになってきたところです。 で、問題が1つ浮上。 これまでMakefileでやっていたヘッダファイルの依存関係を定義していましたが…

Vine6.1でrmagickがインストールできない時

Vineをメインで使っているわけではないのですが、どうしてもVineじゃないとインストール出来ないエンベPCがあって、そこにRedmineサーバをたてようと思ったんだけど、rmagickがうまく入らなかったんです。 でも、なんとかインストールできたので、その対処方…

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…

Ruby-FFIでODEを動かす実験4

それっぽくなってきました。 細かいところでおかしなところありますが、当初イメージしていた形に近づいてきています。 とりあえず動いています。 require 'ffi-ode' require 'ffi-draw_stuff' ODE.dInitODE @world = ODE::World.new do |w| w.gravity = [0,…

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

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

Ruby-FFIでODEを動かす実験4

それっぽくなってきました。 細かいところでおかしなところありますが、当初イメージしていた形に近づいてきています。 とりあえず動いています。 require 'ffi-ode' require 'ffi-draw_stuff' ODE.dInitODE @world = ODE::World.new do |w| w.gravity = [0,…

Ruby-FFIでODEを動かす実験3

drawstuffについてメモします。 まだ、構想中ですが、drawstuffを以下のように書ければ記述がすっきりすると思っています。 #構想中 require 'ffi-draw_stuff' DrawStuff.simulation do |fn| fn.size = "600x400" fn.path_to_textures = "../textures" fn.st…

FFIにてRuby引数をC引数に変換してみる

ODEのdsSimulationLoopの引数に渡すため、文字列のArrayをC引数として扱うためには変換が必要です。 色々試して、とりあえず以下の方法なら渡せそうなのでメモします。 require 'ffi' @args = [$0, "-notex"] @argv = FFI::MemoryPointer.new :pointer, @arg…

Ruby-FFIでODEを動かす実験

Ruby-FFIでODE(Open Dynamics Engine)を試してみました。 最近、ODEの話題がめっきり減っている感じですが、ODEのサイトをのぞいてみるといつの間にかバージョンがode-0.12に上がっていました。 メンテナンスされているのは嬉しく思います。 さて、久しぶり…

Ruby-FFIでODEを動かす実験2

ODE付属のdrawstuffもFFIで動かしてみました。試した環境は、 ruby 1.9.3p194 @ CentOS on VMWare) jruby 1.7.0 @ Windows linuxでのコンパイルの場合、drawstuffの動的ライブラリは通常は生成されないので、工夫が必要です。 require 'ffi' module DrawStuf…

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…

RSSを読み込んでみる

Rubyの標準ライブラリの'RSS'を使ってみました。 require 'rss' #$stdout.set_encoding('cp932') url = 'http://d.hatena.ne.jp/diarylist?mode=rss' result = RSS::Parser.parse(url) p result.feed_info puts "Channel: " + result.channel.title result.i…

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

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

JTextAreaとJTextFieldのサンプル(不具合対応あり)

Rubeus練習のため、テキストフィールドに文字列を打ち込んでEnterキーを押したらテキストエリアに貼り付ける、といった簡単なプログラムを作ってみました。ソースコードはこちら require 'rubeus' Rubeus::Swing.irb JFrame.new do |frame| frame.layout = B…

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…

RSSを読み込んでみる

Rubyの標準ライブラリの'RSS'を使ってみました。 require 'rss' #$stdout.set_encoding('cp932') url = 'http://d.hatena.ne.jp/diarylist?mode=rss' result = RSS::Parser.parse(url) p result.feed_info puts "Channel: " + result.channel.title result.i…

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

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

JTextAreaとJTextFieldのサンプル(不具合対応あり)

Rubeus練習のため、テキストフィールドに文字列を打ち込んでEnterキーを押したらテキストエリアに貼り付ける、といった簡単なプログラムを作ってみました。ソースコードはこちら require 'rubeus' Rubeus::Swing.irb JFrame.new do |frame| frame.layout = B…

JTableにてExcel風の行ヘッダ付きテーブルを作ってみました

SwingのJTableは、デフォルトでは列ヘッダは付きますが行ヘッダが付きません。 Excelのように行ヘッダ(1,2,3,4...)を付けるサンプルを作成したのでメモします。意外と情報が無かったんですが、実際ソースにしてみると結構シンプルに書けました。 require 'ru…

JRubyもうそろそろ1.7.0リリースか

みたらJRuby1.7.0.RC2がリリースされています。 RC1がついこの間だったので、もうそろそろ1.7.0が正式リリースの予感です。