Tech blog

A place where I occasionally post articles or notes related to my profession of a software engineer.

TCP keep-alive mechanism is not meant to keep TCP connections alive
Actual rows reported by PostgreSQL's explain analyze is not the number of rows in the set computed by a node
Parallelism vs. concurrency
Making Java app behavior consistent in different environments
Directory vs directory service vs naming service vs LDAP vs JNDI
Consider using an array with value_expression in (select unnest(?)) instead of issuing SQL statements in a batch or building dynamic statements
An amateur talks about measuring performance
A pitfall with asynchronous incremental logical data replication
Decoding Apple App Store receipts (PKCS #7, ASN.1) in Java
Using SLF4J MDC across threads
Race condition vs. data race
Java final field semantics
Identification vs. authentication vs. authorization
Disambiguating "now" and "immediate"
Charset vs. encoding
Pitfalls with JDBC PreparedStatement.setTimestamp/ResultSet.getTimestamp
Pitfalls with UserTransaction.setTransactionTimeout
Stopwatch
3D Billiards