Thisis the second time I've read this book. The first was a copy I borrowed afew years ago, and now I've purchased one for my own library. I try to collectgood books I really loved reading, and "War an peace" easily falls into thiscategory.
It is an epic novel in the truest sense of "epic". Stretching over a period ofseveral decades, it masterfully describes the history of Russia from the end ofthe 18th century and into the first third of the 1800s. At more than 1600 pages,it is definitely one of the longest novels out there, but unlike many muchshorter books, its length is well justified. I can barely count on the fingersof one hand the amount of times I felt some section is too long. AlthoughTolstoy is very thorough, his writing is easily readable and the pages just fly.
The books focuses on two main topics. One is the Russian-French wars of 1805 and1812. Tolstoy describes the wars, and in particular the battles of Austerlitz(1805) and Borodino (1812) in vivid detail and apparently very accurately from ahistoric point of view. The characters of Napoleon and Kutuzov (the Russian armyleader) take active part in the narration, with the lesser leaders (Bagration,de Tolli, Davoux) also getting enough attention to build a complete andinteresting story. Specific events of the war are highlighted with theparticipation of the book's main characters, like Andrey Bolkonsky, NikolayRostov and Pierre Bezoukhov.
The other is the high Russian society of that time. The book provides a veryinteresting and in-depth glimpse into this unusual society by today's standards,somewhat modeled after, and thus similar to, other European societies (French,British, etc.). Tolstoy also presents the life in rural Russia a little, and theinterrelations between the rich and the serfs, although he doesn't spend on thistopic nearly as much as in Anna Karenina.
The characters in the book are various and present the different ideas Tolstoytries to infuse into his narration. They are all, without exception, extremelybelievable and well developed. I can't think of many authors who know how topresent and develop their characters as well as Tolstoy.
Additionally, the book presents plenty of interesting philosophical andscientific ("science of history") ideas. The chief one is undoubtedly thequestion "What causes and shapes historical events?". Contrary to the populardogma that historical events are the result of actions of single notable persons(such as Napoleon or king Alexander), Tolstoy believes that such persons don'treally cause events, but rather can only affect them in some ways once they arealready in existence. He claims that what really changes history is the amalgamof human actions, built from thousands, nay, millions of small decisions,desires and ambitions of the people. A historical version of chaos theory.
Well, this review can be arbitrarily long, and I have to wrap up at some point.I just want to address one important issue - the book's name. In Russian, thebook's name is "Voina i mir", which may mean "War and peace" but may also mean"War and society", since "peace" and "society" are homonyms in Russian. Thereare differences of opinion as to which Tolstoy actually meant when he authoredthe book, as you can read here or more at length here (Russian). Personally,I firmly believe that the "War and society" translation is more correct. It isvery obvious that Tolstoy places a lot of emphasis on society in the book.Pierre compares his experiences in the society with his war adventures to formphilosophical opinions. The same for Andrey. I can barely see any mention ofpeace in its "non-war" sense in the book.
A RESTful API exposes a list of resource representations. This architecture often creates APIs that are quite close to the business model. While this can be fine to avoid duplication, it forces clients of the APIs to make several requests in order to get all the data they need to fulfill a given task. On mobile networks, where latency is constantly high, this is a big drawback. So how can you design an API following REST principles, without forcing the clients to make too many requests?
Let's take an example: a mobile bookstore application offers a search feature, where the user can look for books by author name. The mobile application uses a REST API provided by a bookstore web service, exposing data on authors and books. Here is the list of API calls the application needs to show the list of books written by authors named "Tol*":
If the application was talking with a database, the solution would be simple: use a JOIN to retrieve data from the book table associated with the results from the author table. But this is REST, not SQL, and there is no such thing as join. What convention would you follow to allow denormalization of related results?
REST is not a normalized standard, and only answers partially to the requirements of web service design. There has been other attempts at normalizing data exchange between servers. One of them, backed by Microsoft, is called OData, or Open Data Protocol. OData goes way beyond the simple architectural principles of REST, and gives a convention to the solve the denormalization problem: $expand. Examples from the OData documentation show this in practice:
The $ prefix is another convention from the OData protocol to denote "System Query Options". It is widely used to provide filtering, ordering and more, somehow following the SQL path. For instance, an OData HTTP request can look like this:
You're probably aware that designing URIs like /authors/1234/books isn't sufficient to make an API RESTFUL. To reach the glory of REST and get to level 3 of Richardson Maturity Model, you must achieve Hypertext As The Engine Of Application State (HATEOAS). Check David Zuelke's excellent presentation about RESTful web services for details.
Let's switch to XML as there is now a broadly accepted convention on implementing HATEOAS in this language (there is not yet one in JSON). It may be more verbose than JSON, but every client library can decode XML natively nowadays. The initial REST API, exposing resources using HTTP verbs, reaches Level 2 of the RMM:
Expanding one sub-element is quite simple, but how would you ask for a list of authors embedding author books, reviews and sales on author books, and biographical data on authors? The expand parameter can accept several fields separated by commas (","), and the object hierarchy can be traversed using dot notation ("."). So the request would look like:
With this convention, virtually every page of a mobile application can be reconstituted based on the response from one single request to the API, minimizing network traffic and latency. It's the API application responsibility to know what type of JOIN and expand must be translated to.
REST and Mobile are not enemies. Instead of leaving REST to craft your own custom denormalized API for mobile applications, offer the expand option. That way, both web and mobile may use the same API, with optimal performance. As for the implementation, as long as relationships between model objects are clearly defined in your code, it's a piece of cake. And if you happen to use an ORM or an ODM, offering the expand options won't be a problem.
i met tolstoy on a train between olomouc and prague in what was then czechloslovakia when i was nineteen. i spent the fall of my sophomore year there immersed in eastern european literature and political science, which very quickly lead to obsession with russian literature. i read anna karenina over the course of several train rides that fall, an appropriate train ride book, i think. and i fell absolutely in love with tolstoy. i had already plowed through lots of british nineteenth century lit, but had not yet read the great russian novels. there was an english book section of the student bookstore at charles university in prague and i snatched up other russian novels, which of course shows my lack of forethought with regard to traveling. because, ahem, most russian novels are sort of heavy, even in paperback. this was my first great journey to europe and i had not yet learned the art of traveling light. my parents still love to laugh about how much i packed to go to prague and at the number of mundane things i had convinced myself might not be available in prague, one of which was paper. i had enough paper to last me through my entire college career. i had bought a large number of 5X7 notecards. i am pretty certain i thought that somehow europe was going to turn me into emily dickenson and i would need lots of notecards on which to write poems, so many that i would later need to tie them up neatly with ribbons for the trip home. sadly, the notecards were relegated among other things to a pile that would have to stay behind when my luggage exceeded the weight limit at the little rock airport, bringing me to tears before i even said goodbye.
Book club hosted by Emma (Emmie) and Carolyn (CarolynMarieReads), inspired by the Intelligence Squared debate on which author is better: Charles Dickens or Leo Tolstoy.
Books/stories by both authors are read on alternating months in order of publication.
At the end of each reading period for a book, a liveshow debate will be held on either Emma's or Carolyn's youtube channel, to discuss the merits of both books and their authors. Both channels of the two hosts are linked above in their names. The links will take you to their introductory video's on this book club, which explain everything in more detail.
Edit: The creators have stopped doing this challenge and changed it to "a game of tomes" (another reading challenge has already been created for this book club)
1. J. A. Baker, The Peregrine and The Hill of Summer: Two works that contain some of the most sublime, beautiful, and hauntingly ominous prose written in the twentieth century: bleak, austere, asperous, cold, and yet overflowing with a lyricism unlike any other. The latter volume was out of print entirely until it was reissued in the most recent edition of the former. Both should be read in small portions at a time, the former especially, as the sheer intensity of the language is almost unendurable over long periods.
3a8082e126