Books

Theory In Practice (Series)

This series includes 32 books.


  1. Masterminds of Programming

    Conversations with the Creators of Major Programming Languages

    by Federico Biancuzzi, Shane Warden

    Description :

    Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. In this unique collection, you'll learn about the processes that led to specific design decisions, including the goals they had in mind, the trade-offs they had to make, and how their experiences have left an impact on programming today. Masterminds of Programming includes individual interviews with: Adin D. Falkoff: APL Thomas E. Kurtz: BASIC Charles H. Moore: FORTH Robin Milner: ML Donald D. Chamberlin: SQL Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK Charles Geschke and John Warnock: PostScript Bjarne Stroustrup: C++ Bertrand Meyer: Eiffel Brad Cox and Tom Love: Objective-C Larry Wall: Perl Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes: Haskell Guido van Rossum: Python Luiz Henrique de Figueiredo and Roberto Ierusalimschy: Lua James Gosling: Java Grady Booch, Ivar Jacobson, and James Rumbaugh: UML Anders Hejlsberg: Delphi inventor and lead developer of C# If you're interested in the people whose vision and hard work helped shape the computer industry, you'll find Masterminds of Programming fascinating.

  2. Beautiful Testing

    Leading Professionals Reveal How They Improve Software

    by Adam Goucher

    Description :

    Just how critical is testing to the success of a software project? And how can you make these tests simple yet maintainable, flexible, and efficient? This unique book offers essays from 25 leading software testers that illustrate the qualities and techniques necessary to make testing an art in itself. Through personal anecdotes, you'll learn how each of these professionals developed best practices for testing a wide range of software projects involving XMPP, GUI tools, Open Map applications, and more. Topics include: OLPC project testing -- Mel Chua (The Open Planning Project) Open Maps application testing -- Steve Coast (founder of OpenStreetMap) AbiWord open source app testing -- Kamran Khan (AbiWord word processor) GNU Compiler Collection tool testing -- Mark Mitchell (GCC) GUI Tools -- Adam Christian and Mikeal Rogers (OSAF/Mozilla) Python Language testing -- Neal Norwitz (python.org) Network testing frameworks -- Jim Walker (OpenSolaris) XMPP Protocol testing -- Remko Troncon (Jabber) Beautiful Testing provides you with knowledge gained from years of experience that you can put to the test on your own projects.

  3. SQL and Relational Theory: How to Write Accurate SQL Code

    by C. J. Date

    Description :

    Understanding SQL's underlying theory is the best way to guarantee that your SQL code is correct and your database schema is robust and maintainable. On the other hand, if you're not well versed in the theory, you can fall into several traps. In SQL and Relational Theory , author C.J. Date demonstrates how you can apply relational theory directly to your use of SQL. With numerous examples and clear explanations of the reasoning behind them, you'll learn how to deal with common SQL dilemmas, such as: Should database access granted be through views instead of base tables? Nulls in your database are causing you to get wrong answers. Why? What can you do about it? Could you write an SQL query to find employees who have never been in the same department for more than six months at a time? SQL supports "quantified comparisons," but they're better avoided. Why? How do you avoid them? Constraints are crucially important, but most SQL products don't support them properly. What can you do to resolve this situation? Database theory and practice have evolved since Edgar Codd originally defined the relational model back in 1969. Independent of any SQL products, SQL and Relational Theory draws on decades of research to present the most up-to-date treatment of the material available anywhere. Anyone with a modest to advanced background in SQL will benefit from the many insights in this book.

  4. The Art of Community: Building the New Age of Participation

    by Jono Bacon, Bacon Jono

    Description :

    Online communities offer a wide range of opportunities today, whether you're supporting a cause, marketing a product or service, or developing open source software. The Art of Community will help you develop the broad range of talents you need to recruit members to your community, motivate and manage them, and help them become active participants. Author Jono Bacon offers a collection of experiences and observations from his decade-long involvement in building and managing communities, including his current position as manager for Ubuntu, arguably the largest community in open source software. You'll discover how a vibrant community can provide you with a reliable support network, a valuable source of new ideas, and a powerful marketing force. The Art of Community will help you: Develop a strategy, with specific objectives and goals, for building your community Build simple, non-bureaucratic processes to help your community perform tasks, work together, and share successes Provide tools and infrastructure that let contributors work quickly Create buzz around your community to get more people involved Track the community's work so it can be optimized and simplified Explore a capable, representative governance strategy for your community Identify and manage conflict, including dealing with divisive personalities

  5. The Art of Lean Software Development: A Practical and Incremental Approach

    by Curt Hibbs, Stephen C Jewett, Mike Sullivan

    Description :

    This succinct book explains how you can apply the practices of Lean software development to dramatically increase productivity and quality. Based on techniques that revolutionized Japanese manufacturing, Lean principles are being applied successfully to product design, engineering, the supply chain, and now software development. With The Art of Lean Software Development , you'll learn how to adopt Lean practices one at a time rather than taking on the entire methodology at once. As you master each practice, you'll see significant, measurable results. With this book, you will: Understand Lean's origins from Japanese industries and how it applies to software development Learn the Lean software development principles and the five most important practices in detail Distinguish between the Lean and Agile methodologies and understand their similarities and differences Determine which Lean principles you should adopt first, and how you can gradually incorporate more of the methodology into your process Review hands-on practices, including descriptions, benefits, trade-offs, and roadblocks Learn how to sell these principles to management The Art of Lean Software Development is ideal for busy people who want to improve the development process but can't afford the disruption of a sudden and complete transformation. The Lean approach has been yielding dramatic results for decades, and with this book, you can make incremental changes that will produce immediate benefits. "This book presents Lean practices in a clear and concise manner so readers are motivated to make their software more reliable and less costly to maintain. I recommend it to anyone looking for an easy-to-follow guide to transform how the developer views the process of writing good software." -- Bryan Wells, Boeing Intelligence & Security Sytems Mission System "If you're new to Lean software development and you're not quite sure where to start, this book will help get your development process going in the right direction, one step at a time." -- John McClenning, software development lead, Aclara

  6. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman

    by Dave Hoover, Adewale Oshineye, Hoover Dave, Oshineye Adewale

    Description :

    Software developers face an ever-changing and ever-expanding technology landscape, which can appear as intimidating as Mt. Everest to newcomers. Developing technical skills is vital, but there are dozens of soft skills and learning techniques you need if you're to grow and succeed professionally. Honing those soft skills is a big part of what Apprenticeship Patterns is all about. Authors Dave Hoover and Adewale Oshineye, both formerly of the global IT consultancy ThoughtWorks, have cataloged dozens of patterns of behavior to help software developers hone their craft. Developed through years of research, a multitude of interviews, and feedback from O'Reilly's online forum, these patterns address difficult situations faced by entry-level programmers, system administrators, and database administrators. Each pattern has a memorable name to help point you in the right direction when you need it most. Examples of common obstacles and their solutions include: Burned out at work? Learn how to "Nurture Your Passion" by finding a pet project to help you rediscover the joy of problem solving Feeling overwhelmed by too much new information? Take a step back from your learning to re-explore some familiar territory by building something you've built before, then use "Retreat Into Competence" to launch yourself forward again Feeling stuck in your learning? Seek out a team of experienced and talented developers where you can "Be the Worst" for a while Like any patterns book, you can read this one front-to-back, jump to specific patterns when you encounter the issues they address, or cherry pick just the ones that are new to you. The purpose of the solutions is to inspire you to stay on the path you intend, rather than wander off into management because it seems like the only option for advancement. Apprenticeship Patterns approaches software development not as a means to financial success, but as a means to personal fulfillment. It's your life and your career. Discover how this book can help you make the best of both.

  7. The Art of Capacity Planning: Scaling Web Resources

    by John Allspaw

    Description :

    Success on the web is measured by usage and growth. Web-based companies live or die by the ability to scale their infrastructure to accommodate increasing demand. This book is a hands-on and practical guide to planning for such growth, with many techniques and considerations to help you plan, deploy, and manage web application infrastructure. The Art of Capacity Planning is written by the manager of data operations for the world-famous photo-sharing site Flickr.com, now owned by Yahoo! John Allspaw combines personal anecdotes from many phases of Flickr's growth with insights from his colleagues in many other industries to give you solid guidelines for measuring your growth, predicting trends, and making cost-effective preparations. Topics include: Evaluating tools for measurement and deployment Capacity analysis and prediction for storage, database, and application servers Designing architectures to easily add and measure capacity Handling sudden spikes Predicting exponential and explosive growth How cloud services such as EC2 can fit into a capacity strategy In this book, Allspaw draws on years of valuable experience, starting from the days when Flickr was relatively small and had to deal with the typical growth pains and cost/performance trade-offs of a typical company with a Web presence. The advice he offers in The Art of Capacity Planning will not only help you prepare for explosive growth, it will save you tons of grief.

  8. Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design

    by Georgios Gousios, Diomidis Spinellis

    Description :

    What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today's leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose. Some of the engineers in this book reveal how they developed a specific project, including decisions they faced and tradeoffs they made. Others take a step back to investigate how certain architectural aspects have influenced computing as a whole. With this book, you'll discover: How Facebook's architecture is the basis for a data-centric application ecosystem The effect of Xen's well-designed architecture on the way operating systems evolve How community processes within the KDE project help software architectures evolve from rough sketches to beautiful systems How creeping featurism has helped GNU Emacs gain unanticipated functionality The magic behind the Jikes RVM self-optimizable, self-hosting runtime Design choices and building blocks that made Tandem the choice platform in high-availability environments for over two decades Differences and similarities between object-oriented and functional architectural views How architectures can affect the software's evolution and the developers' engagement Go behind the scenes to learn what it takes to design elegant software architecture, and how it can shape the way you approach your own projects, with Beautiful Architecture .

  9. Beautiful Data: The Stories Behind Elegant Data Solutions

    by Toby Segaran

    Description :

    In this insightful book, you'll learn from the best data practitioners in the field just how wide-ranging -- and beautiful -- working with data can be. Join 39 contributors as they explain how they developed simple and elegant solutions on projects ranging from the Mars lander to a Radiohead video. With Beautiful Data, you will: Explore the opportunities and challenges involved in working with the vast number of datasets made available by the Web Learn how to visualize trends in urban crime, using maps and data mashups Discover the challenges of designing a data processing system that works within the constraints of space travel Learn how crowdsourcing and transparency have combined to advance the state of drug research Understand how new data can automatically trigger alerts when it matches or overlaps pre-existing data Learn about the massive infrastructure required to create, capture, and process DNA data That's only small sample of what you'll find in Beautiful Data. For anyone who handles data, this is a truly fascinating book. Contributors include: Nathan Yau Jonathan Follett and Matt Holm J.M. Hughes Raghu Ramakrishnan, Brian Cooper, and Utkarsh Srivastava Jeff Hammerbacher Jason Dykes and Jo Wood Jeff Jonas and Lisa Sokol Jud Valeski Alon Halevy and Jayant Madhavan Aaron Koblin and Valdean Klump Michal Migurski Jeff Heer Coco Krumme Peter Norvig Matt Wood and Ben Blackburne Jean-Claude Bradley, Rajarshi Guha, Andrew Lang, Pierre Lindenbaum, Cameron Neylon, Antony Williams, and Egon Willighagen Lukas Biewald and Brendan O'Connor Hadley Wickham, Deborah Swayne, and David Poole Andrew Gelman, Jonathan P. Kastellec, and Yair Ghitza Toby Segaran

  10. Beautiful Security

    Description :

    In this thought-provoking anthology, today's security experts describe bold and extraordinary methods used to secure computer systems in the face of ever-increasing threats. Beautiful Security features a collection of essays and insightful analyses by leaders such as Ben Edelman, Grant Geyer, John McManus, and a dozen others who have found unusual solutions for writing secure code, designing secure applications, addressing modern challenges such as wireless security and Internet vulnerabilities, and much more. Among the book's wide-ranging topics, you'll learn how new and more aggressive security measures work--and where they will lead us. Topics include: Rewiring the expectations and assumptions of organizations regarding security Security as a design requirement Evolution and new projects in Web of Trust Legal sanctions to enforce security precautions An encryption/hash system for protecting user data The criminal economy for stolen information Detecting attacks through context Go beyond the headlines, hype, and hearsay. With Beautiful Security , you'll delve into the techniques, technology, ethics, and laws at the center of the biggest revolution in the history of network security. It's a useful and far-reaching discussion you can't afford to miss.

  11. Database in Depth: Relational Theory for Practitioners

    by C. J. Date

    Description :

    This book sheds light on the principles behind the relational model, which is fundamental to all database-backed applications--and, consequently, most of the work that goes on in the computing world today. "Database in Depth: The Relational Model for Practitioners" goes beyond the hype and gets to the heart of how relational databases actually work. Ideal for experienced database developers and designers, this concise guide gives you a clear view of the technology--a view that's not influenced by any vendor or product. Featuring an extensive set of exercises, it will help you: understand why and how the relational model is still directly relevant to modern database technology (and will remain so for the foreseeable future) see why and how the SQL standard is seriously deficient use the best current theoretical knowledge in the design of their databases and database applications make informed decisions in their daily database professional activities "Database in Depth" will appeal not only to database developers and designers, but also to a diverse field of professionals and academics, including database administrators (DBAs), information modelers, database consultants, and more. Virtually everyone who deals with relational databases should have at least a passing understanding of the fundamentals of working with relational models. Author C.J. Date has been involved with the relational model from its earliest days. An exceptionally clear-thinking writer, Date lays out principle and theory in a manner that is easily understood. Few others can speak as authoritatively the topic of relational databases as Date can.

  12. The Art of SQL

    by Stephane Faroult

    Description :

    For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later. In "The Art of SQL," author and SQL expert Stephane Faroult argues that this "safe approach" only leads to disaster. His insightful book, named after Art of War by Sun Tzu, contends that writing quick inefficient code is sweeping the dirt under the rug. SQL code may run for 5 to 10 years, surviving several major releases of the database management system and on several generations of hardware. The code must be fast and sound from the start, and that requires a firm understanding of SQL and relational theory. "The Art of SQL" offers best practices that teach experienced SQL users to focus on strategy rather than specifics. Faroult's approach takes a page from Sun Tzu's classic treatise by viewing database design as a military campaign. You need knowledge, skills, and talent. Talent can't be taught, but every strategist from Sun Tzu to modern-day generals believed that it can be nurtured through the experience of others. They passed on their experience acquired in the field through basic principles that served as guiding stars amid the sound and fury of battle. This is what Faroult does with SQL. Like a successful battle plan, good architectural choices are based on contingencies. What if the volume of this or that table increases unexpectedly? What if, following a merger, the numberof users doubles? What if you want to keep several years of data online? Faroult's way of looking at SQL performance may be unconventional and unique, but he's deadly serious about writing good SQL and using SQL well. "The Art of SQL" is not a cookbook, listing problems and giving recipes. The aim is to get you-and your manager-to raise good questions.

  13. The Art of Agile Development: With Extreme Programming

    by James Shore

    Description :

    The Art of Agile Development contains practical guidance for anyone considering or applying agile development for building valuable software. Plenty of books describe what agile development is or why it helps software projects succeed, but very few combine information for developers, managers, testers, and customers into a single package that they can apply directly. This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience with Extreme Programming (XP). You get a gestalt view of the agile development process, including comprehensive guidance for non-technical readers and hands-on technical practices for developers and testers. The Art of Agile Development gives you clear answers to questions such as: How can we adopt agile development? Do we really need to pair program? What metrics should we report? What if I can't get my customer to participate? How much documentation should we write? When do we design and architect? As a non-developer, how should I work with my agile team? Where is my product roadmap? How does QA fit in? The book teaches you how to adopt XP practices, describes each practice in detail, then discusses principles that will allow you to modify XP and create your own agile method. In particular, this book tackles the difficult aspects of agile development: the need for cooperation and trust among team members. Whether you're currently part of an agile team, working with an agile team, or interested in agile development, this book provides the practical tips you need to start practicing agile development. As your experience grows, the book will grow with you, providing exercises andinformation that will teach you first to understand the rules of agile development, break them, and ultimately abandon rules altogether as you master the art of agile development. "Jim Shore and Shane Warden expertly explain the practices and benefits of Extreme Programming. They offer advice from their real-world experiences in leading teams. They answer questions about the practices and show contraindications - ways that a practice may be mis-applied. They offer alternatives you can try if there are impediments to applying a practice, such as the lack of an on-site customer. --Ken Pugh, Author of Jolt Award Winner, Prefactoring "I will leave a copy of this book with every team I visit." --Brian Marick, Exampler Consulting

  14. The Art of Application Performance Testing: Help for Programmers and Quality Assurance

    by Ian Molyneaux

    Description :

    This practical book provides a step-by-step approach to testing mission-critical applications for scalability and performance before they're deployed -- a vital topic to which other books devote one chapter, if that. Businesses today live and die by network applications and web services. Because of the increasing complexity of these programs, and the pressure to deploy them quickly, many professionals don't take the time to ensure that they'll perform well and scale effectively. The Art of Application Performance Testing explains the complete life cycle of the testing process, and demonstrates best practices to help you plan, gain approval for, coordinate, and conduct performance tests on your applications. With this book, you'll learn to: Set realistic performance testing goals Implement an effective application performance testing strategy Interpret performance test results Cope with different application technologies and architectures Use automated performance testing tools Test traditional local applications, web-based applications, and web services (SOAs) Recognize and resolves issues that are often overlooked in performance tests Written by a consultant with 30 years of experience in the IT industry and over 12 years experience with performance testing, this easy-to-read book is illustrated with real-world examples and packed with practical advice. The Art of Application Performance Testing thoroughly explains the pitfalls of an inadequate testing strategy and offers you a robust, structured approach for ensuring that your applications perform well and scale effectively when the need arises. "Ian has maintained a vendor-agnostic methodology beautifully in this material. The metrics and graphs, along with background information provided in his case studies, eloquently convey to the reader, 'Methodology above all, tools at your discretion...' Ian's expertise shines through throughout the entire reading experience." -- Matt St. Onge, Enterprise Solution Architect, HCL Technologies America / Teradyne

  15. Making Things Happen: Mastering Project Management

    by Scott Berkun

    Description :

    In the updated edition of this critically acclaimed and bestselling book, Microsoft project veteran Scott Berkun offers a collection of essays on field-tested philosophies and strategies for defining, leading, and managing projects. Each essay distills complex concepts and challenges into practical nuggets of useful advice, and the new edition now adds more value for leaders and managers of projects everywhere. Based on his nine years of experience as a program manager for Internet Explorer, and lead program manager for Windows and MSN, Berkun explains to technical and non-technical readers alike what it takes to get through a large software or web development project. Making Things Happen doesn't cite specific methods, but focuses on philosophy and strategy. Unlike other project management books, Berkun offers personal essays in a comfortable style and easy tone that emulate the relationship of a wise project manager who gives good, entertaining and passionate advice to those who ask. Topics in this new edition include: How to make things happen Making good decisions Specifications and requirements Ideas and what to do with them How not to annoy people Leadership and trust The truth about making dates What to do when things go wrong Complete with a new forward from the author and a discussion guide for forming reading groups/teams, Making Things Happen offers in-depth exercises to help you apply lessons from the book to your job. It is inspiring, funny, honest, and compelling, and definitely the one book that you and your team need to have within arm's reach throughout the life of your project. Coming from the rare perspective of someone who fought difficult battles on Microsoft'sbiggest projects and taught project design and management for MSTE, Microsoft's internal best practices group, this is valuable advice indeed. It will serve you well with your current work, and on future projects to come.

  16. Beautiful Code: Leading Programmers Explain How They Think

    by Greg Wilson, Andrew Oram

    Description :

    How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International. tion.

  17. Beautiful Teams

    Inspiring and Cautionary Tales from Veteran Team Leaders

    by Andrew Stellman, Jennifer Greene PSE

    Description :

    What's it like to work on a great software development team facing an impossible problem? How do you build an effective team? Can a group of people who don't get along still build good software? How does a team leader keep everyone on track when the stakes are high and the schedule is tight? Beautiful Teams takes you behind the scenes with some of the most interesting teams in software engineering history. You'll learn from veteran team leaders' successes and failures, told through a series of engaging personal stories -- and interviews -- by leading programmers, architects, project managers, and thought leaders. This book includes contributions from: Tim O'Reilly Scott Berkun Mark Healey Bill DiPierre Andy Lester Keoki Andrus Tom Tarka Auke Jilderda Grady Booch Jennifer Greene Mike Cohn Cory Doctorow Neil Siegel Trevor Field James Grenning Steve McConnell Barry Boehm and Maria H. Penedo Peter Gluck Karl E. Wiegers Alex Martelli Karl Fogel Michael Collins Karl Rehmer Andrew Stellman Ned Robinson Scott Ambler Johanna Rothman Mark Denovich and Eric Renkey Patricia Ensworth Andy Oram Tony Visconti Beautiful Teams is edited by Andrew Stellman and Jennifer Greene, veteran software engineers and project managers who have been writing bestselling books for O'Reilly since 2005, including Applied Software Project Management, Head First PMP, and Head First C#.

  18. Cloud Security and Privacy: An Enterprise Perspective on Risks and Compliance (Theory in Practice)

    by Tim Mather, Subra Kumaraswamy, Shahed Latif, Mather Tim, Kumaraswamy Subra, Latif Shahed

    Description :

    You may regard cloud computing as an ideal way for your company to control IT costs, but do you know how private and secure this service really is? Not many people do. With Cloud Security and Privacy , you'll learn what's at stake when you trust your data to the cloud, and what you can do to keep your virtual infrastructure and web applications secure. Ideal for IT staffers, information security and privacy practitioners, business managers, service providers, and investors alike, this book offers you sound advice from three well-known authorities in the tech security world. You'll learn detailed information on cloud computing security that-until now-has been sorely lacking. Review the current state of data security and storage in the cloud, including confidentiality, integrity, and availability Learn about the identity and access management (IAM) practice for authentication, authorization, and auditing of the users accessing cloud services Discover which security management frameworks and standards are relevant for the cloud Understand the privacy aspects you need to consider in the cloud, including how they compare with traditional computing models Learn the importance of audit and compliance functions within the cloud, and the various standards and frameworks to consider Examine security delivered as a service-a different facet of cloud security

  19. The New Community Rules

    Marketing on the Social Web

    by Tamar Weinberg

    Description :

    Blogs, networking sites, and other examples of the social web provide businesses with a largely untapped marketing channel for products and services. But how do you take advantage of them? With The New Community Rules, you'll understand how social web technologies work, and learn the most practical and effective ways to reach people who frequent these sites. Written by an expert in social media and viral marketing, this book cuts through the hype and jargon to give you intelligent advice and strategies for positioning your business on the social web, with case studies that show how other companies have used this approach. The New Community Rules will help you: Explore blogging and microblogging, and find out how to use applications such as Twitter to create brand awareness Learn the art of conversation marketing, and how social media thrives on honesty and transparency Manage and enhance your online reputation through the social web Tap into the increasingly influential video and podcasting market Discover which tactics work -- and which don't -- by learning about what other marketers have tried Many consumers today use the Web as a voice. The New Community Rules demonstrates how you can join the conversation, contribute to the community, and bring people to your product or service.

  20. The Productive Programmer

    by Neal Ford

    Description :

    Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity--how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition--he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You'll learn to: Write the test before you write the code Manage the lifecycle of your objects fastidiously Build only what you need now, not what you might need later Apply ancient philosophies to software development Question authority, rather than blindly adhere to standards Make hard things easier and impossible things possible through meta-programming Be sure all code within a method is at the same level of abstraction Pick the right editor and assemble the best tools for the job This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer .

  21. Ajax Design Patterns

    by Michael Mahemoff

    Description :

    Ajax, or Asynchronous JavaScript and XML, exploded onto the scene in the spring of 2005 and remains the hottest story among web developers. With its rich combination of technologies, Ajax provides a strong foundation for creating interactive web applications with XML or JSON-based web services by using JavaScript in the browser to process the web server response. Ajax Design Patterns shows you best practices that can dramatically improve your web development projects. It investigates how others have successfully dealt with conflicting design principles in the past and then relays that information directly to you. The patterns outlined in the book fall into four categories: Foundational technology: Examines the raw technologies required for Ajax development Programming: Exposes techniques that developers have discovered to ensure their Ajax applications are maintainable Functionality and usability: Describes the types of user interfaces you'll come across in Ajax applications, as well as the new types of functionality that Ajax makes possible Development: Explains the process being used to monitor, debug, and test Ajax applications Ajax Design Patterns will also get you up to speed with core Ajax technologies, such as XMLHttpRequest, the DOM, and JSON. Technical discussions are followed by code examples so you can see for yourself just what is-and isn't-possible with Ajax. This handy reference will help you to produce high-quality Ajax architectures, streamline web application performance, and improve the user experience. Michael Mahemoff holds a PhD in Computer Science and Software Engineering from the University of Melbourne, where his thesis was "Design Reuse in Software Engineering and Human-Computer Interaction." He lives in London and consults on software development issues in banking, health care, and logistics. "Michael Mahemoff's Ajax Design Patterns is a truly comprehensive compendium of web application design expertise, centred around but not limited to Ajax techniques. Polished nuggets of design wisdom are supported by tutorials and real-world code examples resulting in a book that serves not only as an intermediate to expert handbook but also as an extensive reference for building rich interactive web applications." --Brent Ashley, remote scripting pioneer

  22. Web Architecture and Programming in the Cloud: Transactional Systems for EC2 and Beyond

    by George Reese

    Description :

    If you're involved in planning IT infrastructure as a network or system architect, system administrator, or developer, this book will help you adapt your skills to work with these highly scalable, highly redundant infrastructure services. While analysts hotly debate the advantages and risks of cloud computing, IT staff and programmers are left to determine whether and how to put their applications into these virtualized services. Cloud Application Architectures provides answers -- and critical guidance -- on issues of cost, availability, performance, scaling, privacy, and security. With Cloud Application Architectures, you will: Understand the differences between traditional deployment and cloud computing Determine whether moving existing applications to the cloud makes technical and business sense Analyze and compare the long-term costs of cloud services, traditional hosting, and owning dedicated servers Learn how to build a transactional web application for the cloud or migrate one to it Understand how the cloud helps you better prepare for disaster recovery Change your perspective on application scaling To provide realistic examples of the book's principles in action, the author delves into some of the choices and operations available on Amazon Web Services, and includes high-level summaries of several of the other services available on the market today. Cloud Application Architectures provides best practices that apply to every available cloud service. Learn how to make the transition to the cloud and prepare your web applications to succeed.

  23. The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications

    by Clay Breshears

    Description :

    If you're looking to take full advantage of multi-core processors with concurrent programming, this practical book provides the knowledge and hands-on experience you need. The Art of Concurrency is one of the few resources to focus on implementing algorithms in the shared-memory model of multi-core processors, rather than just theoretical models or distributed-memory architectures. The book provides detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis for avoiding mistakes that programmers typically make when first attempting these computations. Written by an Intel engineer with over two decades of parallel and concurrent programming experience, this book will help you: Understand parallelism and concurrency Explore differences between programming for shared-memory and distributed-memory Learn guidelines for designing multithreaded applications, including testing and tuning Discover how to make best use of different threading libraries, including Windows threads, POSIX threads, OpenMP, and Intel Threading Building Blocks Explore how to implement concurrent algorithms that involve sorting, searching, graphs, and other practical computations The Art of Concurrency shows you how to keep algorithms scalable to take advantage of new processors with even more cores. For developing parallel code algorithms for concurrent programming, this book is a must.

  24. Applied Software Project Management

    by Andrew Stellman, Jennifer Greene

    Description :

    "If you're looking for solid, easy-to-follow advice on estimation, requirements gathering, managing change, and more, you can stop now: this is the book for you." --Scott Berkun, Author of "The Art of Project Management" What makes software projects succeed? It takes more than a good idea and a team of talented programmers. A project manager needs to know how to guide the team through the entire software project. There are common pitfalls that plague all software projects and rookie mistakes that are made repeatedly--sometimes by the same people! Avoiding these pitfalls is not hard, but it is not necessarily intuitive. Luckily, there are tried and true techniques that can help any project manager. In "Applied Software Project Management," Andrew Stellman and Jennifer Greene provide you with tools, techniques, and practices that you can use on your own projects right away. This book supplies you with the information you need to diagnose your team's situation and presents practical advice to help you achieve your goal of building better software. Topics include: Planning a software project Helping a team estimate its workload Building a schedule Gathering software requirements and creating use cases Improving programming with refactoring, unit testing, and version control Managing an outsourced project Testing software Jennifer Greene and Andrew Stellman have been building software together since 1998. Andrew comes from a programming background and has managed teams of requirements analysts, designers, and developers. Jennifer has a testing background and has managed teams of architects, developers, and testers. She has led multiple large-scale outsourced projects. Between the two of them, they have managed every aspect of software development. They have worked in a wide range of industries, including finance, telecommunications, media, nonprofit, entertainment, natural-language processing, science, and academia. For more information about them and this book, visit http: //www.stellman-greene.com.

  25. The Art of Project Management

    by Scott Berkun

    Description :

    In The Art of Project Management, you'll learn from a veteran manager of software and web development how to plan, manage and lead projects. This personal account of hard lessons learned over a decade of work in the industry distills complex concepts and challenges into practical nuggets of useful advice. Inspiring, funny, honest, and compelling, this is the book you and your team need to have within arms reach. It will serve you well with your current work, and on future projects to come. Topics include: * How to make things happen * Making good decisions * Specifications and requirements * Ideas and what to do with them * How not to annoy people * Leadership and trust * The truth about making dates * What to do when things go wrong

  26. RFID Essentials (Theory in Practice (O'Reilly))

    by Bill Glover

    Description :

    Radio Frequency Identification (RFID) is rapidly changing the way businesses track inventory and assets. From Wal-Mart and Tesco to the U.S. Department of Defense, early efforts are already showing benefits, but software, integration, and data processing for RFID still present a challenge. If you are a developer or an architect charged with developing an RFID system, this book is for you. Drawing on extensive experience, Bill Glover and Himanshu Bhatt provide you with essential information on this emerging technology. With the knowledge you gain in these pages, you will possess the information and understanding you need to start designing, building, or integrating with RFID systems. In RFID Essentials you will find information on: Tags and tag protocols, including the Electronic Product Code (EPC) Readers and reader protocols RFID middleware Security and privacy Managing RFID devices RFID's impact on your architecture Bill Glover has been writing software since 1981 and has worked as a programmer, lead developer, or architect on systems of all sizes, from small, automated systems controlling dams and feedmills up to a complete redesign and reimplementation of one of the world's busiest travel web sites. Bill first worked with RFID in 1995, tracking individual cattle using ear tags. He is currently a Senior Java Architect with Sun Microsystems, Inc., and works with Sun's RFID consulting practice and the RFID Test Center. Himanshu Bhatt heads the U.S. RFID Practice and Software Technology Lab for Sun Microsystems, Inc. Prior to assuming this role, Himanshu was responsible for business development and consulting in emerging areas of technology. Himanshu has over 16 years of experience in the architecture and development of distributed, multitier systems using a host of technologies for Fortune 1000 companies. Himanshu has spoken at industry conferences such as JavaOne and the LoneStar Symposium and has published articles on Java/J2EE technologies. "The Information Age is over. We're entering an era where network connectivity is almost ubiquitous - it's participate or perish." --Jonathan Schwartz, President and COO, Sun Microsystems, Inc. "Unique competitive advantage erupts from enterprises that couple the RFID technologies laid out in RFID Essentials with modern business integration using service-oriented architectures. This is the book to read in order to understand this new landscape." --Mark Bauhaus, Senior Vice President, Sun Microsystems, Inc. "This is a must read for RFID Software and Solution architects and is highly recommended for anyone needing to gain more insight into the myriad of components, standards and technologies that make up an RFID solutions environment." --Bryan Tracey, Chief Architect, GlobeRanger Corporation "The authors have done a commendable job of covering a lot of ground in the RFID space, including the infrastructure needed to share the volumes of data RFID will likely generate." --Graham Gillen, Senior Product Manager, VeriSign

  27. Enterprise SOA: Designing IT for Business Innovation

    by Dan Woods

    Description :

    Information Technology professionals can use this book to move beyond the excitement of web services and service oriented architecture (SOA) and begin the process of finding actionable ideas to innovate and create business value. In Enterprise SOA: Designing IT for Business Innovation , SAP's blueprint for putting SOA to work is analyzed from top to bottom. In addition to design, development, and architecture, vital contextual issues such as governance, security, change management, and culture are also explored. This comprehensive perspective reduces risk as IT departments implement ESA, a sound, flexible architecture for adapting business processes in response to changing market conditions. This book answers the following questions: What forces created the need for Enterprise Services Architecture? How does ESA enable business process innovation? How is model-driven development used at all levels of design, configuration, and deployment? How do all the layers of technology that support ESA work together? How will composite applications extend business process automation? How does ESA create new models for IT governance? How can companies manage disruptive change? How can enterprise services be discovered and designed? How will the process of adapting applications be simplified? Based on extensive research with experts from the German software company SAP, this definitive book is ideal for architects, developers, and other IT professionals who want to understand the technology and business relevance of ESA in a detailed way--especially those who want to move on the technology now, rather than in the next year or two.

  28. Security and Usability

    Designing Secure Systems That People Can Use

    by Simson Garfinkel

    Description :

    Human factors and usability issues have traditionally played a limited role in security research and secure systems development. Security experts have largely ignored usability issues--both because they often failed to recognize the importance of human factors and because they lacked the expertise to address them. But there is a growing recognition that today's security problems can be solved only by addressing issues of usability and human factors. Increasingly, well-publicized security breaches are attributed to human errors that might have been prevented through more usable software. Indeed, the world's future cyber-security depends upon the deployment of security technology that can be broadly used by untrained computer users. Still, many people believe there is an inherent tradeoff between computer security and usability. It's true that a computer without passwords is usable, but not very secure. A computer that makes you authenticate every five minutes with a password and a fresh drop of blood might be very secure, but nobody would use it. Clearly, people need computers, and if they can't use one that's secure, they'll use one that isn't. Unfortunately, unsecured systems aren't usable for long, either. They get hacked, compromised, and otherwise rendered useless. There is increasing agreement that we need to design secure systems that people can actually use, but less agreement about how to reach this goal. Security & Usability is the first book-length work describing the current state of the art in this emerging field. Edited by security experts Dr. Lorrie Faith Cranor and Dr. Simson Garfinkel, and authored by cutting-edge security and human-computer interaction (HCI) researchers world-wide, this volume is expected to become both a classic reference and an inspiration for future research. Security & Usability groups 34 essays into six parts: Realigning Usability and Security---with careful attention to user-centered design principles, security and usability can be synergistic. Authentication Mechanisms-- techniques for identifying and authenticating computer users. Secure Systems--how system software can deliver or destroy a secure user experience. Privacy and Anonymity Systems--methods for allowing people to control the release of personal information. Commercializing Usability: The Vendor Perspective--specific experiences of security and software vendors (e.g., IBM, Microsoft, Lotus, Firefox, and Zone Labs) in addressing usability. The Classics--groundbreaking papers that sparked the field of security and usability. This book is expected to start an avalanche of discussion, new ideas, and further advances in this important field.

  29. Process Improvement Essentials: CMMI, Six SIGMA, and ISO 9001

    by James R. Persse

    Description :

    Today, technology has become too much a part of overall corporate success for its effectiveness to be left to chance. The stakes are too high. Fortunately, the idea of 'quality management' is being reinvigorated. In the last decade process programs have become more and more prevalent. And, out of all the available options, three have moved to the top of the chain. These three are: The 9001:2000 Quality Management Standard from the International Standards Organization; The Capability Maturity Model Integration from the Software Engineering Institute; and Six Sigma, a methodology for improvement shaped by companies such as Motorola, Honeywell, and General Electric. These recognized and proven quality programs are rising in popularity as more technology managers are looking for ways to help remove degrees of risk and uncertainty from their business equations, and to introduce methods of predictability that better ensure success. Process Improvement Essentials combines the foundation needed to understand process improvement theory with the best practices to help individuals implement process improvement initiatives in their organization. The three leading programs: ISO 9001:2000, CMMI, and Six Sigma--amidst the buzz and hype--tend to get lumped together under a common label. This book delivers a combined guide to all three programs, compares their applicability, and then sets the foundation for further exploration. It's a one-stop-shop designed to give you a working orientation to what the field is all about.

  30. The Art of SEO

    by Enge Eric, Spencer Stephan, Fishkin Rand, Stricchiola Jessie

    Description :

    Any organization looking to succeed in today's web economy needs to optimize its website for search engines. This book, written by four of the field's most noted experts on search engine optimization (SEO), provides guidelines for planning and executing a comprehensive search engine strategy. The Art of SEO corrects much of the misinformation that currently exists on this complex subject by laying out the fundamentals in a clear, thoughtful manner. Novices get a complete and thorough SEO education, with the groundwork they need to get started. SEO professionals will find this book useful as a comprehensive reference for ongoing projects. Learn the underlying theory behind SEO, and what makes search engines work Become familiar with the steps you need to take to prepare for an SEO effort Understand how to put together the specific details for executing an SEO strategy Explore several value-added components to expand your SEO plan Learn what's necessary to build a competent SEO team, with defined roles Get the experts' view of the future of SEO

  31. SOA in Practice

    The Art of Distributed System Design

    by Nicolai M. Josuttis

    Description :

    This book demonstrates service-oriented architecture (SOA) as a concrete discipline rather than a hopeful collection of cloud charts. Built upon the author's firsthand experience rolling out a SOA at a major corporation, SOA in Practice explains how SOA can simplify the creation and maintenance of large-scale applications. Whether your project involves a large set of Web Services-based components, or connects legacy applications to modern business processes, this book clarifies how -- and whether -- SOA fits your needs. SOA has been a vision for years. This book brings it down to earth by describing the real-world problems of implementing and running a SOA in practice. After defining SOA's many facets, examining typical use patterns, and exploring how loose coupling helps build stronger applications, SOA in Practice presents a framework to help you determine when to take advantage of SOA. In this book you will: Focus squarely on real deployment and technology, not just standards maps Examine business problems to determine which ones fit a SOA approach before plastering a SOA solution on top of them Find clear paths for building solutions without getting trapped in the mire of changing web services details Gain the experience of a systems analyst intimately involved with SOA "The principles and experiences described in this book played an important role in making SOA at T-Mobile a success story, with more than 10 million service calls per day." --Dr. Steffen Roehn, Member of the Executive Committee T-Mobile International (CIO) "Nicolai Josuttis has produced something that is rare in the over-hyped world of SOA; a thoughtful work with deep insights based on hands-on experiences. This book is a significant milestone in promoting practical disciplines for all SOA practitioners." --John Schmidt, Chairman, Integration Consortium "The book belongs in the hands of every CIO, IT Director and IT planning manager." --Dr. Richard Mark Soley, Chairman and CEO, Object Management Group; Executive Director, SOA Consortium

  32. Essential Business Process Modeling

    by Michael Havey

    Description :

    Ten years ago, groupware bundled with email and calendar applications helped track the flow of work from person to person within an organization. Workflow in today's enterprise means more monitoring and orchestrating massive systems. A new technology called Business Process Management, or BPM, helps software architects and developers design, code, run, administer, and monitor complex network-based business processes BPM replaces those sketchy flowchart diagrams that business analysts draw on whiteboards with a precise model that uses standard graphical and XML representations, and an architecture that allows it converse with other services, systems, and users. Sound complicated? It is. But it's downright frustrating when you have to search the Web for every little piece of information vital to the process. Essential Business Process Modeling gathers all the concepts, design, architecture, and standard specifications of BPM into one concise book, and offers hands-on examples that illustrate BPM's approach to process notation, execution, administration and monitoring. Author Mike Havey demonstrates standard ways to code rigorous processes that are centerpieces of a service-oriented architecture (SOA), which defines how networks interact so that one can perform a service for the other. His book also shows how BPM complements enterprise application integration (EAI), a method for moving from older applications to new ones, and Enterprise Service BUS for integrating different web services, messaging, and XML technologies into a single network. BPM, he says, is to this collection of services what a conductor is to musicians in an orchestra: it coordinates their actions in the performance of a larger composition. Essential Business Process Modeling teaches you how to develop examples of process-oriented applications using free tools that can be run on an average PC or laptop. You'll also learn about BPM design patterns and best practices, as well as some underlying theory. The best way to monitor processes within an enterprise is with BPM, and the best way to navigate BPM is with this valuable book.


Know of another book in this series?

To add a book to this page, search for it and add “Theory In Practice” to its series section.