Finished The Great Book of Amber by Roger Zelazny. This large tome contains all 10 volumes of the Amber Chronicles. The series is divided into two major story arcs, each consisting of five books. The first story arc is excellent. Zelazny weaves a compelling story. I found the opening particularly good. The way Zelazny starts the story, it does not even seem like fantasy. Just as you start to wonder whether or not he is ever going to get around it, he brings the fantasy element into the story with a bang.
The second story arc is mediocre. The story contains many good elements, but overall it comes across as a bit too... chaotic. The main character of that story arc seems to get pulled from event to event, each of which generates new threads. I would say less than half of those threads are resolved in the end, and many of those that were resolved were not resolved fully. That said, I have heard that the Zelazny meant to write more but did not have a chance to do so before he died. The dangers of building large, complex stories.
Overall though, it is definitely worth a read. Especially the first half.
The second story arc is mediocre. The story contains many good elements, but overall it comes across as a bit too... chaotic. The main character of that story arc seems to get pulled from event to event, each of which generates new threads. I would say less than half of those threads are resolved in the end, and many of those that were resolved were not resolved fully. That said, I have heard that the Zelazny meant to write more but did not have a chance to do so before he died. The dangers of building large, complex stories.
Overall though, it is definitely worth a read. Especially the first half.
Finished test-driven development: A Practical Guide by David Astels. The book contains three parts. Part 1 introduces the reader to test-driven development. Part 2 discusses various tools and techniques for doing TDD. Part 3 presents an extended example by going through the test-driven development of a movie rating application.
Test-driven development builds on the principle that developers should write tests before they write code. The tests determine the code that needs to be written. As a side effect, this results in a suite of programmer tests. However, the book stresses that TDD primarily exists as a development methodology, not a testing methodology. The test suite produced by this methodology should not be considered a replacement for through testing by those who have testing as their primary goal.
My detailed impressions of the book and test-driven development.
test-driven development: A Practical Guide provides a good introduction to test-driven development. It contains many useful insights and practical tips. However, I suspect that you can find more focused, up-to-date introductions to the topic than the one found in this book.
Test-driven development builds on the principle that developers should write tests before they write code. The tests determine the code that needs to be written. As a side effect, this results in a suite of programmer tests. However, the book stresses that TDD primarily exists as a development methodology, not a testing methodology. The test suite produced by this methodology should not be considered a replacement for through testing by those who have testing as their primary goal.
My detailed impressions of the book and test-driven development.
test-driven development: A Practical Guide provides a good introduction to test-driven development. It contains many useful insights and practical tips. However, I suspect that you can find more focused, up-to-date introductions to the topic than the one found in this book.
Finished The Separation of Church and State: Writings on a Fundamental Freedom by America's Founders edited by Forrest Church. This short book contains extracts of revolutionary era writings about the separation of church and and state. Favorites such as Thomas Jefferson and George Washington make an appearance as do less well known writers such as Isaac Backus and Oliver Ellsworth.
"Separation of church and state" is a phrase that is bandied around without knowledge of its historical origins. First, as I hope we all know, the phrase itself does not appear in the Constitution or the Declaration of Independence. Instead, it first appeared in a letter written by Thomas Jefferson (Ch. 14 in the book):
I do not want to imply that people's opinions are irrelevant, but we have come to a place in American society where beliefs are often considered more important than actions. That is sad and destructive. Reading books like this remind us about the fundamental debates that define our country have, at their core, something much deeper than superficial displays of religiousity.
"Separation of church and state" is a phrase that is bandied around without knowledge of its historical origins. First, as I hope we all know, the phrase itself does not appear in the Constitution or the Declaration of Independence. Instead, it first appeared in a letter written by Thomas Jefferson (Ch. 14 in the book):
Believing with you that religion is a matter which lies solely between man and his God, that he owes account to none other for his faith or his worship, that the legislative powers of government reach actions only, and not opinions, I contemplate with sovereign reverence that act of the whole American people which declared that their legislature would "make no law respecting an establishment of religion, or prohibiting the free exercise thereof," thus building a wall of separation between church and state.One common disagreement in modern discussion is whether we should aim for freedom from religion or freedom for religion. Both threads find expression in the writings in the book. As the author says in the introduction:
As was true of the broader American struggle for freedom, the revolution that led to religious liberty was powered by two very different engines: one driven by eighteenth-century Enlightenment values, the other guided by Christian imperatives that grew out of the Great Awakening, a spiritual movement that spread like wildfire across the American colonies throughout the middle decades of that same century. The former movement, emphasizing freedom of conscience as both a political and a philosophical virtue, stressed freedom from the dictates of organized religion. The later, stemming from a devout reading of the gospels (especially their proclamation of spiritual liberty from bondage to the world's principalities and powers), demanded freedom for religion.I feel that freedom of conscience suffers from poor health in modern America. Not just with respect to religion but, in general, Americans are quick to judge someone based only on what they believe, not on their actions. I see this, of course, in debates about religion and its proper role in a secular society. But I also see it more widely. I see it in the fact that some said Larry Summers should not be an economic advisor to the President because of what he had said about gender at Harvard (how is that relevant to being an economic advisor?). I see this in the very current debates about race in this country where we are obsessed with whether or not people think racist thoughts, not whether or not they act on them.
I do not want to imply that people's opinions are irrelevant, but we have come to a place in American society where beliefs are often considered more important than actions. That is sad and destructive. Reading books like this remind us about the fundamental debates that define our country have, at their core, something much deeper than superficial displays of religiousity.
For me to make progress, you must suffer through many book summaries.
( Finished Brain Rules by John Medina, 5/5 )
( Finished Brain Rules by John Medina, 5/5 )
Be warned that a lot of book summaries will be coming in the near future. I have a 2 month backlog of 8 books that I need to write summaries for.
Finished Slow is Beautiful: New visions of community, leisure, and joie de vivre by Cecile Andrews. In this book Andrews motivates the idea of the "slow life" and discusses some way of slowing down your own life.
The central claim of this book is that the "fast" life does not lead to happiness. The constant chase after more money, more status, and more stuff decreases happiness rather than increases it. Some people find the fast life satisfying, but it is increasingly clear that the universal emphasis on the fast life is harmful to individuals and communities.
Andrews supports this claim with an overview of some of the recent research on happiness. This research supports the conclusion that the things that make us happy are the things that we have less time for in our overworked, over scheduled lives. For most people happiness comes from spending time with people they care about, participating in activities where they can achieve a state of flow, and having enough free time to do these things.
Andrews concludes that we need to slow down our lives to make room for the things that make us happy. She gives a number of tips for this, but she also emphasizes the importance of social change to allow more people to choose to slow down their lives. Andrews realizes something that much of the happiness literature misses: in American society today, slowing down your life is a privilege that few can take advantage of. Even those financially able to work part time have a hard time doing so in the career of their choice because many careers do not offer part time opportunities (part time software engineers are few and far between; I have heard stories of lawyers who were asked to leave their practice when they asked for a "part time" 40 hour week). Those who can find part time work that they find interesting usually have to sacrifice health care. Andrews recognizes that slowing down society (or at least giving all of its members the choice to slow down) will more than individual life changes.
Despite all the good things about this book, I can only give it a middling recommendation overall. The parts that were on topic were quite good. However, Andrews would occassionally go off into a political rant that was, as often as not, only tangentially related to the topic at home. These political rants rarely added to the discussion. Even reading this in April of 2009, the frequent criticisms of George W. Bush seemed dated. Sadly, these digressions were frequent enough to seriously detract from the quality of the book.
This book is a valuable read, but you have to be willing to leave behind the dirt and take home the gems.
Finished Slow is Beautiful: New visions of community, leisure, and joie de vivre by Cecile Andrews. In this book Andrews motivates the idea of the "slow life" and discusses some way of slowing down your own life.
The central claim of this book is that the "fast" life does not lead to happiness. The constant chase after more money, more status, and more stuff decreases happiness rather than increases it. Some people find the fast life satisfying, but it is increasingly clear that the universal emphasis on the fast life is harmful to individuals and communities.
Andrews supports this claim with an overview of some of the recent research on happiness. This research supports the conclusion that the things that make us happy are the things that we have less time for in our overworked, over scheduled lives. For most people happiness comes from spending time with people they care about, participating in activities where they can achieve a state of flow, and having enough free time to do these things.
Andrews concludes that we need to slow down our lives to make room for the things that make us happy. She gives a number of tips for this, but she also emphasizes the importance of social change to allow more people to choose to slow down their lives. Andrews realizes something that much of the happiness literature misses: in American society today, slowing down your life is a privilege that few can take advantage of. Even those financially able to work part time have a hard time doing so in the career of their choice because many careers do not offer part time opportunities (part time software engineers are few and far between; I have heard stories of lawyers who were asked to leave their practice when they asked for a "part time" 40 hour week). Those who can find part time work that they find interesting usually have to sacrifice health care. Andrews recognizes that slowing down society (or at least giving all of its members the choice to slow down) will more than individual life changes.
Despite all the good things about this book, I can only give it a middling recommendation overall. The parts that were on topic were quite good. However, Andrews would occassionally go off into a political rant that was, as often as not, only tangentially related to the topic at home. These political rants rarely added to the discussion. Even reading this in April of 2009, the frequent criticisms of George W. Bush seemed dated. Sadly, these digressions were frequent enough to seriously detract from the quality of the book.
This book is a valuable read, but you have to be willing to leave behind the dirt and take home the gems.
Finished Mistakes Were Made (but not by me): Why We Justify Foolish Beliefs, Bad Decisions, and Hurtful Acts by Carol Tavris and Elliot Aronson. Tavris and Aronson explore the cognitive biases that lead people to justify their own beliefs, even in the face of contrary evidence. They explore some of the ways this bias towards self justification negatively affects society and individuals. Tavris and Aronson did a good job with this material; the overview sections are a valuable read. About half of the book is case studies; the value of those chapters will depend on the interest you have in the domains they study.
The human brain excels at reducing cognitive dissonance. We ignore contrary evidence without even knowing it is there. Executives and criminals justify actions that are obviously wrong to the outside observer. You ignore your own judgmental behavior while vilifying the behavior of others.
Some self-justification makes evolutionary sense. If there is not sufficient contrary evidence, evaluating an idea wastes time and energy. Without some self-justification you would always second guess your decisions. Confidence builds on our self-justification skills.
Self-justification also makes neurological sense. Memory is not a recording of the past. We reconstruct the past based on a relatively sparse set of true data points. Memory is the narrative we create that unifies those facts with our self image and our model of the world.
Taken too far, self-justification leads to an inaccurate model of the world around you. Your bar for contrary evidence will rise too high. You will jump on small problems with contradictory material and ignore faults in supporting material. Eventually, self-justifying beliefs will filter your perceptions. Your mind will literally not consciously register that which contradicts your beliefs and will overemphasize that which supports your beliefs. (For examples, see the Internet.)
Tavris and Aronson explore the dangers of self-justification through four case studies. They show how self-justification can lead to bad, and sometimes tragic, results in clinical psychology, the legal system, relationships, and cultural interactions. In all of the case studies, self-justification becomes dangerous when a closed system allows positive feedback loops of self-justification. For example, admitting mistakes can kill a medical career, but not being able to admit mistakes leads to the self-justifying belief that mistakes are never made. When this causes a doctor to believe in a technique that does not really work, the result can be the death of a patient.
The pitfalls of self-justifiation can be avoided. The key tools are independent review, being able to admit you were wrong without justification, seeing mistakes as learning opportunities, learning how to constructively reduce dissonance, and learning how to live with dissonance when it cannot be resolved. Easier said than done, especially at an individual level. But there are huge benefits to be earned from avoiding self-justification, especially systemic institutional self-justification.
The human brain excels at reducing cognitive dissonance. We ignore contrary evidence without even knowing it is there. Executives and criminals justify actions that are obviously wrong to the outside observer. You ignore your own judgmental behavior while vilifying the behavior of others.
Some self-justification makes evolutionary sense. If there is not sufficient contrary evidence, evaluating an idea wastes time and energy. Without some self-justification you would always second guess your decisions. Confidence builds on our self-justification skills.
Self-justification also makes neurological sense. Memory is not a recording of the past. We reconstruct the past based on a relatively sparse set of true data points. Memory is the narrative we create that unifies those facts with our self image and our model of the world.
Taken too far, self-justification leads to an inaccurate model of the world around you. Your bar for contrary evidence will rise too high. You will jump on small problems with contradictory material and ignore faults in supporting material. Eventually, self-justifying beliefs will filter your perceptions. Your mind will literally not consciously register that which contradicts your beliefs and will overemphasize that which supports your beliefs. (For examples, see the Internet.)
Tavris and Aronson explore the dangers of self-justification through four case studies. They show how self-justification can lead to bad, and sometimes tragic, results in clinical psychology, the legal system, relationships, and cultural interactions. In all of the case studies, self-justification becomes dangerous when a closed system allows positive feedback loops of self-justification. For example, admitting mistakes can kill a medical career, but not being able to admit mistakes leads to the self-justifying belief that mistakes are never made. When this causes a doctor to believe in a technique that does not really work, the result can be the death of a patient.
The pitfalls of self-justifiation can be avoided. The key tools are independent review, being able to admit you were wrong without justification, seeing mistakes as learning opportunities, learning how to constructively reduce dissonance, and learning how to live with dissonance when it cannot be resolved. Easier said than done, especially at an individual level. But there are huge benefits to be earned from avoiding self-justification, especially systemic institutional self-justification.
Finished Growing Vegetables West of the Cascades by Steve Solomon. Reading this book you can tell that Solomon is something of a personality, but the book is packed full of detailed information about growing vegetables in the Pacific Northwest.
I appreciate how this book takes a scientific approach to gardening. In addition to telling readers what to do, Solomon tells readers why they should do them. He clearly believes that readers should have the background information to adapt their gardening practices to their particular location and problems.
There are many reasons why it is useful to have a book that focuses specifically on growing vegetables west of the Cascades. Because of our climate, we face a combination of gardening challenges that differ from the rest of the country (although any given problem is likely to be experienced elsewhere).
Our frequent rain fall washes nutrients out of our soil, so we need to use different soil amendments and fertilizers than in other parts of the country. Our summers are not as long or as hot as elsewhere, so growing heat loving plants such as egg plants, melons, and tomatoes takes greater care. We do not have long freezes in the winter so pests that are killed by winter in the east survive over winter here. Solomon addresses all of these difficulties.
One way that Solomon's book differs from other gardening books is that he does not advocate intensive gardening practices. He believes that these gardening methods, if used too long, will deplete the nutrients in the soil and effect the growth of vegetables. Solomon instead encourages giving vegetables lots of space to grow so that you harvest fewer vegetables that are larger and healthier. He also strongly recommends rotating between garden plots periodically to allow the land to rest and recover from vegetable gardening.
If you are serious about vegetable gardening in the Pacific Northwest, this book is a must read. It is full of practical advice, educational background material, and some good ol' gardening philosophy. Now I cannot wait until I have enough room to start a real vegetable garden. =)
I appreciate how this book takes a scientific approach to gardening. In addition to telling readers what to do, Solomon tells readers why they should do them. He clearly believes that readers should have the background information to adapt their gardening practices to their particular location and problems.
There are many reasons why it is useful to have a book that focuses specifically on growing vegetables west of the Cascades. Because of our climate, we face a combination of gardening challenges that differ from the rest of the country (although any given problem is likely to be experienced elsewhere).
Our frequent rain fall washes nutrients out of our soil, so we need to use different soil amendments and fertilizers than in other parts of the country. Our summers are not as long or as hot as elsewhere, so growing heat loving plants such as egg plants, melons, and tomatoes takes greater care. We do not have long freezes in the winter so pests that are killed by winter in the east survive over winter here. Solomon addresses all of these difficulties.
One way that Solomon's book differs from other gardening books is that he does not advocate intensive gardening practices. He believes that these gardening methods, if used too long, will deplete the nutrients in the soil and effect the growth of vegetables. Solomon instead encourages giving vegetables lots of space to grow so that you harvest fewer vegetables that are larger and healthier. He also strongly recommends rotating between garden plots periodically to allow the land to rest and recover from vegetable gardening.
If you are serious about vegetable gardening in the Pacific Northwest, this book is a must read. It is full of practical advice, educational background material, and some good ol' gardening philosophy. Now I cannot wait until I have enough room to start a real vegetable garden. =)
Finished Pragmatic Unit Testing by Andrew Hunt and David Thomas. Pragmatic Unit Testing is a book about testing for developers. The content is appropriate for developers who do not have much experience testing and for developers who do unit test their code but do not have formal training in testing.
The book describes the purpose of unit tests, how to write them, and what makes a good unit test. They give lots of examples to help developers figure out what kind of things are good to test and how to test them. Although a lot of the information can be found in general software engineering and development books, Pragmatic Unit Testing provides a concise, well explained introduction to developer testing.
I have a more complete summary here.
The book describes the purpose of unit tests, how to write them, and what makes a good unit test. They give lots of examples to help developers figure out what kind of things are good to test and how to test them. Although a lot of the information can be found in general software engineering and development books, Pragmatic Unit Testing provides a concise, well explained introduction to developer testing.
I have a more complete summary here.
Finished The Geography of Nowhere: The Rise and Decline of America's Man-Made Landscape by James Howard Kunstler. Part history, part analysis, and part plain old rant, The Geography of Nowhere discusses the evolution of the cities and houses in the U.S. in the city, the country, and the suburbs.
Kunstler starts with a historical overview of housing and community development in the U.S., starting with colonial towns and ending with the soulless suburban sprawl of today. Although much of the content was familiar, the historical overview had a number of surprises.
If you grew up in the U.S., when you think of an agricultural community you think of isolated farm houses surrounded by fields. Historically, agricultural communities have had a rather different setup. Homes were clustered together, and these town centers were surrounded by the farm lands. Your farmland was not necessarily adjacent to your property, but it was within a manageable distance. This layout provided safety and was more efficient for people without cars. The country sprawl that we think of as typical today is actually a result of the vast amounts of lands in the American west and the governments policies for settling them.
The history of the suburb is also surprising. Again in the U.S., you generally think of suburbs as the result of car induced sprawl. However, the first suburbs were built in the 1800s as communities along rail lines. They shared many features with modern suburbs (people lived there but did not work there, they were often planned communities of similar homes). However, they differed in one key respect. The original suburbs were built to human scale. Because they were rail suburbs, the residents still had to be able to walk within the community. Furthermore, the railroad station provided a natural center to the community, something which modern suburbs lack.
The next part of the book discusses the changes in house styles in the U.S. This part contains a fair bit of ranting about modern architecture. Home: A Short History of an Idea by Witold Rybczynski does a better job of presenting similar information. (my review).
Kunstler presents case studies of 6 cities, pointing out what is right about them and what is wrong, and closes with a discussion of what is being done to make better places and stronger communities. Overall, I enjoyed The Geography of Nowhere. Kunstler ranted enough to be amusing without being distracting. The historical perspective and the case studies were valuable resources. Even though this book was published in 1993, it is still relevant. In fact, it may be increasingly relevant as the crash of the housing bubble lends energy to community rebuilding efforts.
Kunstler starts with a historical overview of housing and community development in the U.S., starting with colonial towns and ending with the soulless suburban sprawl of today. Although much of the content was familiar, the historical overview had a number of surprises.
If you grew up in the U.S., when you think of an agricultural community you think of isolated farm houses surrounded by fields. Historically, agricultural communities have had a rather different setup. Homes were clustered together, and these town centers were surrounded by the farm lands. Your farmland was not necessarily adjacent to your property, but it was within a manageable distance. This layout provided safety and was more efficient for people without cars. The country sprawl that we think of as typical today is actually a result of the vast amounts of lands in the American west and the governments policies for settling them.
The history of the suburb is also surprising. Again in the U.S., you generally think of suburbs as the result of car induced sprawl. However, the first suburbs were built in the 1800s as communities along rail lines. They shared many features with modern suburbs (people lived there but did not work there, they were often planned communities of similar homes). However, they differed in one key respect. The original suburbs were built to human scale. Because they were rail suburbs, the residents still had to be able to walk within the community. Furthermore, the railroad station provided a natural center to the community, something which modern suburbs lack.
The next part of the book discusses the changes in house styles in the U.S. This part contains a fair bit of ranting about modern architecture. Home: A Short History of an Idea by Witold Rybczynski does a better job of presenting similar information. (my review).
Kunstler presents case studies of 6 cities, pointing out what is right about them and what is wrong, and closes with a discussion of what is being done to make better places and stronger communities. Overall, I enjoyed The Geography of Nowhere. Kunstler ranted enough to be amusing without being distracting. The historical perspective and the case studies were valuable resources. Even though this book was published in 1993, it is still relevant. In fact, it may be increasingly relevant as the crash of the housing bubble lends energy to community rebuilding efforts.
Finished Unlocking the Clubhouse: Women in Computing by Jane Margolis and Allan Fisher. I found this to be simultaneously a very important book and a rather dull book. I would have found the book fascinating 5 years ago. But now I have spent a summer at CMU interacting with the women@scs group; I have seen Jane Margolis speak twice (once with Allan Fisher); I have seen many other wonderful speakers talk about women in computing; I have given miniature versions of such talks myself. The material in this book has become such a part of my life, such a part of how I relate to my field of choice, that actually reading the material felt a little redundant.
Thus, if you are at all interested in issues of gender and computing (and if you are in the field of computing, you ought to be), you should read this book. If you are really interested in issues of gender and computing, you should read it earlier rather than later because you will have to read it eventually, and the sooner you read it, the more novel the material will be.
(I am now excited to read Margolis's latest book, Stuck in the Shallow End: Education, Race, and Computing, because I am not very familiar with issues of race in the computing field.)
Thus, if you are at all interested in issues of gender and computing (and if you are in the field of computing, you ought to be), you should read this book. If you are really interested in issues of gender and computing, you should read it earlier rather than later because you will have to read it eventually, and the sooner you read it, the more novel the material will be.
(I am now excited to read Margolis's latest book, Stuck in the Shallow End: Education, Race, and Computing, because I am not very familiar with issues of race in the computing field.)
Finished Ajax in 10 minutes by Phil Ballard. Every once in awhile you form a fondness for a book even though it is not a particularly good book. In this particular case, I knew that Ajax in 10 minutes by Phil Ballard would not be of the quality I usually expect out of CS books the moment I picked it up. Fate is the contents of the bookshelf near the massage chair.
My full summary can be found here.
Despite being from a publisher that prides itself as being for "When you only have time for the answers®", the book was quite educational. It started with a refresher of web technologies, went into an excruciatingly detailed description of how to use the XMLHTTPRequest object to interact with the server and update a web page, described some other technologies that are useful with Ajax, and finished off with a description of several libraries.
Overall, this book could have said the same thing a lot more concisely. At the same time, it could have included more details about error checking and programming defensively (I don't expect every code snippet to be bullet proof, but at least point out the potential trouble spots!). That said, I still learned a lot, and I will always have a fondness for this book since it was my first complete overview of Ajax.
My full summary can be found here.
Despite being from a publisher that prides itself as being for "When you only have time for the answers®", the book was quite educational. It started with a refresher of web technologies, went into an excruciatingly detailed description of how to use the XMLHTTPRequest object to interact with the server and update a web page, described some other technologies that are useful with Ajax, and finished off with a description of several libraries.
Overall, this book could have said the same thing a lot more concisely. At the same time, it could have included more details about error checking and programming defensively (I don't expect every code snippet to be bullet proof, but at least point out the potential trouble spots!). That said, I still learned a lot, and I will always have a fondness for this book since it was my first complete overview of Ajax.
