覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

2017-01-01から1ヶ月間の記事一覧

特定のアノテーションが付与されたクラスを実行時に抽出したい

Javaアプリケーションの処理内で、特定のパッケージ配下にあるクラスの中で、指定の条件を満たすものを抽出したい場合があります。 例えば、アプリ実行中に特定のアノテーションが付与されたクラスを探したい 等がこれに該当します。 このような場合、FastCl…

Guice - Listに名前を付けて@NamedでInjectionしたい

Guiceを使っている場合に@NamedでListに名前を付けて依存関係を解決するサンプルです。 今回のサンプルではList<String>の値に sample.list という名前を付けてInjection出来るようにします。 依存関係を記述 ■ListがInjectionされるクラス コンストラクタで@Named </string>…

GitHubでJavaの流行ってそうなライブラリを探す

私が、Javaの有用そうだったり流行ってそうなライブラリをGitHubで探す時の手順です。 (完全に個人的なやり方です) ■Trendingを確認する Trending Java repositories を確認します。 ページにアクセスすると、以下のような内容が表示されます。ここに新し…

size=1のListのメモリサイズってどの程度

先日、Arrays#asListで生成されるArrayListについてのエントリを書きました。 そのエントリ書いた後に、ふとメモリサイズの違いもあるかなと思ってJOLで測定してみました。 対象 生成するList 今回は条件を単純化して、生成するListを以下内容にしています。…

Gitでタグ付けたり消したり

コマンドラインでGitのタグを付けたり削除したりする方法 タグを付ける ローカルでタグを付けて、その変更をリモートにpushするという流れになります git tag {TAGNAME} git push origin {TAGNAME} リモートのタグを削除する ローカルでタグを削除して、その…

Arrays#asListで生成されるList

JavaでListをリテラルに記述して生成する方法が基本的にないので、文字列List等を作る際には基本的にArrays#asListを利用することが多いです。 ただし、Arrays#asListによってに生成されるクラスはArrayListという名前ですが、 いわゆるjava.util.ArrayList…

日時オブジェクトのサイズをJOLで確認してみる

以前、JMHで現在日時取得のベンチマークを取得してみました。 今回は色々な日時オブジェクトのメモリサイズをJOLで確認してみます 対象 今回の測定対象とするクラスは以下です java.util.Date java.util.Calendar java.time.LocalDateTime java.time.LocalDa…

Guava 21.0 がリリースされてた

Guavaの21.0がいつの間にかリリースされてました。 Release21 · google/guava Wiki · GitHub 今回からJava8必須になったようです。 色々変更があったようなので簡単に(ごく一部を)試してみます。 準備 pom.xmlに以下を追記します <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version></version></dependency>…

ND4J - Scalaで行列の演算

前回のエントリでND4Jを利用して、Javaプログラムでの行列の演算を試しました 今回は行列の演算をScalaから実行してみます。 準備 開発はsbtを用います。 build.sbtに以下を追記します libraryDependencies ++= Seq( "org.nd4j" % "nd4j-native-platform" % …

PostgreSQLでSQLの実行時間を計測する

psqlで以下コマンドを実行することで各SQLの実行時間を計測できます \timing 実行すると Timing is on. と出力されます SAMPLEDB=> \timing Timing is on. コマンドを実行した後、SQLを発行すると以下のように実行時間が出力されます SAMPLEDB=> select coun…

「<インターネット>の次に来るもの 未来を決める12の法則」

「<インターネット>の次に来るもの 未来を決める12の法則」の気になった部分の抜粋です。 すごく面白い本です。正直言ってこのブログエントリ見ても何のこっちゃでしかないので、実際に書籍を読まれることをお勧めします。 〈インターネット〉の次に来るもの…

PostgreSQLでindex作ったり削除したり

PostgreSQLでのindexの作成方法や削除方法など indexの作成 以下の構文でできます CREATE INDEX {index名} ON {Table名} ({Column名}); これにより作成されるindexの種類はbtreeになります。 ■実行例 SAMPLEDB=> CREATE INDEX sampletbl1_column1_idx ON sam…

Linux - bashワンライナーループ

bashのワンライナーループは何だかんだでよく使うので、ここからコピペする目的のためメモです。 基本的に以下で実行できる for i in {1..<end>} ; do <something command> ; done 10回コマンドを実行するなら以下 for i in {1..10} ; do <something command> ; done 例えば10個のディレクトリ(dir1~di</something></something></end>…

ND4J - 行列の演算

前回のエントリでND4Jを利用して、ベクトルの演算を試しました 今回は行列の演算を試してみます。 各種演算 行列の和 行列と行列の足し算です。 ■サンプルコード import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.factory.Nd4j; INDArr…

ND4J - ベクトルの演算

前回のエントリでND4Jの利用準備をして、ベクトルと行列の定義だけしてみました 今回はベクトルの演算を試してみます。 各種演算 ベクトルの和 ベクトルとベクトルの足し算です。 ■サンプルコード import org.nd4j.linalg.api.ndarray.INDArray; import org.…

ND4J - Javaでベクトルとか行列を定義する

Javaでディープラーニングを試そうと思った場合に、名前があがっているライブラリはDeeplearning4J一択な気がします、現状は。 そのDeeplearning4Jの内部で使用されているのが、ND4J(N-Dimensional Arrays for Java)です。 ND4Jは、行列等のN次元配列を簡単…

Javaで仮想ファイルシステムを作る時に考慮すべき点

以前のエントリで仮想ファイルシステムを構築するためのfuseと、fuseからJavaにブリッジするためのfuse-jnaについて紹介しました。 実際にfuseとJavaを使って仮想ファイルシステムを構築する際に気にすべきポイントや懸念点があります。 それについてメモし…

Scala - IntelliJ IDEA上でsbtを用いて実行可能jarの生成

前回のエントリでIntelliJ IDEAでsbtを利用したScalaの開発を行う環境を整えました。 その際には、sbtのpackageを実行してjarの生成を行いました。ただし、生成されるjarはFat Jarではありません(依存する各種jarは含んでいない)。 本エントリでは、sbt-as…