Bidirectional bindings are a useful means of keeping two values synchronized. When creating interactive visualizations, a property of a GUI element often depends on a model property and vice versa. This article shows how two properties of different types can be bound bidirectionally and what pitfalls to avoid.
When creating interactive programs, caching computational results can help to improve performance. In this short post I present a simple java pattern that helps to keep the code organized and correct.