The First Cry of Atom

First Ever Presto Conference in Tokyo

In the last month, we have held a Presto conference in Tokyo at our office. That is the first-ever Presto conference gathering Presto developers in the Japanese community. While I’ve written a report in the official blog of, I neglected to write down my thought on this blog. This is the article to describe the impression I had a... Read more

Inspect Presto connection with Charles

Seeing the unseen is the fundamental principle in debugging for software. The exchange of data between processes through the network is not visible literally. We often encountered the case when we need to inspect the data transmitted between multiple processes for debugging. SSL/TLS connection is one of the famous examples where it is difficult... Read more

Bitshift to 64 bit in Java

Bitwise operation sometimes looks like magic. There is a bunch of sophisticated techniques to manipulate the value at the bit level. Bit shift operation is one of these operations. You can shift the bit sequence of the given value by using shift operators which are commonly described as >> or << in many programming languages. But do ... Read more

How to construct LL(1) grammar of arithmetic operations

While I read a compiler book, I have struggled to understand the reason why the arithmetic operations are expressed as follows. add = mul add' add' = ε add' = "+" mul add' add' = "-" mul add' mul = term mul' mul = ε mul' = "*" term mul' mul' = "/" term mul' term = <num> term = "(" add ")" That must be easy to understand those who are ... Read more

Idempotency key in the Stripe Ruby SDK

A system may fail anytime even while doing something should not fail. The common pattern to recover that sort of failure is retrying. While retrying is simple, it’s a powerful way to make a system reliable and worth considering. Actually, many operations across the network which can fail temporarily are able to be recovered by retrying. But here... Read more