Many special thanks to the people who made direct contributions to this text:
Ben Zhuk - Co-wrote a number of sections, edited the entire book for both content and style, and created all diagrams and illustrations (except those mentioned below). He was a sounding board for ideas throughout the writing process, and was an invaluable resource. I am more indebted to him for his tireless efforts and the countless hours he put into this project than I can express.
Dmitry Semenov, Senior Software Architect who read the manuscript carefully and thoroughly. Dmitry’s remarks and criticism helped me to clarify content and add significant parts to chapters 3 and 13.
Olga Kaydanov, artist - Provided great design ideas and artistic inspiration for illustrations.
Irina Zadov, artist, – Illustrated Fig.I-1, Fig.I-2, Fig.I-5, Fig.1-4
Inna Vaisberg, designer, – Illustrated Fig.3.1 and Fig.A3.18.
My former students, talented software developers:
Masha Tishkov, who wrote and tested several XML parser methods in the Stringer.java source;
Slava Minukhin, who teamed up with me to write C# sources for Appendix 3: TextToSpeech.cs, SocketTTS.cs, Recognizer.cs;
Alex Krevenya, who helped write email-and-spam related sources for Appendix 3;
and Dina Malkina, who wrote C++ sources for Chapter 12: ListeningClient.cpp and TalkingClient.cpp
This is a great opportunity to say thank you to so many people without whom this book would be impossible.
To Candi Hoxworth, IT Manager, who read most the book and provided great suggestions on improving my American accent in it.
To Stuart Ambler, Mathematician and Software Architect, who reviewed and provided important feedback for Chapters 8, 10, and 12.
To Michael Merkulovich, Software Team Lead, who read and provided valuable suggestions for Chapter 6 and Appendix 1.
To Nina Zadov, Sr. Software Engineer, who read and approved Chapter 7.
To Roman Zadov, Mathematician, who reviewed Chapter 5 (Ontology.)
To Bryan Basham, Java Instructor, who reviewed a section (multipart/form upload) from Appendix 3.
To Linda Koepsell, Course Development Project Manager, who reviewed a section from Chapter 11 (J2ME.)
To Jason Fish, Enterprise Learning, President, who invited
me to teach for
To Cambridge University Press editors Lauren Cowles and Katherine Hew; TechBooks project manager Amanda Albert and copy editor Georgetta Kozlovski for their work and dedication.
To Cyc Corporation knowledge experts John De Oliveira, Steven Reed, and Dr. Doug Lenat, who taught me ontology and the Cyc Language, and reviewed several sections from Chapter 5 and 13.
To my colleagues from the University of Phoenix, Mary A. Martin, Ph.D., Blair Smith, Stephen Trask, Adam Honea, Ph.D., and Carla Kuhlman, Ph.D. who reviewed sections from Chapter 2 (Software Architecture), and Notes for Educators.
To my colleagues from
To Victor Kaptelinin, Ph.D., Umea University Professor,
To Jay DiGiovanni, Director of Software Development, who reviewed and provided encouraging remarks on a section from Chapter 13.
To Vladimir Safonov, Ph.D., S. Petersburg University, Professor, who offered excellent suggestions for Chapter 2 (Software Architecture).
To Vlad Genin,
To Robert Gathers, GN President, with whom we discussed the future of distributed networks and who reviewed several sections from Chapter 13 and 14.
To Rachel Levy, whose reviews of and ideas for the Introduction and Preface sections were inspired and right on-target.
To my children, Julie and Ben, for their moral support and phenomenal help during the entire process.
And finally, and most importantly, to my wife, Bronia, who makes everything in my life possible.