Home About
改良版) Rhino を使って Java から JavaScript を実行する

Rhino を使って Java から JavaScript を実行する から、さらにあれこれ試していて多少進捗があったので、 現在までに得た見地をまとめます。

» Read More
Rhino で console.log() したい

Java から evaluateString する形で javascript コードを実行する場合に Node.js のように console.log() したい、という場合の解決方法.

» Read More
java.util.Timer を使って、連続で発生するイベントが小休止のときを見計らって処理する

手書きのタブレット向けアプリで、ペンの入力が連続して発生するのだが、そのたびに保存処理を行うと作動が重くなる。 そこで、ちょっと入力が止んだそのスキを見計らって、保存処理を実行するようにしたい。 そのための java.util.Timer と TimerTask の使い方のメモ。
例によってコードはすべて Groovy です。

» Read More
Rhino で Java 側でつくった配列クラスを使う

カスタムオブジェクトを Java側でつくって JavaScript であれこれしたい場合で、 そのカスタムオブジェクトが配列的なクラスの場合 list[0] のようにアクセスしたときに意図した値を返す方法.

» Read More
Rhino を使って Java から JavaScript を実行する

今更な話題ですが 将来 nashorn (JEP 335: Deprecate the Nashorn JavaScript Engine ) が廃止になるらしい.
nashorn の代わりに Rhino で実行する方法を調査したのでメモします.

» Read More
Apache Batik SVG Toolkit による SVG から PNG への変換

単に SVG を PNG に変換したいだけならば、 たとえば inkscape コマンドがあれば簡単にできる。 ただ、今回は諸事情により 画像変換だけでなく、さまざまな加工処理を連続して行いたかったので、 Groovy でそれらをまとめて処理することにした。

» Read More
MapDB に PDF を保存する、そのために PDFデータを Base64 文字列に encode したり decode したりの話

別に PDF データに限らず Binaryデータを Base64 で文字列にして保存するという話。 時々必要になるがその度にあれどうするんだっけ、となるのでここにまとめておきます。 Groovy の LeftShift Operator (<<) を IO 系のコードで使うと直感的にわかりやす過ぎなのでおすすめです。

» Read More
MapDB: Javaアプリケーションでちょっとしたデータを保存しておきたい場合に便利

アプリケーションでデータをキャッシュして再利用したい。 たとえば、 Mongo などを使えばそれを実現できるけれど、 UNIXのDBMのような、キーとバリューのセットを保存しておきたいだけなので、 もっと簡単に済ませたい。

» Read More
Haskell の zip に相当する groovy の transpose が便利

2つのリストをつなぎ合わせたリストをつくる Haskell の zip 相当の機能は、Groovy では transpose で実現できます。

» Read More
Groovy で画像処理、普段使いのスクリプト その2( 回転 )

Groovy で画像処理、普段使いのスクリプト その1 に続き その2 画像回転をやってみます。

» Read More
Groovy で画像処理、普段使いのスクリプト その1( リサイズ/グレースケール/JPEG/切り抜き/2in1 )

普段ターミナル中心に bash と vim で仕事をしている身としては ちょっとした画像処理は いちいち Photoshop や GIMP を起動するより groovy スクリプトでちゃっちゃと済ませてしまいたいところです。

今回はそれら普段使いのちょっとした画像処理用コードをいろいろ書いてみます。 ここではこのとてもおいしそうな ポンシェのホワイトドーナツ 画像を例に いろいろ料理してみましょう。

» Read More
Java でパイプを使う / 複数の変換処理をつなげて処理する

Javaでパイプする方法がよくわからなかったので、いろいろ試行錯誤した結果をまとめました。 Javaで書くとコードが長くなるので、Groovy で記述しています。

» Read More