The First Cry of Atom Today is the first day of the rest of my life.

DB Migration with Flyway

Now database migration should be managed under version control system. Every database schema can be changed through time. If we don’t track this, it must be difficult to rollback or test. We often use ActiveRecord as migration script because it is database agnostic and easy to write. But Ruby script is not the best choice when we are developing... Read more

Simple side effect by forEach in Java 8

As you know, Java 8 provides lambda expression and stream API. forEach is one of the them. List<String> a = ImmutableList.of("a", "b", "c"); a.forEach(s -> { System.out.println(s); }); Having side-effect in lambda expression is not recommended because it can be a hinder against thread-safe. For example we sometimes want to add elem... Read more

Backpropagation Through Time

Neural Networkにおいて最適化の中心を担うのはBackpropagation(誤差逆伝播法)ですが、Recurrent Neural Networkではどのように計算されるのかよくわからなかったので、まとめてみました。 モデル 最もシンプルなRNNを考えます。入力はx(0), x(1),...,x(t)の系列でそれぞれが多次元ベクトルです。 このときこのRNNの出力は下記のように記述されます。とはそれぞれsigmoid関数などの非線形な活性化関数とします。現在の隠れ層の入力は現在の入力と一つ前の時刻の隠れ層の値にそれぞれ重みをかけ、バイアスを加えたものになります。これに活性化関数を通したものが隠れ層の出力になります。 \begin{equation} \bold... Read more

Async*Spec in Scalatest

When I wrote a test for Finagle, I found it didn’t work as expected. Scalatest didn’t check assertion properly asynchronously like Future. From Scalatest 3.0, we can test in async style. It means we can assert the result returned from Future. There are some abstract classes for the purpose. AsyncWordSpec, AsyncFunSuite, AsyncFunSpec, AsyncFlatS... Read more

Attending IMCS EU 2017

Have you heard about In-Memory Computing Summit (IMCS) before? I had not. When I searched a conference that is appropriate to submit talk proposal, I found it. IMCS EU Though I don’t have any experience to talk in overseas, my CFP was accepted. So this time, I came to Amsterdam, Netherland. IMCS is the conference about in memory computing a... Read more