Savarese.Org: Of Music, Games, Science, and Software
Sekigahara Unofficial Rules Clarifications
Sekigahara is a fast-playing light wargame (arguably almost a themed abstract game) designed by Matt Calkins and published by GMT Games. The game recreates in abstract terms the conflict in 1600 that led to the unification of Japan under the Tokugawa Shogunate. Its rules are short and largely straightforward, but remain unclear on a few points that players have interpreted inconsistently. The following rules clarifications address issues that arose during my first playing of the game. The determinations are based on answers the designer has given in response to player questions on public forums.
Agustín Barrios composed Las Abejas in 1921, the same year he wrote La Catedral. Although the piece is classified as a study and it is said that Barrios rarely performed it for audiences, the song has been recorded and performed by modern artists almost as much as La Catedral. Paquito D'Rivera's arrangement of Las Abejas for his jazz group is a testament to the popular appeal of the song outside the world of classical guitar.
La Catedral is perhaps Agustín Barrios's best known and most played composition. Even though La Catedral is one of Barrios's early works (written in 1921), it didn't assume a final form until the last years of Barrios's life, when the Costa Rica (1939) and El Salvador (1943) manuscripts were written. Throughout his career, Barrios evolved how he played La Catedral, adding and removing parts, changing fingerings, and renotating entire movements. As a result, you will find that nobody plays it exactly the same way, depending on which transcription they are working from and how their preferences shape the bits they incorporate or omit to create their own unique renditions. Part of the joy of listening to or performing La Catedral is the variety of arrangements and interpretations it makes possible, providing something new to discover each time it is played.
2012-08-10 Skip Lists
continues to be one of the most common operations performed by
computer programs. Java programs are no exception. The Collections
Framework recognizes the fundamental need for ordering computer
data by providing the
Comparator interfaces. If you
cannot determine the natural ordering between two objects, you
cannot sort a collection of
allows an object to control its ordering by implementing the
allows you to implement
compare(Object,Object) method that
returns the ordering of an arbitrary pair of objects that may not
have been designed with ordering in mind.
2012-05-24 The Trouble with Distributed Objects
The benefits of object-oriented programming do not translate from shared-memory programming to distributed programming. It's time we face up to this problem and look for ways to resolve it. Web services may facilitate integration and interoperability, but they don't do much to let you specialize component behavior to meet application-specific requirements. If you work with distributed object or service component frameworks on a daily basis, you may feel that it is much too hard to build systems that do exactly what you want done and do it exactly how you want it done. I have felt this way for years. Let me explain why.
2012-05-23 Approximation Algorithms
Programming is often more about writing business rules and less about implementing, or even inventing, algorithms to solve problems more efficiently. Programming involves using a third-party API or designing an API more than it involves devising data structures that make optimal use of available system resources. Enterprise development is concerned more with systems integration than systems optimization. Perhaps programming is now less about computer science and more about software engineering—if the two can even be considered separately.
2012-05-19 Recursive Descent Parsing
Even though XML provides a versatile information representation structure, it is not appropriate for use by all applications. Sometimes information is expressed more appropriately in a form as close as possible to its natural representation. For example, even though mathematical expressions can be encoded in XML, it is more natural to define a grammar for parsing mathematical expressions if you are writing a calculator or spreadsheet program.