Tuesday, May 28, 2013

Internetworking with TCP/IP, Vol 1 5th Edition, Douglas E. Comer



This textbook has short, to the point, easy to understand chapters. I have actually enjoyed my reading assignments. Great resource.

[ The TCP/IP set by Comer + TCP/IP Illustrated set by Richard Stevens + The TCP/IP Guide by Charles M. Kozierok ] and are the only books about TCP/IP stack that are worth reading.

Comer is a bit dryer than Stevens
Stevens has excellent examples
Kozierok has more details and drawing / pictures

All the above books will provide everything you need to know

Code impementation is provided by Comer and Stevens

Next step would be books like "Unix Network Programming" by Stevens, "Understanding Linux Network Internals" by Benvenuti,
"The Linux Programming Interface: A Linux and UNIX System Programming..." by Kerrisk, etc etc etc

this book is the most useless book and gives no in depth knowledge at all. this book has too many topics cramped in a limited space.
all the details are missing and someone new to this field would find it extremely difficult to understand the topics mentioned in it.
this book is more of a review guide than a study guide..

so there are many other books available in market which are 10 times better written than this idiotic book... completely useless and waste of money.

This review compares the following four books:
Computer Networks by Peterson and Davie (P & D)
Computer Networks by Tanenbaum
Computer Networks by Comer / Internetworking with TCP/IP
Computer Networking by Kurose and Ross (K & R)

By far the best book in the list is "Computer Networking" by Kurose and Ross. This book covers all of the essential material that is in the other books but manages to do so in a relevant and entertaining way. This book is very up to date as seen by the release of the 5th Ed when the 4th Ed is barely two years old. There are lots of practical exercises using wireshark and the companion website is actually useful and relevant. The attitude of this book with regard to teaching networking concepts could be summed up as "try it out and see for yourself". One interesting thing to note is that the socket programming example are all in Java.

Next up is the Peterson and Davie book which covers everything that Kurose and Ross discuss but is slightly more mathematical in how it goes about things. There are a lot more numerical examples and defining of formulas in this book which is fine by me and in no way detracts from the book. Also the socket programming examples are in C which is a little more traditional. The points where this text loses ground to K & R is that it doesn't have the practical application exercises that K & R has and it also doesn't extend the basic networking theory that is covered to modern protocols like K & R.

The two Comer books come next. Comer's "Computer Networks" book is probably the most introductory book out of this whole list and is more of a survey of networking topics that doesn't cover anything in any real depth. Still, this is an excellent book in that it is a quick clear read that is very lucid in its explanations and you can't help feeling that you understand everything that is covered in the book. Comer's TCP/IP book is the equivalent of the other authors' computer network books and in that respect it is pretty average. It covers all of the relevant material and in a manner which is more than readable but that is all. There is nothing exceptional about the book which stands out from the rest.

Last comes Tanenbaum's book from the author who is probably most famous for his OS books. This is probably the most technical and detailed of the books with lots of sample C code belying is experience with operating systems and their network stack code. The weak point of this book is that all of the code and technical minutia might prevent the reader from seeing the forest for the trees. Unless you are trying to learn how to program your own network stack for a Unix/Linux system, then I would get either the K & R book or the P & D book to learn networking for the first time. This book would best be served as a reference in which case the technical nature of the book becomes a benefit rather than detracting from the text.

Comer's volume 1 provides a solid overview of the TCP/IP networking architecture. The layers and associated protocols are covered. Being an overview is not to imply that the coverage is superficial; there is enough for an architect to develop a reasonable understanding of a system's networking component.

This book describe the TCP/IP family protocols. Of course, there is so much to say that in the limited space that a book can offer that I would say that the book presents only a quick overview of the protocols. Fortunately, at the end of each chapter, there are pointers on the relevant RFCs for the discussed topic in that chapter. My next statement is an impression and not a proven fact but by having read the first edition a long time ago, I have the impression that some details have been removed in this edition in favor of a better coverage of more new protocols. That being said, the information contained in the book is extremely accurate and the book is very useful when analyzing the output of a packet sniffer such as WireShark (previously known as Ethereal).

This book is written in a very readable style and yet covers vast ground in a concise way. Its organisation is excellent and the index finds references to the most useful sections quickly and accurately. The student will quickly gain insight into the protocols and operation at an advanced level, and the design engineer will gain the oversight to design excellent products. The references in each chapter provide good additional reading where extra depth is necessary, but are not required for most readers. It is a system designers book, not aimed at implementors of a TCP/IP stack, and this lack of reference to particular software constructs comes as a relief in todays publishing. The best book on this subject which I have read.

Internetworking with TCP/IP does a very good job introducing almost all relevant topics about TCP/IP networking you should hear of. Thus, it deserves 4 stars because it succeeds in providing an *INTRODUCTORY* guide to this field.

However, if you're looking for a more in-depth and detailed explanation about TCP/IP insights, Steven's 'TCP/IP Illustrated' is the reference you need. The same happens if you want to get more details about routing protocols or real-time and VoIP related stuff (RTP/RTCP for example).

If the introductory level is enough for you, this is a very good choice.

Thick book about linux system socket programming. The protocol design and implementation of different servers, including the code details of TCP/UDP, NFS, Telnet, RTP/RTCP video/audio streaming applications are worthable and understandable upon reading. The contents can still be found useful even in Win32 platform.

It was through an earlier version [2nd edition], that I got my first detailed look at the internet structure. It is good to see that Comer continues his decades-long best selling text. It is aimed at engineers and programmers who have to understand and use and possibly develop applications that will run atop the internet.

Firstly, as with the earlier editions, there are comprehensive explanations of what the Internet Protocol means. Thence for the User Datagram Protocol and the Transmission Control Protocol. To most internet or web users, these are really meaningless terms. Not to you, after you have gone through this book. So, as a crucial example, you will understand the difference between UDP and TCP. And what the format of a TCP segment contains, like the source and destination ports and sequence numbers. Plus the TCP 3 way handshake protocol. The above has been well established and stable for over 15 years.

But Comer also brings in newer material. Like the Network Address Translation. A nifty kludge that can get around a shortage of IP addresses. Or, it can be used to furnish more privacy for machines inside a private net, that still need to communicate with the wider internet.

Even newer issues include VOIP. Leading into an analysis of the difficult real time problems of audio Quality of Service. The recent rise of Internet Telephony centres around successful resolution of these matters.

Finally, Comer concludes with a synopsis of the next generation of the internet - 128 bit addressing under IPv6. And how, apart from the vastly increased addressing, it promises to enable such features as protocol extensions and more elaborate address hierarchies. However, he prudently refrains from suggesting when IPv6 will be fully rolled out.

Product Details :
Hardcover: 688 pages
Publisher: Addison-Wesley; 5 edition (July 10, 2005)
Language: English
ISBN-10: 0131876716
ISBN-13: 978-0131876712
Product Dimensions: 7.2 x 1.5 x 9.5 inches

More Details about Internetworking with TCP/IP, Vol 1 5th Edition

or

Download Internetworking with TCP/IP, Vol 1 5th Edition PDF Ebook

High Speed Signal Propagation: Advanced Black Magic 1st edition, Howard Johnson



I thought this was going to be an update of the original 20 year-old Black Magic book. To my pleasant surprise it is something else entirely. This has to be one of the more entertaining books on electronics that I've read. This one is already getting be 10 years old. I hope Johnson is working on another one.

Quick delivery. Quality product. Filled with essential data. Interesting and illucidating explanations of high-speed electrical phenomenon. An essential publication for all electronic engineer's bookshelves. I am a very happy customer.

Dr. Johnson gives signal integrity an identity, and tells you how to conquer a truly "black art" in electronics engineering.

As the data rates of electrical signals go up, the problems this causes are detailed, and solutions are presented that resolve the problems.

If youare doing high-speed digital design, high precision analog design, and want to make it work, this violume sheds light on the "dark" places.

I had mixed feelings reading this book. Some sections were so good I was saying, "Bravo, well done" while other sections were so bad, I felt sorry for anyone trying to learn by reading them. (E.g. Ch4 on frequency domain modeling.) The book covers extremely useful material, but in an uneven way. It will especially appeal to readers who want simplified discussions of the ideas rather than deeper more theoretical discussions. For example, crosstalk --one of the most important topics, is covered in a very light manner, recommending use of simulators to obtain accurate results. Compare this with the coverage of the same subject in the remarkable book "Electromagnetic Compatibility" by Clayton Paul. Now, that book is "advanced" and "magical". This book doesn't get into any deep discussions of the fundamentals. It says that current flows in a loop, and inductance is related to loop area. Simple enough. Yet, how do we explain the inductance of the pin of an IC package, which is definitely not a loop? How is the energy-based definition of inductance used by simulators related to this simple definition? Even more fundamental, given that voltage can't be defined in a region where the magnetic field is changing, how come we can use the concept of voltage? (Read Paul Clayton for discussing all these concepts in great detail.)

Many previous articles are included in the book. Although some of them are entertaining (e.g. the pot hole story) most are just disturbances, and even worse, outdated and contradictory to authors later approach. For example, Dr. Johnson spends 3 pages! discussing how close a termination has to be, and drives an equation for the amount of reflection when the ideal termination is slightly away from the source. Later in a witty article the author declares that there is no more any excuse for not using simulation tools. He says "If you have to ask, simulate it." Definitely anybody who is wondering if their termination is close enough can download a free demo copy of PSpice and simulate this quickly and accurately.Nobody is going to use the equation the author drived and there is no new insight or theory developed either.

The author being the editor of the IEEE Ethernet specs, it is quite surprising how many sloppy mistakes there are. (KHz, kHz, Ghz, HZ,Hertz, hertz, pS, ps, ohm, Ohm, V, v, ; with and without spaces after the value are used with no consistency, "it's" is confused for "its" in more than one place, wrong equation numbers, irregular figures, mixed fonts and fonts sizes within the same equation, etc. are common occurrence.)

Despite its problems, this book will be a very useful reference book to people working in the field. Many sections have excellent detailed discussions. For example, performance regions of the transmission line breaking it into lumped, RC, LC, skin effect, dielectric loss, and waveguide dispersion regions is the most comprehensive I have seen. A useful book to add to one's library, but not a book lover's delight.

After ploughing through this book, I found it to be a treasure trove of useful information. It's well layed out, and well explained. As with their first "black magic text", it's full of helpful hints, guides, and rule'o'thumbs that will get you up to speed quickly so you can apply them and get expected results from your design. Well done Mr Johnson and Mr Graham, another excellent reference!

Product Details :
Hardcover: 800 pages
Publisher: Prentice Hall; 1 edition (March 6, 2003)
Language: English
ISBN-10: 013084408X
ISBN-13: 978-0130844088
Product Dimensions: 7.1 x 1.8 x 9.6 inches

More Details about High Speed Signal Propagation: Advanced Black Magic 1st edition

or

Download High Speed Signal Propagation: Advanced Black Magic 1st edition PDF Ebook

Database Systems: An Application Oriented Approach, 2nd Edition, Michael Kifer



I have zero complaints about the content. It was a useful, concise, well written textbook. That being said, in a class of 20 students, every single copy of this poorly glued disaster fell apart before the end of the semester. At this price, the quality of this book is near criminal. I have emailed the publisher and received zero response.

If you really need this book for a class, the introductory version is properly bound (or look for an alternate source). If you are teaching this class PLEASE PLEASE PLEASE look elsewhere.

This book is the required text for a graduate course in database systems. We covered about 80% of in the class. At well over 1000 pages, the book has a lot of information. The chapters are written well. A running case study is presented throughout this book as an example. Most of the chapters are easy to read although it does get dry at times. Some of the chapters were very complex and highly theoretical especially the one on normalization (chapter 6) which perhaps only academics will care to know enough about. Chapters on XML, database indices, query processing, distributed databases and data mining are excellent. This isn't a book you can read in a weekend. It will take a few months to read and assimilate all the concepts presented here but after you are done, you will have a very strong background in this area. Overall I enjoyed the book very much. A broad spectrum of topics with enough detail is provided. Highly recommended for novices and intermediate users alike.

There is a ton of information in this book, and the information flow from section to section is pretty decent, but I wish there were more examples or more thorough examples. I'm the kind of learner that needs to see things worked through to get a good grip on it. The book does this sometimes, but in many of the more complex examples (when really needed) the explanations and visual representations are often quite slim. In most cases, it would take an entire page or two to show the beginning information, the steps between, and the final result, but I would rather have a thicker book that I understood more thoroughly.

This book tries to be too many things to too many people. According to page xxiv of the Preface:

"In addition to an introductory database course, the book contains enough advanced material so that it can be used for the following courses:

- An undergraduate or graduate course in transaction processing for students who have had an introductory course in databases

- An advanced undergraduate or a first graduate course in databases for students who have had an introductory course in databases

- A course in electronic commerce and Web sevices."

The first half of this book is made up of the material from its "Introductory Version" brother (ASIN:0321228383). The last half is the additional material to be used for the other courses listed above.

The problem is that the book reads more like a brain dump of everything the authors know about databases instead of like a textbook tying to teach some reasonable subsection to us ignorant masses. More specifically, each section (and sometimes each chapter) should probably be an entire textbook in itself. As an example, Chapter 15 talks about XML and Web Data. It starts by talking about how data on web pages is semi-structured and how this can lead to problems getting that kind of data into a database. It then introduces XML to the reader as a possible way to overcome this difficulty. Then, the authors basically dump the entirety of the XML language's syntax and semantics on you (XML Elements and Database Objects, XML Attributes, Namespaces, Document Type Definitions, Inadequacy of DTDs as a Data Definition Language). Since that section ends with the inadequacies of XML, the authors then go on to do the same thing with a revision of XML (XML Schema: XML Schema and Namespaces, Simple Types, Complex Types, Putting It Together, Shortcuts: Anonymous Types and Element References, Integrity Constraints). Now that they've told us everything that we'd ever want to know about the data handling capabilities of XML and it's revisions, they go on to describe (in detail) the syntax and sematics of four different XML Query Languages (XPath: A Lightweight XML Query Language, XSLT: A Transformation Language for XML, XQuery: A Full-Featured Query Language for XML, SQL/XML). Mind you, this is ONE CHAPTER (almost 100 pages long). Most authors would have treated this as a textbook (and course) in its own right. But, this is just one of 26 similarly-written chapters in this book.

Also in the preface, the authors state that "rather than focusing on how to build a database management system (DBMS), our approach focuses on how to build applications that use such a system. We believe that many more students will be implementing database applications than building DMBSs." That might be true. But, since I started with only a light dusting of knowledge of the workings of DBMSs, and the first half of this book is supposed to be an "introductory database course, finding out how to build a DBMS would probably have taught me more about how they work than what the authors present.

At a more pedantic level, my next biggest gripe is with the amount, type, and degree of contextual references in the book. There are tons of backward references to absolutely vital, detailed tables in the book. Unless you have a phenomonal memory, there's no way you can get by without constantly paging back (in some cases, hundreds of pages) to see what the authors are talking about. In the authors' defense, I can see why they did this: the book is already almost 1,200 pages long. If they had copied those tables to every place they reference them, this unwieldy tome would have been even larger. But, worse than the backward references are the FORWARD references. They're not as prevalent as the backward ones, but I can't come up with any real justification for them. In many cases, the authors reference material that's several pages ahead of where they are. It's not like the paragraph ends way up there and that's the first chance they get to include the material. In several cases, they included the reference way past the end of the SECTION (not just paragraph) where they were talking about it. Very irritating.

As an aside, Florida State University (FSU) uses this book in its COP 4710 course: "Theory and Structure of Databases." With a professor available to TEACH the material in the book, this book is probably acceptable. But for the individual reader (like me), it's not very useful. I rate this book as 2 stars out of 5.

As a not-very-academic veteran software developer, I enjoyed this book immensely. In a clear and breezy manner it provides the academic underpinnings of what I've been doing in the corporate world for so long. And the breadth. In addition to the basics, topics such as ER Design, Object Databases, XML, Web Services and Data Mining are covered. Highly recommended.

Product Details :
Paperback: 1272 pages
Publisher: Addison-Wesley; 2 edition (March 26, 2005)
Language: English
ISBN-10: 0321268458
ISBN-13: 978-0321268457
Product Dimensions: 7.7 x 1.6 x 9.2 inches

More Details about Database Systems: An Application Oriented Approach, 2nd Edition

or

Download Database Systems: An Application Oriented Approach, 2nd Edition PDF Ebook

MODX: The Official Guide 1st edition, Bob Ray



Finally! I got my hands on a copy of BobRay's book! And the first thing I saw when flipping it open to a random page was the "getParentIds()" function. It looks like I need to rewrite the old UltimateParent snippet to make use of this. Even though I've been a MODx developer for over 8 years, this book has immediately become one of my primary sources of MODx know-how.
One very interesting feature of the book is the sections on Evolution, "Evolution Notes" at the end of the chapters. These notes describe similarities and differences in how Evo handles the subject being discussed. This will be even more significant as Evo development picks up and continues.
The book is over 700 pages, with 13 chapters and an extensive Appendix. While some of it is already obsolete at this point (what computer tech book isn't already partly obsolete by the time it gets published?) the vast majority of its content will definitely be useful. Since I'm already intimately familiar with the basics of how MODx works on the surface - surface functionality hasn't changed much from Evo - I especially find the chapters on using the xPDO-based API invaluable.

THE BASICS

The first six or seven chapters cover the basics of how MODx organizes the content and functionality of a website. After describing how MODx works in general, they go on to explain the basic building blocks of Resources, Templates, Chunks, Template Variables, Snippets and Plugins. For new users, these are well-written and will give you a great insight on how best to leverage these resources and elements to build your sites while maintaining separation of content, presentation and function. For the old hands, they are worth at least skimming through, as they do cover the new twists Revo puts on some of our old friends, like Symlinks and Static Resources, and how all elements can have properties, and can be static elements pointing to files.

CODING THE REVO WAY

Chapter 8 is where things really start to heat up. Revo has a totally different core than Evo. This new core, based on Jason Coward's xPDO library, is fully OOP, MVC, and all sorts of other clever acronyms. But it really does open up whole new approaches to developing for MODx. While snippets and plugins still superficially perform the same functionality as they do for Evo, PHP coding for Revo is a whole new experience. Chapter 8 is over 100 pages explaining how to use the the xPDO-based API with all of its "get" and "set" methods. Object-oriented junkies will be right at home. Examples and tutorials abound.

ORGANIZATION AND SECURITY

Next, in chapter 9, Revo's ability to rename the manager and put its core files outside of the web root are discussed, as well as the organizational possibilities in the concept of "contexts". Contexts make it possible to manage multiple domains and subdomains using the same MODx installation. They are also often used to provide pseudo-subdomains or subdirectories for managing multi-language sites.
Chapter 10 is arguably the single most important chapter in the whole book, as it demystifies the Revo user management system. Permission, Access Policies and Policy Templates, Roles, users, user groups and resource groups are all explained, along with how they fit in to the Access Control List model of Revo security. A number of tutorials working through several common scenarios help illustrate how it all comes together.
Chapter 11 describes how the Manager interface can be customized using Form Customization and Custom Manager Pages, instead of or in conjunction with user permissions.

EXTENDING MODX

Chapters 12 and 13 deal with third-party add-ons, describing how to use the Package Management feature to easily install ready-made add-ons from both the official MODx repository and local packages, and how to create your own add-on packages.

APPENDIX

Finally, the extensive Appendix section has a wealth of useful information. It starts with the API, including xPDO functions, the xPDOObject class that is the foundation of everything, MODx object functions, and the modUser class.
The Appendix even includes a nice introduction to PHP programming, with of course tips and tricks particular to coding for MODx. Debugging and good coding practices are covered.
Using the MODx mail system to send mail via SMTP is described, and finally an exhaustive list of the system events, used to trigger plugin code to modify the behavior of MODx without modifying core files, is provided.
BobRay has for years been helping out newbies and experienced MODx users on the forums, and his Bob's Guides website has excellent articles and tutorial on all kinds of things MODx, as well as some pretty good bread recipes. This book is definitely something that every MODx user, from designer to developer to content editor, should have handy.

I am not a professional web site developper.

I have developped and maintain a dynamic web site(with PHP and MySql) for my hobby interest though. This site is more than a simple blog site and run on MODX.

When I started using MODX, I had a good understanding of HTML and CSS. I also had a working knowledge of JavaScript but no knowledge of PHP. There was a good series of modX site creation instructions on the coding pad blog (just google with "coding pad modx tutorial".) I gained most of working knowledge on MODX from this internet resource. The said tutorial get you going on constructing a database driven web site in relatively short time. Note that I also evaluated Joomla and Drupal at the same time, loaded them on the server and tried them out. In the end I chose MODX over them, mainly it allowed a direct transition from html based web site to dynamic web site. Other systems force you to set up the site their way. With MODX, I did not need to rewrite my html markup, my menu structure and/or my thought process. Infinite amount of fine tuning as to how the web site should look is possible with MODX.

During the course I started to learn PHP to appreciate the power of MODX. Thanks to my knowledge with JavaScript, learning PHP was not difficult. What was difficult was the way MODX let you utilize PHP in "MODX way"

I bought Bob's book the moment it came out. Aside from usual stuff that tells you how to build website without any coding, the most strong point of his book is about how you can vastly improve your site with a little PHP coding and let the MODX engine (with APIs that you can tap) take care of otherwise hard programming exercise.

This is a thick book. You need to skim through the book and get a feeling of what is available inside. Then while you are working on creating a site, and have some questions, you can go to the excellent table of index at the back and find a topic, read them through and apply to your project.

Case in point. Recently I needed a method to dynamically insert a CSS file at the section of particular pages. I remember seeing modx->regClientCSS in the online MODX page, but there was not much of an information other than the mention this can insert a CSS file. Enter Bob's book. Here is what is shown in this entry.

reg* - The following five methods insert CSS,JS, or HTML at various points of a document. In all cases, the script is registered with MODX so that it won't be injected more than once. Multiple scripts are injected in the order in which they are reigstered.
regClientCSS(string $src) - Places the string just above the closing taf of the document. If $src contains ''

This chunk of information turned out to be the exact information that I wanted to know. In another word;
1) Multiple calls to this method will not result in multiple references to the same CSS. the function takes care of itself as "required once"
and
2) parameter can be not only a file path but also a string that actually contains style tag and attributes ""

I could have eventually gain this knowledge by googling Internet I am sure. but it could cost me half an hour or more.

The book is packed with this type of information. I constantly going back to the book when I am working on the site. Indispensable.

If you are actively developing websites with MODX this book is a must.

I bought Bob's guide to MODX after working with MODX for several months. While I was able to get started on my own fairly easily it took Bob's guide to take me into moderate and advanced MODX territory.

The guide *easily* paid for itself the first week I had it. Instead of searching Google for hours I just looked up the relevant topics in the index and found the appropriate section. No matter the topic Bob treats it clearly and thoroughly.

The book is well organized and Bob fills it with plenty of examples. You can either read it from cover to cover, or skip around as you need to learn about various MODX topics. In many cases the examples are the most helpful portion, but they are pieces of code that I haven't been able to find online.

Finally, the author actively monitors the #MODX hastag on twitter and provides ongoing support there as well as the MODX forums. You can't go wrong with an author that backs up his material that way!

I've been designing web sites for well over ten years now and I have never enjoyed using any software programs ... mainly because I enjoy writing my code by hand and designing my own templates as I please. Software programs always restrict you to the templates provided and if you try to change them ... well, it just isn't possible.

But recently, I heard about MODX, which allows you to use your own templates (or to modify the MODX templates as you please), and I said, "Finally!" So, I downloaded the software and started digging in. Unfortunately, the tutorials that I found on the web, although very helpful at times, often left this "newbee" out in the cold and the dark; in the woods, on a moonless night, without a flashlight! Yipe!

So I decided to take a chance at ordering MODX: The Official Guide. Honestly, I was skeptical about the purchase but went ahead, in hopes that I wouldn't be disappointed. Well, I got my copy a few days ago and I have to tell you -- I am really impressed!!!

Bob Ray has done a magnificent job! I mean, I was so pleased to see how clearly he explains everything! No kidding ... most books like this are not only dry and boring, but also very tiring ... and worded in ways that make the execution of various tasks very difficult to comprehend. Not this time! I find myself blazing through, page by page, and understanding exactly what I need to know. This is great!

If you are interested in learning MODX ... don't hesitate to buy this book. Bob Ray will walk you through every step and explain every task in enjoyable ways!

Good job, Bob!

Product Details :
Paperback: 772 pages
Publisher: MODX (September 1, 2011)
Language: English
ISBN-10: 0983619409
ISBN-13: 978-0983619406
Product Dimensions: 10 x 8 x 1.5 inches

More Details about MODX: The Official Guide 1st edition

or

Download MODX: The Official Guide 1st edition PDF Ebook

Spring Batch in Action 1st edition, Arnaud Cogoluegnes



Summary: Spring Batch in Action is a flawlessly written book. The topic of batch processing in Java often gets a second class coverage and this book puts an end to that. The book is very visual; filled with logical diagrams (UML and other formats) the book instantly becomes a referential manual for anyone willing to assail the topic of Batch Processing with (or even without) Spring Batch.
Written in a sequential manner on which every chapter builds on the previous chapter the book aims to tackle the topic of batch processing with Spring Batch. However, although the book is aimed squarely at Spring Batch, the reader who is less enthused about Spring in general, would benefit greatly reading about batch processing in the context of a `separation-of-concerns (SoC)' concept.

Chapter 1: The book begins with a thorough definition of batch applications. From data volume, automation, reliability, robustness, and performance; all topics are explained in a manner all developers with at least an intermediate understanding of data processing should have no problem following. Once the initial topic of batch applications is introduced the book quickly introduces the title framework; Spring Batch. It runs through the architecture of Spring Batch and how it enhances the existing SpringFramework to perform batch processing while Spring Batch itself utilizes SpringFramework to perform its internal tasks. This symbiotic relationship is indeed fascinating and the book does not miss this point. Once the formal introduction to Spring Batch is complete, a quick example is shown.

Chapter 2: The second chapter starts with the formal `getting started' in the world of Spring Batch. As part of the reading and writing product data, chunk processing is formerly introduced with diagrams and a forward looking statement about later chapters which will delve into more detail about chunk processing. If you have never performed batch processing in this manner, this chapter alone is mind-bending as it introduces a simple concept that will forever change your personal view on how batch processing should be done. I personally believe if the book stopped right here I would still consider it a major success. An honorable mention in this chapter is the quick overview of ETL (Extract, transform, load); this is a topic worth mentioning in a book of this caliber and the authors did not overlook it. Overall, Chapter 2 is a quick overview of what Spring Batch can do and how a developer willing to use Spring Batch can quickly delve into developing an application with Spring Batch.

Chapter 3 starts defining the domain language for batch processing. It quickly introduces the developer how to configure the Spring Batch infrastructure. At this point the job repository is introduced and the Spring Batch database support is shown through an example utilizing the H2 database; to those familiar with Spring, this section should look very familiar as the configuration itself is nearly identical to a typical Spring database configuration application context XML; of course, the repository configuration would be new to anyone not familiar to Spring Batch, but the XML configuration file will still remain very familiar despite the Spring Batch namespace. At this point as logic would have it; Spring Batch Admin, would be a nice addition; well, the book does exactly that; it shows the admin interface. It then continues to explore the anatomy of a job. Linear and non-linear job flows are explained and demonstrated through XML configuration steps via the job/step/tasklet tags. This chapter also delves into job instances and job executions. The formula for a job instance shown in the book is simple (JobInstance = Job + JobParameters). Lifecycle of a job and job execution is briefly explained followed by the topic of running multiple instances of the same job.

Chapter 4 delves into batch configuration by exploring the Spring Batch XML vocabulary; first the Spring Batch XML namespace and Spring Batch XML features are introduced; then the chapter naturally delves into details on how to configure the job and the steps and how the configuration hierarchy flows in Spring Batch. Nested job configurations are also demonstrated. In this chapter you will also learn about configuring streams as well as transactions and the job repository. Advanced topics are introduced at the end of the chapter with a quick introduction to various Spring topics such as scopes and Spring Expression Language (SpEL). If you have never delved into those topics before, they are worth a look as they apply well beyond Spring Batch.

Chapter 5 demystifies the launching process of Spring Batch jobs. At this point it is worth mentioning that, you are really stepping into a new territory. The book is now into what I would call "Part II" - you have learned the basics; you have created a few jobs; configured them and launched them. At this point the book takes a further refinement on topics already covered before. And so this chapter takes the launching process over different approaches; via schedulers, command line or embedding jobs in a web application. The as part of the launching concepts, Spring Batch launching API is revisited in greater detail followed by an overview of launching solutions. Then, each solution is explored in greater detail; the command line execution model by first introducing the already provided CommandLineJobRunner. Job schedulers are nicely introduced. The topic is kept to the three most popular implementations of such concepts. The quintessential cron is first followed by Spring scheduler (which in Spring 3 supports cron syntax) and as the last and far more advanced option; Quartz Scheduler. This section explains the cron syntax in great detail and the reader would be well advised to use this book as one of the main references for such topic. The chapter continues on the topic of integration with a web application. For a reader who has never integrated a Spring-based application, this chapter is well worth it as it shows how to integrate Spring Batch in a web application. Taking Spring Batch out of the picture, this topic applies to any Spring application. To end on a high note, Chapter 5 describes the process of stopping Spring Batch jobs gracefully; using the JobOperator via JMX or via StepExecution.

Chapter 6 continues the refinement process by delving deeper into the `reading data' process. The data reading concepts are first introduced to the reader. The Spring Batch related reader Java interfaces are displayed with an introduction to the ItemStream interface (an interface well worth reading about). Once the concepts are out of the way each approach is introduced; reading files; at first the supported formats are demonstrated and how they are handled internally as well as how the configuration is performed to each type of reader. XML formats are also explained with a word of caution on DOM. Once file readers are out of the way, databases follow; first starting with simple readers such as JDBC item readers such as the JdbcCursorItemReader. In this section the JDBC support classes built in SpringFramework come in handy and they are demonstrated as well. ORM item readers are introduced as well and examples using HibernateCursorItemReader and HibernatePagingItemReader are shown. At this point the chapter turns and explores other input sources via ItemReaderAdapter, JmsItemReader or custom readers.

Chapter 7 refines the concept of writing data; starting with the concepts moving on to file writers using the FlatFileItemWriter and StaxEventItemWriter; the concept of writing to file sets is introduced at the end of the file writer section. The chapter continues with a section on writing to databases, just like the `reading data' counterpart introduces the JDBC classes such as the JdbcBatchItemWriter as well as the ORM classes such as the HibernateItemWriter. The adapting existing services for reuse introduces the ItemWriterAdapter class which allows delegation to another service. PropertyExtractingDelegatingItemWriter is another useful class and it is demonstrated in this chapter with examples. JMS logically has its own writer; JmsItemWriter is introduced in a short and powerful example. The SimpleMailMessageItemWriter is demonstrated to show that you can also send emails using Spring Batch; this is a very useful feature of Spring Batch. Chapter 7 continues with the custom item writers which as a developer you would have to write if the built in writers do not suffice. The book demonstrates how one might go about implementing such writer using the Spring Batch ItemWriter interface. Advanced writing techniques are reserved as the closing arguments in Chapter 7; in here the concept of chaining writers is introduced and how a developer could use the CompositeItemWriter to implement complex writers.

Chapter 8 focuses on processing data by enforcing and placement of business logic in the processing phase. The `in-between' item processor concept is introduced by revisiting existing code from previous chapters. In here the transformation and filtering concepts are introduced and applied to data. A short example implementation through the ItemProcessor interface is exemplified at first; while the Spring Batch built in processors are exemplified later in the chapter (ItemProcessorAdapter, ValidatingItemProcessor and CompositeItemProcessor). As part of the data processing the item transformation process is also introduced. Filtering and validation receive a good overview and the example code is very easy to follow. To simplify validation Valang, a validation language, is used; this is yet another nice addition and once again shows how to create a collaborative project using various open source projects in Java.

Chapter 9 - bulletproof jobs takes the concepts of robustness, traceability and control to a great introduction as part of the batch processing.

Chapter 10 - although transaction management is built into Spring Batch it is well worth the effort to learn what it takes to have such functionality as part of the batch processing and how to override the defaults in case of such requirement is necessary. This chapter introduces the concept of transactions via a primer; it then moves on to Spring Batch and transaction management. Common pitfalls are exemplified with common applications to JMS ad well as databases. A worthy mention is the idempotency example in the context of batch jobs.

Chapter 11 - handling/controlling execution is about controlling the jobs flow in case of failure or unexpected events. As this is a part of the Spring Batch step-based architecture, the book takes the reader through various paths of control while explaining various subtleties such as batch status vs. exit status. The chapter then moves to sharing data between steps and what techniques can be used to enable data sharing between steps. As the chapter winds down, the book explores the externalization of flow definitions to enable reusability. The final topic of this chapter is about choosing how to end jobs after the execution based on various conditions.

Chapter 12 - Enterprise integration is a complex matter and in this chapter the book first starts to explain what this topic means and what the challenges are as well as what different styles of integration exit in accordance with the "EIP book" (Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions ISBN-10: 0321200683). Once the introduction is out of the way, the topic zooms into Spring Batch and enterprise integration. At this point another Spring project is introduced; Spring Integration. The project gets a quick overview and then the combination of Spring Batch and Spring Integration is exemplified in great detail. It is worth mentioning that Dave Syer is mentioned by name at this point; Dave is a great asset to Spring batch and he has demonstrated numerous times how Spring Batch can be integrated with Spring Integration (this is also mentioned in the book). The RESTful submission of jobs brings over Spring MVC as well the RestTemplate introduced as part Spring 3.

Chapter 13 - Monitoring is a part of Spring Batch and this chapter introduces the monitoring concepts and then moves on to demonstrating how to access batch execution data and then demonstrates monitoring using various examples via Spring Batch Admin and JMX.

Chapter 14 - scalability is important and the book delivers a special chapter dedicated to this topic. Before tacking scalability, the chapter first explores performance improvements. Then the scale up and scale out concepts are introduced and then the build in features of Spring Batch are explored. This is a very attentive chapter which requires the reader to pay attention to the advice given. Multithreading examples are provided via the Spring task executor which is a very powerful functionality provided by Spring. As threading is a topic often confusing this chapter dedicates a good part to multithreading. It then moves on to remote chunking using channels with Spring Integration. Partitioning is introduced to demonstrate parallelism as part of the data processing. The chapter ends with a comparison of patterns and a bit of advice how to choose the best data processing pattern.

Chapter 15 - testing is an important part of any development process. This chapter first focuses on the basics of what it testing is and how it can be performed using JUnit and Mockito. Every phase introduced in the previous chapters is given ample coverage.

Appendix B: Setting up - this is about getting you up to speed to develop your projects using Spring Batch. The appendix does a brilliant job at quickly introducing Maven and its plug-ins relevant to Spring Batch context. Once that part is out of the way, Spring STS is introduced and a quick tour is given. At the end of this appendix one should feel ready to develop Spring Batch projects using Maven and Spring STS.

Appendix B: Spring Batch Admin - this tool is an essential piece of the puzzle in Spring Batch development and as a consequence it gets an entire and thorough appendix dedicated to it.

Conclusion: I would highly recommend this book to anyone willing to explore the topic of Batch Processing; the book is filled with meaningful examples relevant to the real world. To make matters better the code is properly divided by chapters and built with maven. This allows the projects to be easily imported using any modern Java IDE (Eclipse via m2eclipse, IntelliJ and NetBeans). By the end of this book, I became more aware of what it takes to develop batch applications and how to develop them using Spring Batch.

Product Details :
Paperback: 504 pages
Publisher: Manning Publications; 1 edition (October 7, 2011)
Language: English
ISBN-10: 1935182951
ISBN-13: 978-1935182955
Product Dimensions: 7.4 x 1 x 9.2 inches

More Details about Spring Batch in Action 1st edition

or

Download Spring Batch in Action 1st edition PDF Ebook

The Quantum Age of IT 1st edition, Charles Araujo



'Charles has really nailed it for any executive struggling with IT strategy. How IT got here and where it's going. This book really hits at the heart of what is missing in IT today and provides step-by-step approaches loaded with examples for steering the strategic course for IT in the 21st century. An easy read, yet will get the creative juices flowing for any IT professional executive!' (Randy Steinberg, Author, ITIL Service Operation, 2011 Edition, Principal - Migration Technologies) 'What a great, insightful and thought-provoking work! The best part is that Charlie makes it practical and easily understandable with his real-life examples. Finally, a road-map for IT professionals who want to thrive in the business world in which they are being thrust.' (Jaime L. Rosado, Jr, Col (ret), USAF, Medical Serice Corps, FACHE, FAHM) 'A bracing indictment of IT dysfunction, and a well-informed discussion of promising avenues for IT improvement. I agree completely with Charlie that a systems approach is essential. Recommended!' (Charles T. Betz, erp4it.com) 'Araujo's easy-reading style belies the significance of his message. IT has changed fundamentally. Don't get left behind.' (Mark Smalley, Ambassador at the not-for-profit ASL BiSL Foundation and freelance IT Management Consultant) 'The role of IT has changed in a revolutionary way. Success in this new world order will require a new way of thinking and a new set of competencies. Charles Araujo helps his readers understand the need for change, as well as the ways that they must change in order to leverage this exciting opportunity.' (Larry Bonfante - CIO USTA, Founder CIO Bench Coach, Author, Lessons in IT Transformation)

This book is really great, very interesting and the book inspired me to push myself to establish detailed a long term education plan for myself.

I really liked the first part of the book, say the first 100 pages and the last part of the book really got me fired up!!
It was a very enjoyable read and pushed me in the right direction - quite fun at times and I felt it was written in a way that spoke to me directly.

I highly recommend this book to anyone that would like to see where IT is going in the future... you better get ready and prepare yourself or you will be out!

An excellent read from a thought leader in IT Governance and transformation. The author has clearly worked in and around the IT field for quite awhile judging by the scenarios and insights scattered throughout this book. While it is a quick read, I discovered valuable ideas and sections that I will be coming back to reference for years to come.

As an IT professional for almost 17 years and having worked for start-ups, consultancies, and multi-billion dollar corporations, I found the specific directions for mapping future IT careers and organizations of particular interest. Most "thought-provoking" books are light on specific knowledge to look into while most technical books ignore too much of the interdepartmental planning, coordination, and interfacing standards and controls needed for larger projects and initiatives to succeed (and the knowledge needed by individuals to succeed in those environments).

The scenarios and suggestions would be just as useful in SMBs with some streamlining/simplification where needed, as well.

Again, while it was a bit short, it was an engaging and interesting read with enough worthwhile information to justify adding to my professional library.

When I started to read this book, I was very skeptical. The title and cover did not promise an interesting read. But as they say, you cannot judge a book by its cover. Lately, I found that many business books are very shallow or based on ideas that might have enough depth for a blog entry but not for a whole book. Well, this book definitely is not one of these books. It is a long overdue critical review of the IT function in a corporate setting with a great historical perspective but more importantly with an important look toward the future. It explores how the IT function must change to stay relevant in order to provide value to its customers. It challenges IT professionals to stop hiding behind technologies and develop the critical soft skills that a necessary to deliver value. Somewhere hidden in the book is a sentence that perfectly sums up the core message:"...the real catalyst for change will not be the (social) technology, but rather the purely human social interactions that must occur". Not an easy message for the average IT professional that bases her/his self-esteem on technical prowess. However, a much needed message. In my own experience there is a state of stagnation in many IT organizations which makes them focus on the wrong areas just as the author points out. This book, although you quite naturally might not agree with every point, should be a must-read book for IT professionals that want to evolve and everybody that "owns" IT in a corporate environment.

"The Quantum Age of IT" is both much needed and a pleasure. It is in fact overdue in a time when IT organizations are facing unparalleled pressures for change from both internal and external sources. This book draws heavily on a rich matrix of anecdotes from history, literature, IT experiences, and the author's own personal history, that underscore and illuminate the fact that most of the problems facing IT profesionals today are less technical than human ones. Given the breadth of scope-- from the impact of cloud to IT-to-client dialog, to the evoluton of IT as an organization -- the author's flow is surpsiingly cohesive and easy to grasp. The recommendations for emerging into the "Quantum Age" also make sense and are readily understood. I recommend this book to anyone interested in re-evaluating their present/future in or around IT, including non-IT consumers of IT services seeking to better understand what the dilemma might look like from the "other side."

Product Details :
Paperback: 314 pages
Publisher: ITGP (November 29, 2012)
Language: English
ISBN-10: 1849283753
ISBN-13: 978-1849283755
Product Dimensions: 5.5 x 0.6 x 8.5 inches

More Details about The Quantum Age of IT 1st edition

or

Download The Quantum Age of IT 1st edition PDF Ebook

SQL Server MVP Deep Dives 1st edition, Paul Nielsen



One of the few SQL books I consider a must-have. It's not for beginners, but it's absolutely essential to get the most of it.

Example: I was looking at shredding XML data. Hey, look, there's info on that. I want to look at a concise article on SQL Audit. Done. Service Broker? Sure, from two different perspectives.

While, yes, there are some duff chapters, the level of detail and attention and out-and-out "holy crap you can do that?" moments more than make up for it. I probably reference it every 2 weeks. Which, given the breadth of info on the 'net, should say quite a bit.

The book is good in most areas, but there are some subjects that I question as a long time data architect/DBA/Modeler. The authors are well known, but some may find it a somewhat disjointed due to each chapter being written by different authors - it is a compedium of knowledge though, and I have referenced it while doing SQL Server things.

My latest SQL read was SQL Server MVP Deep Dives. It's a compilation - 59 chapters - on various SQL Server topics, written by Microsoft MVPs. What's so cool about this book, as opposed to most, is that it plays to an author's strengths and passions. It doesn't cover one topic; it covers every aspect of SQL Server.

Part 1 - Database Design and Architecture

I found this section relevant when I opened this book because I was starting two database design projects. Louis Davidson and Paul Nielsen's database design ideas are useful for everyone to review from time to time.

Part 2 - Database Development

The "Error Handling in SQL Server applications" chapter by Bill Graziano was immediately useful and impactful. Using "Try...Catch" and RAISERROR are often overlooked, but shouldn't be, when writing T-SQL.

"Introduction to XQuery" by Michael Coles also caught my attention, as learning it is one of my goals for 2012.

"Full-text searching" by Robert C. Cain is an awesome chapter. It covers how to set up, use, and maintain full-text catalogs and indexes. I've read about it before, but this had some of the best real-world examples. I had been looking at implementing it in a project at that time, so it was great timing.

Reading "Why every SQL developer needs a tools database" by LessThanDot's very own Denis Gobo was cool. (You guys! I get to blog with authors and MVPs and really smart, amazing people!) Denis makes a great case for a separate database to hold shared functions. He also emphasizes the need for a numbers table, which I've recently re-acquainted myself with. Trust us, you want one.

I learned something brand new! (At 5:55 am, no less!) "Deprecation feature" by Cristian Lefter showed how to track the use of deprecated features through perfmon, a trace, or (my favorite) extended events. How did I NOT know about this? What a great audit tool. Now, how to effectively implement this...

I like the fact that non-SQL MVPs are also contributing. Even a (gasp) Access MVP.

Part 3: Database Administration

"My favorite DMVs, and why" by Aaron Bertrand is one of my favorite chapters. DMVs are great. What I learned is that Aaron made his own sp_who! I wish I was still in a large corporate environment to test that. He also shows an uptime function that he created in his utility database, which he uses in almost all DMV queries. Good idea!

Ron Talmage wrote "Some practical issues in table partitioning". It covered the basics - usually writing about this topic is overwhelming. I know I don't fully understand partitioning yet. One thing I know: I think LEFT is easier to understand.

Scott Stauffer wrote "Successfully implementing Kerberos delegation". In February, I had the pleasure of meeting Scott in Redmond, WA. I remember many Kerberos issues from my previous job. I never had a solid understanding of all the pieces until now. He provides a great great list of resources. I would love to see more people understand Active Directory and related services. (As Argenis Fernandez once tweeted, you can't be really good at SQL Server until you get AD.)

Part 4 - Performance Tuning and Optimization

There are a few chapters on indexes here, because they are that important.

"How to optimize tempdb performance" by Brad McGehee includes many useful tips. Some are very basic, like splitting it into multiple files and having the files located on a different disk than data files. He also talks about pre-allocating space and how TDE affects tempdb.

Kevin Kline's chapter, "Correlating SQL Profiler with Windows Performance Monitor", blew me away. I always knew you could do it, but didn't realize how easy it was. I wish I'd known this a year ago.

"How to use Dynamic Management Views" by Glenn Berry is immediately useful, just like the ebook "SQL Server DVM Starter Pack" he wrote with Louis Davidson and Tim Ford. This chapter includes lots of queries you can run, work with, and edit further. DMVs continue to be one of the features I use most in SQL Server.

Cristian Lefter talks about Xevents in "XEVENT: the next event infrastructure for SQL Server". I agree, these are the future of monitoring. It's a good overview that summarizes key points. There are also a couple of easy-to-follow examples.

Part 5: Business Intelligence

Erin Welker's "BI for the relational guy" gives a good overview of how OLTP differs from OLAP. She discusses what Microsoft products are BI-related. There's also a list of further reading material. (More books to put on my list...)

William Vaughn's writing style for "U nlocking the secrets of SQL Server 2008 Reporting Services" had me giggling from start to finish. He gives a thorough overview of the many often -overlapping parts of SSRS. He also makes note of things like IIS no longer being required.

"Expressions in SQL Server Integration Services" by Matthew Roche was an interesting read for me. I'm familiar with expressions in SSRS and thought this might be similar. Not really. Expressions are powerful, because they allow you to offer more than one option for some properties.

The book closes with an excellent chapter by Andy Leonard, "Incremental Loads using T-SQL and SSIS". The first sentence had me giggling. The comparison between the two options is thorough and interesting.

This section made me realize how little I know about SSIS, SSAS, and data mining.

59 Chapters Later...

I would recommend this book to anyone who works with SQL Server in any capacity. It touches on so many topics that anyone can find something of interest. Everyone is guaranteed to learn something. It's easy enough to read one chapter in the morning, or at lunch, or before bed. Thank you to all of the authors who worked on it!

After seeing what I thought was the author list and given the title "Deep Dives", I was really excited about the book. I figured a list of MVPs diving into difficult subjects would be really interesting.

Unfortunately, the book is an overview without any deep dives at all. The chapters provide less detail than the average BOL page. For example there is a full chapter on how to join tables, another chapter informs us that indexes can help with queries and even introductions to XML, Reporting Services, Profiler, etc.

Basically the book is a collection of 59 chapters of "Hello World" to various featuers and is what you would expect from a Microsoft Marketing Presentation on the wonders of SQL Server.

You will see the big name authors advertised, but they did not write any of the chapters. They are "editors" of others work.

If you are interested in in-depth knowledge of SQL Server, I doubt you will get any value from this book, unless you are a SQL Server Newbie.

I didn't buy this book the day it came out because despite the fact that all 53 of the contributors are SQL Server MVPs (indeed some of the the world's leading experts and practitioners), I wondered if the fact that there were so many authors, it might mean the chapters would be just 'sound bites' with only a moderate amount of interesting content.

I could not have been more wrong! In fact, it is the complete opposite. Over the last 4 weeks, I've learnt something significant and useful each time I've picked this book up, either directly about SQL Server or one of the associated technologies. I challenge you to pick this book up, open it at random and read a couple of pages, and not learn something useful.

The blurb states "This is no ordinary SQL Server book" and it's not. There are insights and practical know-how that are the result of years of real-world experience working with SQL Server.

The book is divided into 5 sections, broadly divided into the 5 job roles based around SQL Server:

1. Database Design and Architecture
2. Database Development
3. Database Administration
4. Performance Tuning and Optimisation
5. BI Development

The 59 chapters cover material for newcomers and pros, developers and DBAs alike, including some of the new features of SQL Server 2008.

Purchasing the hard copy book, also gets you bonus access to a free pdf version of the book. [The authors of this book have donated 100% of their royalties to support War Child International]

An excellent book, and I'm glad I bought it. Highly recommended.

Product Details :
Paperback: 848 pages
Publisher: Manning Publications; 1 edition (December 20, 2009)
Language: English
ISBN-10: 1935182048
ISBN-13: 978-1935182047
Product Dimensions: 7.4 x 1.6 x 9.2 inches

More Details about SQL Server MVP Deep Dives 1st edition

or

Download SQL Server MVP Deep Dives 1st edition PDF Ebook

Distributed Systems: Principles and Paradigms 2nd edition, Andrew S. Tanenbaum



I used this book for an online graduate class in which the instructor deferred all teaching, exercises, exams, and grading to the textbook. This is bad enough, but add to it that this textbook is a terrible read and a royal pain in the rear to reference and it's a miracle that I managed to eek out an A. I say miracle, but I really mean countless hours of research, sweat, and tears.

First, the reading is terribly wordy yet still amazingly vague. I read pages and pages of text which revealed precious little usable information. Then I'd read a barrage of facts condensed into a few heavy, indecipherable sentences that don't paint any sort of clear picture. There are a few attempts at humor sprinkled in which result in a head slap and a strong desire to throw the book directly into the garbage.

Second, the book is terribly organized. I'll give the authors the benefit of the doubt that organizing this book must be hard because every aspect depends on something else. The chapter layout (in a table of contents sense) is actually appropriate. However, the organization of information in each chapter is worse than terrible. There's a brief intro, but not really a overview of what they are going to discuss. It will then jump from point to point and back again and then to an unrelated point and then to a tangent and then back to the original point. Once you realize you've totally lost the thread they begin a new topic or a loosely-related case study. Trying to find any specific information (like, say, for an exercise question) is a lesson in futility. You never know where a speck of needed information will turn up, if at all.

Third, the exercises are ridiculous. They are poorly-worded, vague, and subjective. You will spend large amounts of time trying to determine what a question is really asking. As far as answering the questions, maybe 1 in 10 covers material substantially covered in the book. 2 in 10 cover some extension of what is contained in the book that you might piece together with critical thinking skills. 6 in 10 are wild tangents that may be mentioned in the chapter text but without any substantial treatment what-so-ever. Sometimes it might be covered in another chapter (previous or future chapters), but most of the time it requires extensive web research followed by a wild guess. The last 10% relate to a random sentence inserted into a seemingly random paragraph somewhere in the chapter.

Fictitious example: "Cows: Cows can be brown or black-and-white spotted. Cows have 8 stomachs. Cows are stinky. My sister has cows and she says they make lousy pets!" ... 30 pages later ... "Dogs: Dogs are mammals. Dogs like people. Dogs are primarily carnivores (unlike cows, who eat grass). Dogs are neat-o!" Question: "What might one typically find in a bovine's digestive tract?"

Now assume you've never heard of a cow or a dog. You'd look up bovine and determine that it's a cow. OK, let me go read about cows in the text. Well, it says they have 8 stomachs, that might be relevant. Let me search the internet, it says stomach acid, bile, feces, intestines, stomachs, throat, etc. Wait, there's something mentioned in the dog section about cows, is that relevant? Hmm, let me throw all of this into some giant abomination of an answer. Oops, I missed points because I didn't think about all the bacteria in the colon. I'll try harder next time.

Eventually I worked out a system which minimized the pain:
1) read the chapter-end summary
2) read the chapter-end exercises that you need to complete and try to decipher what they are really asking.
3) don't skim the chapter looking for relevant information - actually read the entire 80-130 page chapter. While doing so, write down all the bold words and definitions because they are not collected for you at the end of the chapter. Also, answer any questions you can along the way. If something sounds relevant to the question, but doesn't answer it, then note the page and keep reading. It just might surface again later. Don't let any sentence go unread, no matter how irrelevant the paragraph sounds, because it just might be the one you need.
4) scour the internet for the related information. You might not find the answer to the question, but you might find a better explanation of the topic.
5) do some critical thinking and then make a bunch of wild guesses to finish your assigned exercises. Make sure to cover every possible interpretation of the question. Explain both sides of the argument even if they only ask for one side. Pray for partial credit or that your instructor doesn't care enough to actually read your answers.

I gave this book 2 stars because it really does contain a lot of material and concepts regarding Distributed Systems. I gave it only 2 stars because it is painful to extract this information and get it into any sort of useful representation in your head. It is worthless as a reference and it fails as a textbook. If you have to use it in class, I feel bad for you. If you have to use it in class and your instructor is worthless, then I would recommend dropping the class. If you can't, then may God have mercy on your soul.

Everyone is entitled to their opinion; and some of the more negative remarks on this book are without warrant. The book starts as an exposition into distributed computing and branches into a comprehensive 'overview' of both theory and technical implementations. If you're looking for a book that is specific to one particular region of distributed technology this isn't it. If you've a computer science background you should appreciate the work Tannenbaum and Steen put into this book. It's a great book for academia and reference by information technology professionals who desire to understand the fundamentals of distributed computing. But as some comments have alluded, this is book is but the beginning. As a final note, the material is well referenced so you can branch of into the published works of others as needed.

I don't understand the sense of this book, why it has been written. First of all, it's too academic, with no references to real cases. Topics are never analyzed thoroughly, so at the end of each chapter you have the sensation that something is missing. Moreover, the questions at the end of each chapter are absurd: they force you to make extensive research on the Internet to find the answers, as if the authors knew that they don't tell you anything in the book, so they force you to search information by yourself. The result is that you must start studying each chapter from the questions, because it takes often hours to find the answers, and you don't have time to understand the topic and see the whole picture. If it's not mandatory for your course, I definitely suggest you to buy another book.

First, the book arrived in a package that was hardly still together and hardly protecting the book by the time it arrived at my house.

Second, the book was a softcopy version that had printed on it sales allowed only in India, and some other countries I hadn't even heard of. I have a feeling the book was less expensive than what I thought I was getting which was the hard copy. I at first thought I had gotten the wrong book because the two don't even look anything alike.

A few reviewers of this book already noted its impenetrable prose style and descriptions lacking specifics.

While I am not a specialist in all topics described in this book, I found it to be imprecise and, occasionally, downright wrong or misleading in parts where I had specific knowledge to the contrary. Many times language would appear to be made purposefully ambiguous, as if the author did not quite know what he is talking about. This type of ambiguity may be fine in general literature, but a presumably scientific textbook talking about logical and structured discipline should not be so written.

This book was a required text for my graduate course. I certainly would not have purchased it voluntarily. I find that after reading most of it I gained no useful information or any additional insights that were not otherwise known or available to me.

Add to that bad editing that left the book with a fair amount of typos, grammatical and style errors and the end result is not great.

The cover design is great, though.

This books is, if nothing else, thorough. When you start thinking of distributed systems (or even just working with Application Servers in general), you're going to have to trudge your way through this book sooner or later in order to understand what's going on and what everyone is talking about.

It's definitely informative and you will walk away with a lot of information, but you're never going to say it was a pleasant experience.

Unfortunately, there doesn't seem to be anything out there written any better than this.

Product Details :
Hardcover: 704 pages
Publisher: Prentice Hall; 2 edition (October 12, 2006)
Language: English
ISBN-10: 0132392275
ISBN-13: 978-0132392273
Product Dimensions: 7.3 x 1.2 x 9.6 inches

More Details about Distributed Systems: Principles and Paradigms 2nd edition

or

Download Distributed Systems: Principles and Paradigms 2nd edition PDF Ebook

A Mathematical Introduction to Logic 2nd edition, Herbert Enderton



Reasons for This Book's Success
"Rigor, integrity and coherence of overall purpose, introducing students to the practice of logic . . ."
--Douglas Cannon, University of Washington
"The book is clearly and carefully written. I adopted this text because of its detailed and rigorous treatment of the predicate calculus, detailed and optimal treatment of the incompleteness phenomena, standard notation as developed by the Berkeley school."
--Karel Prikry, University of Minnesota
"It is mathematically rigorous [and] it has more examples than other books . . . I definitely would use a new edition of this book."
--Sun-Joo Chin, University of Notre Dame

There are two types of mathematical texts: source code (definition-theorem-proof-remark-definition-...), and books intended to educate via explanations of where we came from, where we're going, and why we should care. Enderton's (2nd edition) text is an actual *book,* albeit not a superb one (compare to Simpson's free text on Mathematical Logic at [...], which fits my definition of "source code"). For this he automatically earns 2 stars -- though in any field except mathematics, this would earn him nothing.

The prose itself is easy to follow, and makes suitable use of cross-references -- you will not find yourself stumped for 30 minutes trying to substantiate a casual statement made half-way through the book, as with some mathematical authors. High-minded ideas such as effectiveness and decidability appear (briefly) at the end of chapter one, so you don't have to read 180 pages before any "cool" things are presented, and there are occasional (but too few) sentences explaining what the goal of a formalism is before it is developed. Chapter 1, which covers sentential (propositional) logic, also has a short section on applications to circuit design, providing some much-welcome motivation for the material. Model theory is also integrated with the discussion of first-order logic in chapter 2, which is preferable to having it relegated to a later section as in some texts. The book also gives heavy emphasis to computational topics, and even gets into second-order logic in the final chapter -- a very complete coverage for such a small introductory text. These virtues combine to earn it a third star.

My primary complaint is the manner in which rigor is emphasized in the text to the neglect (rather than supplement) of a coherent big picture -- losing two full stars.

For instance, in chapter 1, 10 pages are spent very early on induction and recursion theorems, to put intuitive ideas like "closure" on firm ground. And yet the words "deduction" and "completeness" -- arguably the whole reason we want to study logic in the first place -- do not appear until after the entirety of the rigorous discussion of propositional logic, and even then only as an exercise. Most readers will reach page 109 before realizing that logicians care about deduction or soundness at all.

41 pages from chapter 2 are given over to defining models/structures, truth, definability, homomorphisms and parsing in first-order logic. These complex and highly detailed definitions remove ambiguity from mathematical discourse, and are essential -- but are best viewed as fungible reference material. After all, many alternative renditions of the formalism exist. This is not the essence of mathematical logic -- but to Enderton, they appear to be the field's first-class content.

I found it difficult to see the forest for the trees in this book. I would have much preferred to see examples of deduction proofs -- with exercises in making use of axioms of natural deduction, discharged assumptions, etc -- and a brief discussion of completeness up front. *Then* I would have enjoyed being told "okay, now that we've seen how FOL works in practice, it's important to note that we have not yet set it on a rigorous footing. The next three sections will set to that task via many small steps. We'll see how it all comes together in the end." It is amazing what a difference just a few sentences like that can make in a book on mathematics -- guiding your reader is vital.

I would also have loved to see some more high-level discussion on the history of FOL and justification for it's prominence, the decline of syllogistic logic, the origins of Boolean algebra, etc. But perhaps that is too much to ask, since mathematics educators are (uniquely in academia) not accustomed to contextualizing their material as part of a wider intellectual enterprise.

I had to buy this book for one of my classes. It's terrible! I thought abstract algebra was hard to follow but this book makes abstract algebra seem like a cakewalk. The material is interesting but often confusing. Proofs are not in depth and the examples BARELY help. Definitions seem to contradict each other because of the way things are worded so similarly. This book is TOO formal which makes conceptualizing theorems impossible. Often times, notations are used without explanation. If you are a beginner, avoid this book at all cost. If you're an expert, then you might like it.

The reason I am giving this a one star is because it is no "introduction".

This is a great book as far as content goes. I would give the book five stars if it wasn't for the poor binding these books seem to have.

I purchased this book for a course in logic. When I cracked it open the first time, the binding from the spine of the book began to separate from the cover (along with the paper holding it in). I am not the only person experiencing this problem as well. Of two friends of mine in the course, similar issues have happened.

== Edit ==
I forgot to mention that I contacted Amazon and was offered either a 10% refund, or a replacement.

contrary to what I read among the wealth of dithyrambic adjectives concerning that book !!!

FIRST : As I reached half the book it was already giving signs of a strong "desire" to fall apart, with the front pages almost ripped off and the next pages soon to follow... Academic Press/Elsevier should try to get a training in the UK on how to provide a decent structure for a book in that price range.

SECOND : impractical numbering of sections, theorems, subsections + no mention of sections at the top of the page, making the search difficult + a very dull layout ...

THIRD : A very peculiar way of proving theorems : quite a personal interpretation of induction and recursion (a way for Enderton to free himself from the burden of really getting at the bottom of things...). It seems like Enderton had enrolled in a marathonian effort to give tortuous proofs, often incomplete and based on fistulous definitions, which turn the reading into a continual second-guessing exercise, with its load of annotations...
Added to the annoying game of transferring part of the theory to a bunch of exercises.

FOURTH : With a horrific set of notations, chapter 3 (on undecidability) is simply unreadable and I wish good luck to those who want to understand Gödel's theorems via such confused and confusing text...

FIFTH : I have perused chapter 4 with the faint hope that it wouldn't be a second-order magma... And was disappointed.

I really wish that Peter Smith (his excellent "Introduction to Gödel's theorems" and "An introduction to formal logic" (see my reviews)) decide, one day, to extend his intro to formal logic via a second volume, going further in first- and second-order logic !!!

This is easily the BEST intro. logic book every written. (Yes, I sound horribly biased.) This books covers everything from Sentential Logic to 1st Order to Recursion to a bit of 2nd Order Logic. It's the only MATH book on logic out there that is easy to understand and yet formal enough to be considered "mathematical." Even the treatment of Sentential Calc. brings interesting tidbits (ternary connectives, completeness, compactness, etc). Truth and models (the heart of it) are treated incredibly clearly. Extra topics such as interpretations between theories and nonstandard analysis keep things exciting (for a math book). His treatment of undecidability is well-written and lucid. The second order stuff is fun.

I loved this book. As far as math teachers go, Enderton is top notch. Even someone as unacquainted with math as I was when I studied the book (and as I still am now, I guess) understood what was going on. To be honest though, I did have one advantage, I was a student of the master, Enderton, himself. I learned so much about logic (and math in general) from this great book. I was fortunate enough to study some more with Enderton throughout my years as a student. Of course, I went through his "Elements of Set Theory" which is also fantastic. Too bad he never wrote a book on model theory...But, you never know; maybe someday he will.

Maybe it's because I'm only in undergrad, but I found a lot of the proofs in this book to be incomplete and hard to penetrate. Sometimes he would simply write "induction" and be through with it. That being said, this book covers a lot more material than other logic books, and the majority of it is extremely interesting. Much of it is, again, hard to penetrate (section 2.7 almost made me want to give up), but I found it to be a very worthwhile read. It covers things other authors simply hand-wave away such as the proof for the recursion theorem and the unique-readability theorem. I would recommend this to anyone with suitable mathematical maturity, but don't expect an easy read. For someone at the undergrad level there are better places to start.

While he does make mention of some algebraic stuff in passing, I would say you don't really need any specific prerequisites to read this.

It's very hard to review a book like this without letting personal interest in the subject bias you... but I'll try ;).

I used this book in my fourth year at Berkeley. Being a CS major, I found the chapter on sentential (aka boolean) logic very pedantic. I feel that most people are going to be able to easily navigate that part by sheer intuition.

On the other hand, first-order logic (the real meat of the course) comes with little motivation from Enderton. He simply dives into the syntax, as if the semmantics will be just as obvious as in sentential logic.

One of the main points of this class that I didn't understand until late in the semester, was that mathematical logic is merely an attempt to model (using symbols) the logic most mathematician use proofs, which are written in words. In turn, this gives us a framework to reason about mathematical logic itself, creating a whole new branch of mathematics in its own right (perhaps you can see why it took me a while to understand all this). The only attempt that Enderton makes to explain this is a poorly drawn diagram of "meta-theorems" on top, which are the results of mathematical logic, and theorems, which are the subjects of mathematical logic, on the bottom.

The oddest thing about this book was its treatment of algorithms, which is one of the most interesting aspects of this subject. Any (meta)theorems about those were marked with a star, because a precise definition of an algorithm is never given. I'm guessing most reviewers who praise the rigor of this book tend to overlook this weakness, because they come from math departments and not CS departments. If you take a course in computability and complexity theory, you'll see the two subjects are intimately intertwined.

This may be the best book on the subject, but I did not feel it guide me very much through the course, esp the later half about first-order logic.

It tries to be a readable undergrad introduction and mostly succeeds. Explanations are generally not tight and memorable, proofs seem loose, there are sometimes gaps in the train of thought, and exercises often require a significant conceptual leap from the preceding text. It was particularly annoying the way he suddenly switched to Polish notation for a while and then just as suddenly dropped it, without any obvious benefit. However, it is more accessible than most mathematical logic texts. The main competition for this text would be Ebbinghaus, which I prefer. The benefits of Enderton over that book are that it covers a wider range of topics and has a lot more exercises.

I review the classic FIRST EDITION. If you buy only one book on mathematical logic, get this one. It's by far the best logic book (see my other reviews) that is both 1)introductory and 2)sufficiently broad in scope and complete. The exposition is very clear and succinct- its suitable for beginners without getting wordy. Enderton always clearly explains what he's doing and why, keeping the reader focused on the big picture while going through the details. He helps to place topics in perspective, and has organized the book so readers can skip some of the more involved proofs and sections on the first reading.

Besides being easy to learn from, it's also the most rigorous introductory book I've seen- a rare combination. The proofs are detailed and complete, instead of the usual hand-waving or leaving everything as an exercise for the reader. There are some weak points in it, but overall you're not going to find a better book. It requires a little more 'mathematical sophistication' than most intro books- but if you've had some logic in a computer science course, or a little combinatorics or abstract algebra you'll be more than ready. Familiarity with automata/computability theory will help you in a few of the sections. Although Enderton is very good, it always helps to get several books on a subject- I'd recommend you pick up cheap copies of Boolos & Jeffrey's _Computability and Logic_ and Smullyan's _First-order logic_ as supplements.

Here is the complete table of contents for the first edition, c1972:

Chapter Zero - USEFUL FACTS ABOUT SETS . . . .1
Chapter One - SENTENTIAL LOGIC/ Informal Remarks on Formal Languages 14 /The Language of Sentential Logic 17/ Induction and Recursion 22/ Truth Assignments 30/ Unique Readability 39/ Sentential Connectives 44/ Switching Circuits 53/ Compactness and Effectiveness 58

Chapter Two - FIRST-ORDER LOGIC/ Preliminary Remarks 65/ First-Order Languages 67/ Truth and Models 79/ Unique Readability 97/ A Deductive Calculus 101/ Soundness and Completeness Theorems 124/ Models of Theories 140/ Interpretations between Theories 154/ Nonstandard Analysis 164

Chapter Three - UNDECIDABILITY/ Number Theory 174/ Natural Numbers with Successor 178/ Other Reducts of Number Theory 184/ A Subtheory of Number Theory 193/ Arithmetization of Syntax 217/ Incompleteness and Undecidability 227/ Applications to Set Theory 239/ Representing Exponentiation 245/ Recursive Functions 251

Chapter Four - SECOND-ORDER LOGIC/ Second-Order Languages 268/ Skolem Functions 274/ Many-Sorted Logic 277/ General Structures 281
Index 291

Product Details :
Hardcover: 317 pages
Publisher: Academic Press; 2 edition (January 5, 2001)
Language: English
ISBN-10: 0122384520
ISBN-13: 978-0122384523
Product Dimensions: 6.5 x 0.8 x 9.2 inches

More Details about A Mathematical Introduction to Logic 2nd edition

or

Download A Mathematical Introduction to Logic 2nd edition PDF Ebook

Digital Communications: Fundamentals and Applications 2nd Edition, Bernard Sklar



Highly recommended reference for students and practicing Satellite Communication engineers. Dr. Sklar's comprehensive treatment of the subject is based on decades of experience from the start of the satellite era.

My lost original was replaced by Amazon with an almost new economical used copy.

You want to UNDERSTAND the why of all the concepts in communications systems and work as an engineer in the industry this is the best book. It avoids unnecessary mathematical analysis. Afterwards you can delve into other books by Proakis etc. which are more geared towards communication theory practitioners and emphasize the mathematical rigour. In my opinion undergraduate programs should use this book in two semesters for those in the communications program concentration!

My motivation for purchasing this text was for a graduate level course on Communications in Electrical Engineering. The text was somewhat useful with clear illustrations and formulas but lacked the clarity desired to grasp a full understanding of the material from simply reading the book. As such, the text was primarily used as a reference source when lecture material failed to provided enough depth or coverage of a particular subject area. I would recommend purchasing this book if required but I would look for another text if you are simply trying to get a better understanding of the subject.

If you are taking a course or just interested on the principles of digital communications this is an excellent reference. Prof. Sklar explain in a very simple way many topics, solving very illustrative examples that complements your understanding of the subject. I use it along with Proakis' book and the results are improved.

I have followed Dr. Sklar's writing since 1982/83 when a two part article was presented in IEEE Communication Magazine. The tilte was "A Structural Overview od Digital Communication". I used that article in my understanding of the subject and delivered lectures to communication engineers in my presentations to them in 1985/86 time frame. At that time I guessed, and knew that Dr. Sklar would write a book on the subject and this article is actually an introduction to the subject. Then, in 1987, I did find this book (first Edition) and used it for further uderstanding of the subject. I was very happy. I was lucky to have this book in 1998 when I taught this course to MSEE class.The second edition along with Systemview is an excellent combination for teachers as well as for practicing engineers. I have loved this book and is always with me (even during holidays). After Dr. Shannon, Dr, Gallager, Dr. Wozencraft and Dr. Viterbi, and other contemporaries, I found Dr. Sklar giving a satisfactory expalanation on various aspects of Digital Communication. My salutations to Dr. Sklar. We communication engineers should be thankful to his efforts for such a presentation. This is an easy to understand and uses mathematical representations in an appropriate manner. Some of the explanations, like Bandwidth, and Probability of Error, etc. are excellent. I found the flow of chapters as lelegant as a sequence of music that appeals staightawy to the audience. As I love "A mathematical Theory of Communicarion" the same way I love this book.

Digital Communications: Fundamentals and Applications makes a fine addition to any signal processing engineer's library. Dr. Sklar manages to give a comprehensive view of the subject discussing Bandwidth Efficient Modulation, Bit Error Rates, Multiple Access signaling and a variety of other subjects. This book resides somewhere between upper division undergraduate and graduate level coursework. At this level, a certain amount of study is assumed, and this is an engineering textbook with derivations not listed for a variety of reasons (it is assumed that students are familiar with Fourier transforms and high level calculus. Information presented is for the purpose of Asic/FPGA/chip/software design with a lot of the formulas coming from industry definitions). The accompanying CD is fantastic and anyone looking to apply some of the knowledge with one of the best tools in the industry (Systemview) will find the CD invaluable.

Digital Communications by Sklar is an excellent introduction to the field for the student or the practicing engineer. There is a logical flow from beginning to end, and the book is written in an easy to read style, which allows the reader to grasp the engineering tradeoffs involved in digital communications.

The book is not mathematically rigorous; although formulas are presented, they are not derived. However, I feel that to correct this shortfall may make the book too long, and harder to read. I think it is better to get a general overview of the topic from this book, and to look to other sources where mathematical rigor is desired.

Some additional background is helpful, but not necessary to understand the mathematical details that are glossed over. These include a course in Detection and Estimation to understand concepts such as signal spaces, noise, decision regions and probability of error, and an introductory DSP course to understand the issues surrounding aliasing, quantizing, equalization, and source coding. Familiarity with Fourier Transforms and prior background with Probability and Random Processes is essential to understanding the math that is presented in the book.

Overall, I highly recommend this book for someone who wants to appreciate the engineeering constraints that need to be met in the design of digital communication systems.

This is a good introductory book and only that. However its usefulness to a graduate student or a practitioner is limited because of two factors.

1)Many mathematical derivations like error probabilities are stated directly without proof, even in simple cases.

2)Practcal and commercial use of the theory is not covered in detail.

Given the above two factors the cost of the book is not at all justified.

I have not read the first edition, but I have long depended on Sklar's tutorial articles in various publications to improve my understanding of digital comms concepts, so it was with some anticipation that I opened this book. It certainly did not disappoint; the author's characteristic style, which imparts an intuitive understanding rather than simply instruct, is present throughout. In certain sections, the theory is not just presented alone but supplemented with nuggets of practical knowledge.

Proakis is undoubtedly still the benchmark for such texts, but this book will be a valuable addition to the bookshelf for both students and engineers alike. Remember to have a look at the checklist in the preface to straighten out your concepts.

I was introduced to the 1st edition of this book as an undergrad at UCLA where Sklar taught. Since then as I have worked in the wireless and telecom fields, it has remained one of my main references. I've added other comm. books such as Proakis', but Sklar remains my favorite. It is well arrange, making it easy to reference any material you may be interested in. It touches on every area of comm. theory from modulation to coding. If you are looking for a general communication theory reference book, then this should be the one. But if you are only interested in learning in detail about one particular area of commmuncation theory such as CDMA or Trellis Coding, then you should seek a book specializing in that area only. No book can cover everything in the depth.

This is one of the best books on the market for communications. As a university professor I am always looking for that special book that can take the student from the formative learning stage into maturity in the field of communication and signal processing. This book is an excellent text for such a journey. It provides a good mix of theory and practice with many worked examples. Unlike many texts in communications theory that provide their audiences with a lot of theory and abstractions that leave them confused, this book is so well written and the theory so well handled and presented, that its concepts are easily grasped. Then, to supplement this, the book has numerous worked examples showing practical applications. As an educator in the field of communications I have adapted this book for my course because its stated attributes above make my work in educating students that much easier. I recommend this book without reservation to anyone who needs a good reference in the field of communications.

Product Details :
Hardcover: 1079 pages
Publisher: Prentice Hall; 2 edition (January 21, 2001)
Language: English
ISBN-10: 0130847887
ISBN-13: 978-0130847881
Product Dimensions: 7.4 x 1.8 x 9.5 inches

More Details about Digital Communications: Fundamentals and Applications 2nd Edition

or

Download Digital Communications: Fundamentals and Applications 2nd Edition PDF Ebook