RSS Feed

New Adventures in Software


Programming the Semantic Web and Beautiful Data

Posted in Books by Dan on June 27th, 2009

As I’ve mentioned previously, I’m a big fan of Toby Segaran‘s book Programming Collective Intelligence. It introduces several cutting-edge algorithms for building intelligent web applications through a well chosen set of compelling example programs . A different author might have made the book a dull, overly mathematical ordeal but Segaran manages to inspire the reader to find ways to apply these exotic techniques in their own projects. I was therefore interested to discover that he has since collaborated on two new books that will both be released in July.

Programming the Semantic WebFor Programming the Semantic Web, Segaran has teamed up with Colin Evans and Jamie Taylor. I was unable to find a table of contents for this book but the publisher’s blurb suggests that it will follow the same pragmatic, hands-on formula that worked so well for Programming Collective Intelligence:

With this book, the promise of the Semantic Web — in which machines can find, share, and combine data on the Web — is not just a technical possibility, but a practical reality. Programming the Semantic Web demonstrates several ways to implement semantic web applications, using existing and emerging standards and technologies. With this book, you will learn how to incorporate existing data sources into semantically aware applications and publish rich semantic data.

Programming the Semantic Web will help you:

  • Learn how the semantic web allows new and unexpected uses of data to emerge
  • Understand how semantic technologies promote data portability with a simple, abstract model for knowledge representation
  • Be familiar with semantic standards, such as the Resource Description Framework (RDF) and the Web Ontology Language (OWL)
  • Make use of semantic programming techniques to both enrich and simplify current web applications
  • Learn how to incorporate existing data sources into semantically aware applications

Each chapter walks you through a single piece of semantic technology, and explains how you can use it to solve real problems. Whether you’re writing a simple “mashup” or a maintaining a high-performance enterprise solution, this book provides a standard, flexible approach for integrating and future-proofing systems and data.

Beautiful DataToby has clearly been keeping himself busy because he’s also found time to co-edit the latest installment in O’Reilly’s Beautiful Code series. In 2007 the original Beautiful Code book presented an eclectic mix of 33 essays about elegance in software design and implementation, each written by a different well-known programmer. The success of this anthology has resulted in O’Reilly issuing three companion volumes in 2009: Beautiful Architecture, Beautiful Security and the forthcoming Beautiful Data: The Stories Behind Elegant Data Solutions (edited by Toby Segaran and Jeff Hammerbacher).

Beautiful Data follows the same format as the other books in the series, with each chapter authored by different expert practitioners. One of these chapters covers the making of the video for Radiohead’s House of Cards single, while another is about data processing challenges faced by NASA’s Mars exploration program.

Clearly I haven’t read either of these books because they are not available yet, so I can’t make any informed recommendations, but they do both look like they could be interesting.

SICP – The most divisive book in Computer Science?

Posted in Books by Dan on May 28th, 2009

Structure and Interpretation of Computer Programs (universally referred to as SICP) seems to be mentioned whenever people are discussing the great/classic/essential Computer Science books.  It typically generates a mixed response.

Somebody recently sent a copy (anonymously?) to Python creator Guido van Rossum, apparently as a comment on his supposed ignorance (incidentally, this is an incredibly arsey thing to do).

It seems that SICP is a real love-it-or-hate-it kind of book.  Depending on who you listen to, it’s either a mind-bending classic through which true enlightenment can be achieved, or it’s dull, obvious and poorly written.

The distribution of the reviews for SICP on Amazon (UK) is striking:

Amazon SICP reviews

If you haven’t already read it, you can decide for yourself.  The whole thing is available online.  I didn’t get very far the one time I started to read it.  I quickly got bored with the introductory stuff, but I intend to give it another go sometime.  I’ve seen several people recommend the associated video lectures, which may be a better entry point.

Java Power Tools

Posted in Books,Java by Dan on October 13th, 2008

I’ve been keen to take a look at John Ferguson Smart‘s Java Power Tools since I first found out about it.  Fortunately, it has just been added to the ACM’s online books programme so, as an ACM member, I’ve been able to read it online.

The book consists of 30 chapters, each dedicated to a different development tool.  Build tools, version control, continuous integration, testing, profiling, static analysis and issue-tracking are among the topics covered.  For most tasks, more than one option is presented.  For example, the book covers both Ant and Maven, and JUnit and TestNG.  All of the tools covered are open source and freely available.

Java Power Tools

Some of the chapters will only be of interest to beginning Java developers.  I imagine that most Java professionals already know how to use Ant and some kind of version control system.  On the other hand, the book also introduces some tools which are not so well-known, so you are sure to find something useful here.

CVS and Subversion are the version control options demonstrated.  I can’t help thinking that Git (or even Mercurial) would have been a better choice for inclusion than CVS.  Usage of distributed version control systems is growing whereas CVS has effectively been supplanted by Subversion.

Elsewhere there are no such omissions.  The author covers four different continuous integration servers: CruiseControl, Continuum, LuntBuild and Hudson.  This is probably overkill.  I haven’t used LuntBuild, but I would quickly dismiss CruiseControl and Continuum in favour of Hudson.  It would have been sufficient to cover Hudson and one other.

The coverage of testing tools is particularly thorough, and is probably the most useful part for experienced developers.  Not only does it cover JUnit 4 and TestNG, but it also goes into some detail on a variety of related tools, such as DbUnit, FEST and Selenium, and performance testing tools including JMeter and JUnitPerf.

I found the chapter on the JDK’s profiling tools to be useful and there is also a chapter on profiling from Eclipse, but nothing on the NetBeans profiler.  This is my only real gripe with the book.  Three of the chapters are Eclipse-only with no alternatives offered for users of other IDEs.  One of these is the chapter on the Jupiter code review plug-in.  ReviewBoard might have been a better choice.

All-in-all though, this is a substantially useful book.  At 910 pages it covers a broad range of topics without skimping on the necessary detail.  There are dozens of ideas for improving and automating your software development processes.

If you want more information, Meera Subbarao at JavaLobby has also reviewed Java Power Tools.

Real World Haskell

Posted in Books,Haskell by Dan on September 2nd, 2008

The book Real World Haskell by Bryan O’Sullivan, Don Stewart, and John Goerzen, will be available to buy from November.

The content is also freely available online already and is well worth a look if, like me, you are keen to learn more about developing actual useful programs with Haskell.

I first mentioned Real World Haskell last year.  At the time I also highlighted GHC’s LGPL problems as an obstacle that could potentially discourage the wider adoption of Haskell.  It seems that some progress is being made on that front.  At present though, GHC will still statically link to GMP, which means that developers who distribute GHC-compiled binaries are distributing “derivative works” as defined by the LGPL.

Comments Off

Free Genetic Programming Book

Posted in Books,Evolutionary Computation by Dan on April 7th, 2008

I just spotted this on comp.ai.genetic.  The authors of a new book called A Field Guide to Genetic Programming have made it available for download in PDF form free of charge.  Weighing in at around 200 pages, it looks like a reasonably concise introduction to the topic (unlike some of the huge and hideously expensive GP books you can buy on Amazon).

This is good timing for me because I’ve recently started hacking together a GP example application to include in the next release of the Watchmaker Framework for Evolutionary Computation.  So I can catch up on a bit of background reading to make sure I’m doing things sensibly.  Watchmaker is a general purpose evolution framework, intended to address the full range of evolutionary algorithms.  I’ve been claiming for a while that you can use it for genetic programming, so I thought it was about time I demonstrated this.  I’m not aware of anybody having used Watchmaker for GP so far.  I’d love to hear from anybody who has done so.

Genetic programming is also covered in an accessible way in Toby Segaran’s excellent book, Programming Collective Intelligence, which includes GP examples in Python.

Comments Off