I like to read and Summer is one of my favorite reading seasons. Like the lower cased one, I try and keep the queue full (those are my copies of Goldberg, Holland and Koza in the foreground), i.e. have at my disposal materials that I need to read. I mentioned earlier here that I have a few books to read.
I've completed Aspects on the Theory of Syntax by Chomsky. I'll not be doing a review of this as I believe that I need at least two more thorough re-reads of this book to understand this material. David mentioned here that my posts loosen the brain muscles (his posts are verbose and loosen my brain as well). Chomsky, among others, loosens my brain muscles in many disciplines.
I've completed my read of Brameier's On Linear Genetic Programming (abstract here). While this is a considerable piece of work, if you are in the field of AI and specifically interested in GP (and have a reasonable level of competence in these disciplines), I'd recommend a read of this paper.
I still have my head wrapped around the proverbial pole with Experimentation in Mathematics by Borwein, Bailey and Girgensohn. I've decided that I have two choices on this book: either read and become engulfed, or read at a quicker pace and expect to do a re-read in the future. I'll likely choose the latter as this book covers a great deal.
So for those that are interested in what I'm thinking, here's a partial view of my Summer Reading List:
Full Re-reads (books that require that I re-read them cover-to-cover)
- Adaptation in Natural and Artificial Systems - John Holland. My recent correspondence with Dr. Goldberg has made this re-read a must. Given recent publications, I need to refine my understanding of the building-block hypothesis and review the mathematics. I am and have always been a true believer of the BBH, but it never hurts to do the math .
- Introduction to Mathematical Logic - Alonzo Church. I'm getting my butt kicked in this subject all of the time. I must improve myself in this discipline. The best place is a full re-read of the foundations here. Church students included Martin Davis, Leon Henkin, John Kemeny, Stephen Kleene, Michael Rabin, Hartley Rogers, Jr., John Rosser, Dana Scott, Raymond Smullyan and Alan Turing. The only other guy in modern times who has had a list of such public and well respected students in fields that I study is Manuel Blum.
- First-Order Logic - Raymond Smullyan. This book cost $7.95 and is worth every penny. This book is one of those "best things in life" that are almost free. My copy has held up well over the years.
- Secrets and Lies - Bruce Schneier. This book requires a re-read every 18 months so that anything on my security compass that is "out of whack" can be properly aligned.
- Gödel's Proof - Nagel and Newman. This really belongs on my Leisure Reading list because I always enjoy this one. There are few better ways to spend a quiet summer afternoon outside or at the park than with this one. I can think of others, but discretion prohibits my discussion here.
- On Intelligence - Jeff Hawkins (with Sandra Blakeslee). For my first read of this book last year, I had a very closed mind on the topic and did not really give benefit to what the author discussed in the material. I promise to be better on this topic and have a more open mind this time around.
Partial Re-reads (books that have content that requires that I re-read selected chapters or sections)
- Active Portfolio Management - Grinold & Kahn. Chapters 5, 10-15. I'm reviewing second-order instruments (derivatives) and the insufficiencies of the G&K model.
- Theory of Games and Economic Behavior - Von Neumann and Morgenstern. Chapter 1 section 4, chapter 3, chapter 9, chapter 11.
- The World's Major Languages - Edited by Bernard Comrie. Chapters 1, 9, 11, 12, 14,15, 16, 24, 26, 30, 32, 33, 34. My understanding of this re-read will dictate my views on a number of topics in Linguistics in the coming years.
- Valuation - Copeland, Koller, Murrin. Chapters 8, 9, 13, 14, 15. One of the seminal books on valuation in capital markets. This book doesn't have my desired "quant-ness" (it is quantitative in nature, but is simple in the mathematics and approach), but it is has comprehensive viewpoints on many topics.
- Physics for Game Developers - Bourg. Chapters 3-6, 11, 13. Chapter 11 has a reference to Euler's Method. Anyone who writes about Big Leo always gets some of my time.
- Doyle Brunson's Super System - Doyle "Texas Dolly" Brunson. Poker. 'nuf said. By the way, his (and his co-authors') math is horrid, but they still make serious cabbage.
- Options, Futures and Other Derivative Securities (2nd edition) - John Hull. Chapters 2, 3, 6, 8, 14, 15, 17. I know that I need to get the latest edition of this book, but this is my first copy and I'm sentimental. Math + Finance = Fun.
New Books
- The Design of Innovation - David E. Goldberg. I have high expectations for this book. I am a Goldberg fan for the simple reason that Dr. Goldberg has extraordinary depth in topics that he discusses. Somehow he distills his message, makes the topic comprehensible and makes his point without losing any information. As a side note, my daughter "The Liz" and I were out the other day for a bite to eat. I had mentioned that I had emailed Dr. Goldberg and had received a response. Her reply was "Isn't there a wrestler named Goldberg?" You have got to love the kid.
- MDA Distilled - Mellor, Scott, Uhl, Weise. I'm pro-Software Factories, but I'm not anti-MDA. I've read some of this book so it isn't new to me, but I haven't given it the proper reading it deserves. I'll be getting the Software Factories book shortly.
- Software Factories - Jack Greenfield, et.al. The seminal book on how to make software in today's environments.
- About Face 2.0 - Cooper and Reimann. The user experience is essential to the acceptance of any software application. I'm not a UI/UE guy, but it is still essential to have a proper foundation.
- Reversing - Eilam. A book that has been sitting idle in my house for awhile now. It keeps calling out to me. I know that the dark-side in me cannot resist.
- Induction - Holland, Holyoake, Nisbett and Thagard. This book is my Achille's Heel. Try as I may, I cannot manage to consume this book. This will be my third retry (not re-read). The material is dense and not pleasing. Maybe I should pull this from the Summer List, because I only want fun books.
- Emergence - Steven Johnson. Since this is how I spend much of my time, i.e. studying emergence, I suppose that I should get another point of view.
- A Semantic Web Primer - Antoniou and van Harmelen. See below.
- The Semantic Web - Daconta, Obrst and Smith. See below.
- Explorer's Guide to the Semantic Web - Thomas B. Passin. I am a believer in the principles of The Semantic Web. As a practitioner of EC, I'm concerned that this current design iteration will be insufficient to meet the goals. I hope to get a more comprehensive understanding from these three books. Note: As I don't normally blow my own scratch on books of this nature, the lower cased one was kind enough to lend me his copies.
Leisure Reading (the math books are re-reads; wait, they are all math books)
- Men of Mathematics - Eric Temple Bell.
- History of Mathematics Volume II - D.E. Smith
- The Man Who Loved Only Numbers By Paul Hoffman
- Crypto - Steven Levy. I have never read this book and will now finally take the time to do so.
There are other books that I must read as well. I need some non-math stuff for my leisure list. I'm light on Number Theory and Statistics this summer. I'll be picking up selected readings in these topics. I'm also light in compsci this summer. I'm of the opinion that I'll not likely have time to chase some Theory of Computation, Computational Complexity and Automata stuff that I've been meaning to read. I haven't had a chance to prepare a comprehensive list, but I'll be studying pi-calculus, stochastic pi-calculus and join-calculus and looking for other process calculi as well. Petri nets and other systems such as Linda are also on topic. These are necessary for the foundations of Web Services and SO, whether it be SOA or SOD or any service orientation and beyond.
Dr. Goldberg mentions here that computer science and computer engineering are lumped under the same term "science". I think about the science and I apply the science and I think about how I build software. But he has given me a spark on this issue. While I espouse software engineering in a number of forms, I tend to patronize the engineering aspect in favor of the science. I'm saving time for readings in my discovery (re-discovery) on this issue. Dr. Goldberg's thoughts are always insightful and he is careful with his use of the terms descriptive and prescriptive. This is another reason to continue to be a good student of those that lead. My only books that come close on this topic are MDA Distilled and Software Factories.
In closing, I have to say "look ma, no physics (ok physics, but not the real kind and it involves games)".
Ok, I admit it. I was whining when I wrote Please tell me Relational Algebra is not dead. I've been using mathematics all of my life and have really tried to apply math where it is appropriate and ignore math where it is inappropriate (you heard it here first: scalper thinks it's OK not to use math sometimes). But time and again, I find myself in the presence of architects, designers and developers who walk with a swagger from their vast knowledge of .Net. Yet many don't even take the time to understand the fundamentals of the relational discipline. Competence in SQL is not competence in relational theory. Discovering new join syntax and testing performance by building new indices in your database is the equivalent of saying "I've washed my car's engine. I can't understand why it isn't running any better". Those that espouse normalization better be able to explain functional dependence, transitive dependence, the difference between third normal form and Boyce-Codd normal form and many other topics. I promise not to throw stones at anyone in particular. I'm just trying to hold people to a standard. Take the time to make yourself better at this stuff. Competence in relational theory solves real world problems.
When it comes to mechanical stuff, I'm basically pretty dense (say it: I like totally have no clue). I've never personally changed the oil in my car. I don't cut my own lawn, so I don't know much about lawn mowers (I've heard they use gasoline). I know water comes out of my sink, but if water comes out of something other than the faucet, i.e. a leak, I call a plumber. I know better than to try to maintain or fix something about which I know nothing.
The reason that I bring this topic to light is that there is great difficulty in managing data in the relational form. It is counterintuitive to the way most humans think. So when I hear about articles where someone has an opinion on how SQL should be changed without any corresponding approach in Tuple Relational Calculus (TRC), I just shake my head. Read "An Introduction to Database Systems" by Chris Date. It's been around for a while (I think its in it's 65th edition and 705th printing or something like that). If you are a math guy or gal, you may actually like TRC and use TRC to demonstrate insufficiencies in SQL.
Let's get back to the relational theory. Now call it what you want to, there is difficulty in the mathematics of RA and RC and the corresponding mathematics of OO. If you call it an "impedance mismatch" or work on "object-relational mapping", you are trying to solve a math problem, not a programming problem. There are a lot of viewpoints in the community on how to address these issues. The reality is, ORM through code-generation or other measures are really nothing more than stop-gaps. The language, i.e. the CLR, CTS, C#, VB.Net, all need to address this issue. I don't discourage anyone who is working on ORM as it solves real problems in real-world situations.
I found this post here from Wesner Moise that talks about this issue. In other words, the good folks at Microsoft are actually considering that data needs a better representation in the language. I even see the words "Relational Data" in the name of the PDC session title. The work that is done at MSR in this area may actually make it into the product at some point. I know that there is talk at MSR about the use of tuples in the language, but I haven't seen any evidence of whether that was in the context of a relation with full RA on the relation(s). Regardless of what those wacky guys at MSR are doing, the fate of the programming community is ultimately in the hands of the CLR and C# teams as they "make the call" on what is put in production.
Now before I'm I accused of being relational-happy or relational-centric, let me be clear. I am not. While the relational theory is my focus here, it is important to note that the Erik Meijer at MSR has an article here that Meijer, Schulte and Bierman (as mentioned in Mr. Moise's link) published some time ago (presented at the XML Conference and Exposition 2003) that discusses Xen, an experimental language, and the difficulties involved in the integration of XML data into the programming language.
I also notice "join calculus" is mentioned later in Mr. Moise's post. As he mentions, this is NOT related to relational theory, but is another process calculus. pi-calculus is another of the process calculi (pi-calculus and join calculus are separate and distinct disciplines, but both address distributed and mobile computing; BizTalk is based on pi-calculus albeit informally).
By the way, I should mention that " .Net Undocumented" has other useful information on this topic here and on other topics.