CLOVER🍀

That was when it all began.

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

Javaで指定のバイト数以下に、文字列を切り捨てる

ちょいと仕事で、「指定のバイト数以下に文字列を切り捨てたいんだけど」みたいな話がありまして。文字数じゃなくて、バイト数。なんでそんなことしなくちゃいけないのかなぁと思いつつも、実際にやったらどういうコードになるかなぁ?と思って、せっかくな…

Ubuntu Linux 12.04 LTSに、Node.jsをインストールした?

とある理由で、Node.jsのbeautiful-docsというモジュールを使いたくて、Node.jsをインストール。環境は、Ubuntu Linux 12.04 LTS。最初はapt-getでやってみたんですけど、うまくいかなくてこちらのページの手順でリトライ。 http://stackoverflow.com/questi…

Re: Clojure/lucene-kuromojiでテキストマイニング入門 〜形態素解析からワードカウントまで〜

過去のエントリを、リライトしたエントリです。以前、こちらのエントリを見てClojure/kuromojiでテキストマイニング入門 〜形態素解析からワードカウントまで〜 http://antibayesian.hateblo.jp/entry/2013/09/10/231334素のKuromojiを使って形態素解析をし…

統計解析ツールIncanterことはじめ

以前、こんなエントリを書きました。Clojure/lucene-kuromojiでテキストマイニング入門 〜形態素解析からワードカウントまで〜 http://d.hatena.ne.jp/Kazuhira/20130911/1378914422なんですけど、ぶっちゃけこの時は元の参照エントリで使っていたIncanterの…

Apache MINAで簡単SSHD

先ほど、Apache MINAのFTPサーバをご紹介しました。Apache MINAで簡単FTPD http://d.hatena.ne.jp/Kazuhira/20140308/1394254984今度は、SSHサーバです。SSHD http://mina.apache.org/sshd-project/FTPサーバは組み込みのライブラリとして使うか、スタンドア…

Apache MINAで簡単FTPD

Apache MINAに、FTPサーバとSSHサーバがあり、けっこう簡単に使えるそうな。テスト用途とかであると便利そうなので、試してみることにしました。まずはFTPサーバから。Apache FtpServer http://mina.apache.org/ftpserver-project/MINAといえばNIOフレームワ…

Clojure Reducers

かなり久々のClojureネタです。以前から、試してみたいと思いつつ放っておいた、ClojureのReducersについて。http://clojure.org/reducersAPIドキュメントは、このあたりから。http://clojure.github.io/clojure/clojure.core-api.html#clojure.core.reducer…

Scalaの-Xprintと-Xshow-phasesについてメモ

たまに使いたくなった時には忘れていて、しかもなんか調べにくいのでオプションをメモっておくことに。Scalaでは、scala/scalacコマンドなどでのASTを-Xprintオプションで出力させることができるのですが、出力させるフェーズを指定する必要があります。そ…

Scalaから、Javaのインターフェースに定義されたeq(Object)メソッドを呼び出す方法を考える

以前、こんなエントリを書きました。Scalaから、Javaのインターフェースに定義されたeq(Object)メソッドを呼び出せない? http://d.hatena.ne.jp/Kazuhira/20131215/1387109792Scalaでは、AnyRefに final def eq(that: AnyRef): Boolean というメソッドが定…

Re: Groovy: パスワード問合せシステムを作る

少し前に、話題になったこちらのエントリ。パスワード問合せシステムを作る (clojureのreducers) http://qiita.com/kawasima/items/ef75f317605ce800a839パスワードを求めようとか、JavaのString#formatが遅いとかいろいろ話題がありましたが、これのScala版…

InfinispanのRemote Queryを試してみる

Infinispan 6.0.0から追加されたHot Rod ClientでのRemote Queryですが、以前はProtocol Buffersが必要だったこともあり、ちょっと敬遠していました。で、最近になってまずはProtocol Buffersを使ってみたので、今度はRemote Queryを使ってみることにしまし…

Scalaでアノテーションの引数にアノテーションを指定する

出典、コップ本第2版P.552。Scalaでは、アノテーションの引数に直接アノテーションを書くことができません。例えば、以下のようなアノテーションを用意して src/main/java/Complex.java import java.lang.annotation.ElementType; import java.lang.annotati…

Protocol Buffersを試してみる

ちょっと理由があって、Protocol Buffersを試してみることにしました。Procol Buffers https://developers.google.com/protocol-buffers/?hl=jaこの手のシリアライゼーション系のライブラリは、ほぼ使ったことがありません。XMLとかJSONならまあ、ですが…。P…

Futureを使う時にJavaのExecutorServiceを利用する

ScalaのFutureといえば、 import scala.concurrent._ import scala.concurrent.ExecutionContext.Implicits.global をimportしてfuture関数を使うんだよみたいな話だと思いますが、Javaのjava.util.concurrent.ExecutorServiceやjava.util.concurrent.Execut…

Scala.jsで遊んでみよう

ScalaコードをJavaScriptにコンパイルする、Scala.jsというものがあるらしいです。Scala.jsを使って、ScalaをJavaScriptにコンパイルする http://www.infoq.com/jp/news/2013/06/scalajsこれを使用すると、ScalaのコードをJavaScriptにコンパイルすることが…

Scala.jsのArrayや、オブジェクトリテラルなどを使ってみる

先ほどのScala.jsのチュートリアルサンプルに加えて、JavaScriptでのArrayやリテラルなどをいくつか。とりあえず、こんな感じにimportしたとしまして。 import scala.scalajs.js import scala.scalajs.js.Dynamic.{global, literal} Array。 val array = new…

Threadのスタックトレース系のメソッド

たまに簡易的にデバッグする時に new Exception().printStackTrace(); 的なことを書くことがあるのですが、Threadクラスで似たようなことができるのを最近知りました。というか、最近知りましたネタ多いですね、このところ。Thread#dumpStack、Thread#getSta…

+:と:+でSeqに対してパターンマッチ

Scalaでパターンマッチによる分解で、よく紹介されるのはListだと思います。例えば、このような変数を定義して val xs = List(1, 2, 3) このようなパターンマッチを行います。 xs match { case 1 :: 2 :: 3 :: Nil => println("matched!!") case _ => // こ…

Scalaのアップキャスト?

とあるエントリを見て、Scalaのアップキャストっぽい構文を見て、「そんなのあったの?」ってところから。asInstanceOfがキャストと思ってましたけど、そういればこれってダウンキャストでしか使ったことないですしね…。ちょっと試してみます。REPLを起動。 …

Hibernate Search × Infinispan × WildFly

WildFlyに、Hibernate Searchが同梱されるようになったと聞き、せっかくなので試してみることにしました。Hibernate Searchが使用する、Luceneのインデックスの保存先はInfinispanとします。また、最終的にはWildFlyにCache Containerを定義して、クラスタリ…

JPAのSecond Level Cacheを試してみる

WildFlyもリリースされ、Infinispan 6.0.1.Finalが同梱されていることですので、JPA(実装はHibernate)のSecond Level Cache(以降、L2キャッシュ)を使ってみることにしました。以前にJBoss AS 7.1.1でやっていたころは、うまくいかなかったんですよねぇ……

WildFlyにXA DataSourceを登録する

WildFly 8.0.0.Finalがリリースされましたね!WildFly http://www.wildfly.org/これで、Java EE 7が始められます!やってる暇が、どれだけあるのかという疑問はありますが…。とりあえず、使い始める前にXA DataSourceくらい登録しておこうと思います。 WildF…

Scala ARMを使ってみる

少し前にScalaz Effects IOを使ったプログラムを書いてみましたが、今回はScala ARMを使ってみたいと思います。まあ、IO周りのライブラリを試してるだけですが、Scala ARMの場合はfor式を使ってリソースを扱うことができるので個人的には興味を引くのですが……

HazelcastのMapStoreを試してみる

Twitterで、「Hazelcastを家で使ってるけど、サーバを再起動するから、データはDBで持っていた方がいいな」みたいなツイートを見かけまして。簡単に済むのなら、毎回ロードするでいいのでは?と思いつつも、もうひとつの解としては何らかのストアにエントリ…

ScalaでIOを扱うには…から、Scalaz Effects IO

Scalaで、IOを扱う時のライブラリって、何がいいんでしょうね〜と思ったところから。Stack Overflowには、こんなスレッドがありました。Recommended Scala io library http://stackoverflow.com/questions/18171104/recommended-scala-io-libraryここで紹介…

実行時にクラスパスを追加する

仕事中に、ユニットテストをやっていて実行時に動的にクラスパスを追加したくなる状況がありまして、その時に使った処置。通常なら、ClassLoaderを作ってそこへのロード対象のURLを与えてどうにかするところでしょうが、既存のClassLoaderに追加したいという…

Java SE環境でCDIを使う(Weld SE)

CDI

CDIの参照実装のWeldですが、Java SE環境でも使えるんですね。どこかで聞いたことがあった気がしますが、忘れてました…。Weld http://weld.cdi-spec.org/そんなに情報はないですが、オフィシャルのドキュメントと18.4. Java SE http://docs.jboss.org/weld/r…

CDIのBeanManagerを使う

CDI

今まで@Injectとか@Qualifierとかを使ったインジェクションは少し試してきましたが、手動でBeanを取得するようなやり方はやってこなかったので、今回試してみることにしました。Seasar2でいうとS2Containerを直接使う、みたいな感じですね。CDIだと、BeanMan…

Infinispanのトランザクション設定を、いろいろ試してみる

先ほどAtomicMapを使ってみて、いくつか疑問に思ったことがあったので、InfinispanのCacheのトランザクション設定をバリエーションを並べて試してみました。やったことは、設定的には ロック戦略は楽観的、分離レベルはREAD_COMMITTED ロック戦略は楽観的、…

InfinispanのAtomicMapを使ってみる

前々から、これ何だろう?と思っていた、InfinispanのAtomicMapを試してみます。特にドキュメントには記載はありませんが、org.infinispan.atomicパッケージという存在と、たまにテストコードが更新されているので、気になってみました。 AtomicMapとは? と…