Amusing log message
Some of us found this (a little too) amusing: [pool-http-jetty-exec-thread-3] 20100122140052,WARN,com.kaching.trading.core.BalanceCalculation$1, missing price for stock AAGH on portfolio [elided] com.kaching.trading.core.StockMissingException: AAGH @ 01/22/2010 at com.kaching.trading.core.PositionMetrics.getPositionValues(PositionMetrics.java:265) at com.kaching.trading.core.PositionMetrics.getLongPositionValues(PositionMetrics.java:251) at com.kaching.trading.core.PositionMetrics.getAggregateLongValue(PositionMetrics.java:274) at com.kaching.trading.core.PositionMetrics.getTotalValue(PositionMetrics.java:286)
Complement TDD with MDA
Test Driven Development (aka TDD) is on the rise. Good developers understand that code with no proper testing is dead code. You can’t trust it to do what you want and its hard to change. I’m a strong believer in Dijkstra’s observation that “Program testing can be a very effective way to show the presence… Read more
Actually Implementing Group Management Using ZooKeeper
ZooKeeper offers, in the words of its documentation, “off-the-shelf… group management”. The “off-the-shelf” part is inaccurate; it really offers the proper primitives to *implement* group management, but it’s up to you to fill in a few missing pieces. I’ll be describing one type of group management system I built at KaChing using ZooKeeper: A group… Read more
Flexible Log Monitoring with Scribe, Esper, and Nagios
If you have yourself a pretty decent sized cluster, there’s probably a good chance that you’ve had the following experience: One day, while routinely browsing some server logs, you stumble upon some concerning entries that you wish you had been made aware of sooner. You could probably go back and write some custom scripts that… Read more
Subversion Backup
Yes, we’re using Subversion. I know that distributed version control systems (e.g. Git) are cool and we might get there sometime, but for misc reasons we’re still using SVN. For the records, some of us are using GIT-SVN and we’re working and releasing from trunk (part of a the lean startup methodology) so the branching… Read more
Attaching a Java debugger to the Scala REPL
I’m using the Scala REPL to play around with java libraries and check their runtime behaviors. One of the things I’m using it for is to check how Voldemort’s client is behaving in different setups. For one of the checks I wanted to trace the client threads with an IDE debugger. To attach a debugger… Read more