Wednesday, August 29, 2007

Good book: "Programming Collective Intelligence"

This book is a great introduction to the techniques that I use almost daily in my own personal research and work for customers, and I can recommend it without reservation. The choice of Python for the examples is not optimum for me, but OK, especially because the techniques in the book for machine learning, categorization, clustering, filtering, optimization, support vector machines, etc. are mostly short and can be used as is or converted to whatever programming language that you need to use. The data used to present the book material is mostly from collaborative web sites. The book relies heavily on existing Python libraries and I like this approach since it mirrors rational software development practice: build custom code on top of existing libraries and software tools. Good book!

Saturday, August 25, 2007

Gambit-C Scheme 4.0 final released today

Gambit-C Scheme 4.0 is now available with pre-built binaries (or build from source code). Mac OS X and Windows versions are available with the OS X compiler generating fat universal, PowerPC, or Intel code.

When I use Scheme, I use MzScheme/DrScheme slightly more often than Gambit-C Scheme because of the existence of more 3rd party libraries, but Gambit-C Scheme compiles faster applications and the Snowfort library site now has many canned libraries for Scheme development. Good stuff!

Friday, August 10, 2007

Erlang 'mindshare'

I bought Joe Armstrong's new Erlang book as a beta PDF early this year and have been enjoying the material (the book is now in print). Erlang definitely has a lot of hacker mindshare but I have been unable to convince my customers to use it (so far). This may be a generalization, but those of us who love to program in Prolog are very likely to also enjoy working with Erlang. Erlang is certainly a great tool but I think it is unlikely to be very popular for two reasons: it does not provide instant gratification like Ruby on Rails and there is no large company promoting it (e.g., like Sun, IBM, etc. promote Java). That said, Erlang has a great open source community behind it and learning Erlang is very worthwhile if you occasionally need scalable applications. A comparison with Java is interesting: Java (especially with the new concurrency support in JDK 6) scales well on single servers with large numbers of cores while Erlang probably has the advantage when scaling to multiple servers.

Wednesday, August 01, 2007

Franz Allegro Common Lisp 8.1 has been released

I just received the 8.1 update from Franz yesterday afternoon, and there are several nice changes/updates, including:
  • New versions of read-line that do much less consing
  • Improved jLinker Java bridge
  • Improvements to Common Graphics (I don't have a license for this so I could not try it)
  • AllegroGraph Free Lisp Edition: limited to 50 million RDF triples - I had asked for this and I think that it is a good idea to let people experiment for free with small Semantic Web applications. The full 64 bit version of AllegroGraph is designed for very large stores of relatively static data (almost everything in an AllegroGraph triple store is indexed by default for fast lookups, so inserts and modifications are more expensive computationally).