Welcome to Savarese.Org

Welcome to Savarese.Org

News

News

RSS 1.0 News Feed

2013-03-26T01 Rearrangement of Guitar Arrangements.

I split up my classical guitar arrangements into a separate page for each piece. That will make it possible to list revision changes every time I update a piece. Up to now, I have been silently updating pieces, making it impossible to know that a score has been revised.

Also, I added Preludio en Do Menor by Augstín Barrios.

2012-09-11T01 BareHTTP version 1.0.2 released.

Even though BareHTTP is little more than a toy example program for a magazine column I wrote eleven years ago and my preference is to avoid Java programs at all costs, I still find it useful for various software testing tasks. Therefore, even though the code is what I would call awful and has been relegated to the archival section of my Web site, I occasionally (as in every couple of years) fix a glaring bug that crops up.

BareHTTP version 1.0.2 has been released. This version fixes a potential problem with binary file transfers caused by using an OutputStreamWriter with the default system character encoding. HTTPSession now writes bytes to an OutputStream instead of using an OutputStreamWriter wrapper.

2012-08-10T01 Skip Lists. I added a fourth article to Blasts from the Past.

2012-05-24T01 The Trouble with Distributed Objects. I added a third article to Blasts from the Past.

2012-05-23T01 Approximation Algorithms. I added a second article to Blasts from the Past.

2012-05-19T01 Recursive Descent Parsing. I updated the first of a series of old articles in the new Blasts from the Past section of the Web site.

Latest Articles

Quill icon

2012-08-10 Skip Lists

Sorting 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 Comparable and Comparator interfaces. If you cannot determine the natural ordering between two objects, you cannot sort a collection of objects. The Comparable interface allows an object to control its ordering by implementing the compareTo(Object) method. The Comparator interface allows you to implement a compare(Object,Object) method that returns the ordering of an arbitrary pair of objects that may not have been designed with ordering in mind.

Read full article

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.

Read full article

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.

Read full article

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.

Read full article