my notebook blog : java

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

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

continue reading……

Word2Vec, 単語ベクトルを2次元でマッピング

word2vec 2d map

Javaで学ぶ自然言語処理と機械学習」という本で紹介されていた Wikipedia でトレーニング済みの単語分散表現データが便利。 このデータの活用例として日本のブランドのマップを作成してみた。

ちなみに、この手の 単語ベクトルを2次元まで圧縮して2D表示的な話は Qitta をはじめあちこちで散々出ているネタですが、自分用メモおよび Ubuntu 18.04 の人および Java で機械学習やりたい人の参考になればと思いシェアします。 もっとも肝心の 2D マップ変換は 普通に Python です。

continue reading……

Nashorn, AbstractJSObject を使って JS Array っぽいオブジェクトをつくって使う

Java8 からは Rhino に変わって Nashorn を使って Javascript を実行することができます。 Binding 機能を使えば、Javascript から Java 側で作成した自前のオブジェクト利用することも簡単です。

そこで、この機能を使っていろいろと実験をしているのですが、少し困った問題が出てきました。 Java の ArrayList オブジェクトを Nashorn に Binding して使う場合、 こちらとしては、Javascript の Array オブジェクトと同じように振る舞ってほしいのですが、 それとは微妙に作動が違うのです。

これを解決するためにいろいろ方法を探したのですが、どうやらAbstractJSObject を使って、 Javascript の Array オブジェクトと同じように振る舞うオブジェクトを実装すればよいようです。

continue reading……

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

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

ここでは話を簡単にするために、最初の入力として以下のような果物名を列挙したデータがあり、 これを二つのフィルタを使って処理する例を考えます。

melon lime lemon raspberry cherry kiwi banana apple orange grape

continue reading……

HttpClient から URLConnection への切り替え ( Android )

すでにこの世は Android 8.0 OREO 時代なのですが、 Android 6.0 Changes の Apache HTTP Client Removal で、Apache HTTP Client が削除されたという件に今さら直面した話。

Eclipse時代のビルドのままになっていた Android プロジェクトを最新のSDKでビルドしようとしたら Apache HTTP Client が使えなくなっていた。 調べてみると 代わりにURLConnection を使え ということのようなので、いろいろ実装を直した結果の一部を備忘録的にシェアします。

continue reading……

Java のパッケージ名を xargs と sed を使って別のパッケージ名に一括書きかえする

Eclpse などの IDE を使っていれば、Java パッケージ名の変更は簡単にできますが、 ここではターミナル上でさっと変更する方法をメモしておきます。

vim などでターミナルベースで Java のコードを書いていると、 いちいち IDE を起動するのは面倒なので、ターミナル上だけで操作が完結するこの方法は意外に重宝します。

continue reading……


Older Posts »