Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

HTML and CSS: Visual QuickStart Guide (Visual QuickStart Guides)


Elizabeth Castro - 2013
    In this updated edition author Bruce Hyslop uses crystal-clear instructions and friendly prose to introduce you to all of today's HTML and CSS essentials. The book has been refreshed to feature current web design best practices. You'll learn how to design, structure, and format your website. You'll learn about the new elements and form input types in HTML5. You'll create and use images, links, styles, and forms; and you'll add video, audio, and other multimedia to your site. You'll learn how to add visual effects with CSS3. You'll understand web standards and learn from code examples that reflect today's best practices. Finally, you will test and debug your site, and publish it to the web. Throughout the book, the author covers all of HTML and offers essential coverage of HTML5 and CSS techniques.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Reframing the Path to School Leadership: A Guide for Teachers and Principals


Lee G. Bolman - 2002
    A series of dialogues between a novice and a master teacher and between a new and a seasoned principal demonstrate how framing--and then reframing--challenges brings clarity.

ACA Ethical Standards Casebook


Barbara Herlihy - 1989
    The 6th edition reflects the latest changes in the 2005 ACA Code of Ethics and how to apply these standards in work with diverse clients.

Software Engineering at Google: Lessons Learned from Programming Over Time


Titus Winters - 2020
    With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners.Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time.You'll learn:Fundamental differences between software engineering and programmingHow an organization effectively manages a living codebase and efficiently responds to inevitable changeWhy culture (and recognizing it) is important, and how processes, practices, and tools come into play

Creative Selection: Inside Apple's Design Process During the Golden Age of Steve Jobs


Ken Kocienda - 2018
    Creative Selection recounts the life of one of the few who worked behind the scenes, a highly-respected software engineer who worked in the final years the Steve Jobs era--the Golden Age of Apple.Ken Kocienda offers an inside look at Apple's creative process. For fifteen years, he was on the ground floor of the company as a specialist, directly responsible for experimenting with novel user interface concepts and writing powerful, easy-to-use software for products including the iPhone, the iPad, and the Safari web browser. His stories explain the symbiotic relationship between software and product development for those who have never dreamed of programming a computer, and reveal what it was like to work on the cutting edge of technology at one of the world's most admired companies.Kocienda shares moments of struggle and success, crisis and collaboration, illuminating each with lessons learned over his Apple career. He introduces the essential elements of innovation--inspiration, collaboration, craft, diligence, decisiveness, taste, and empathy--and uses these as a lens through which to understand productive work culture.An insider's tale of creativity and innovation at Apple, Creative Selection shows readers how a small group of people developed an evolutionary design model, and how they used this methodology to make groundbreaking and intuitive software which countless millions use every day.

Cryptography and Network Security


Behrouz A. Forouzan - 2007
    In this new first edition, well-known author Behrouz Forouzan uses his accessible writing style and visual approach to simplify the difficult concepts of cryptography and network security. This edition also provides a website that includes Powerpoint files as well as instructor and students solutions manuals. Forouzan presents difficult security topics from the ground up. A gentle introduction to the fundamentals of number theory is provided in the opening chapters, paving the way for the student to move on to more complex security and cryptography topics. Difficult math concepts are organized in appendices at the end of each chapter so that students can first learn the principles, then apply the technical background. Hundreds of examples, as well as fully coded programs, round out a practical, hands-on approach which encourages students to test the material they are learning.

Laravel: Code Bright


Dayle Rees - 2013
    At $29 and cheaper than a good pizza, you will get the book in its current partial form, along with all future chapters, updates, and fixes for free. As of the day I wrote this description, Code Bright had 130 pages and was just getting started. To give you some perspective on how detailed it is, Code Happy was 127 pages in its complete state. Want to know more? Carry on reading.Welcome back to Laravel. Last year I wrote a book about the Laravel PHP framework. It started as a collection of tutorials on my blog, and eventually became a full book. I definitely didn’t expect it to be as popular as it was. Code Happy has sold almost 3000 copies, and is considered to be one of the most valuable resourcesfor learning the Laravel framework.Code Bright is the spiritual successor to Code Happy. The framework has grown a lot in the past year, and has changed enough to merit a new title. With Code Bright I hope to improve on Code Happy with every way, my goal is, to once again, build the most comprehensive learning experience for the framework. Oh, and to still be funny. That’s very important to me.Laravel Code Bright will contain a complete learning experience for all of the framework’s features. The style of writing will make it approachable for beginners, and a wonderful reference resource for experienced developers alike.You see, people have told me that they enjoyed reading Code Happy, not only for its educational content, but for its humour, and for my down to earth writing style. This is very important to me. I like to write my books as if we were having a conversation in a bar.When I wrote Code Happy last year, I was simply a framework enthusiast. One of the first to share information about the framework. However, since then I have become a committed member of the core development team. Working directly with the framework author to make Laravel a wonderful experience for the developers of the world.One other important feature of both books, is that they are published while in progress. This means that the book is available in an incomplete state, but will grow over time into a complete title. All future updates will be provided for free.What this means is that I don’t have to worry about deadlines, or a fixed point of completion. It leads to less stress and better writing. If I think of a better way to explain something, I can go back and change it. In a sense, the book will never be completed. I can constantly add more information to it, until it becomes the perfect resource.Given that this time I am using the majority of my spare time to write the title (yes, I have a full time job too!), I have raised the price a little to justify my invested time. I was told by many of my past readers that they found the previous title very cheap for the resource that it grew into, so if you are worried about the new price, then let me remind you what you will get for your 29 bucks.The successor to Code Happy, seen by many as the #1 learning resource for the Laravel PHP framework.An unending source of information, chapters will be constantly added as needed until the book becomes a giant vault of framework knowledge.Comedy, and a little cheesy, but very friendly writing.

Concurrent Programming in Java(tm): Design Principles and Pattern


Doug Lea - 1996
    Thread programming enables developers to design applications that are more responsive to user demands, faster, and more easily controlled. This book offers comprehensive coverage of this vital aspect of the Java language. The book is completely up-to-date with the new thread model that is now incorporated into the most recent version of the Java Virtual Machine. All Java programmers interested in doing concurrent programming must understand these new concepts. The book approaches the topic from a design pattern point of view. It introduces and summarizes Java's concurrency support, shows readers how to initiate, control, and coordinate concurrent activities, and offers numerous recipe-like techniques for designing and implementing Java structures that solve common concurrent programming challenges. Specifically, the book presents important strategies for avoiding the inconsistencies that can crop up in multi-threaded programs, addresses the concept of liveness-how to ensure that all threads in use are kept active simultaneously, examines state-dependent action, and demonstrates effective methods for handling user requests in a multi-threaded environment.

GUI Bloopers: Don'ts and Do's for Software Developers and Web Designers


Jeff Johnson - 2000
    While equipping you with the minimum of theory, GUI expert Jeff Johnson presents the reality of interface design in an entertaining, anecdotal, and instructive way. * Updated to reflect the bloopers that are common today, incorporating many comments and suggestions from first edition readers. * Takes a learn-by-example approach that teaches how to avoid common errors. * Covers bloopers in a wide range of categories: GUI controls, graphic design and layout, text messages, interaction strategies, Web site design -- including search, link, and navigation, responsiveness issues, and management decision-making. * Organized and formatted so information needed is quickly found, the new edition features call-outs for the examples and informative captions to enhance quick knowledge building. * Hundreds of illustrations: both the DOs and the DON'Ts for each topic covered, with checklists and additional bloopers on www.gui-bloopers.com.

Spring Microservices in Action


John Carnell - 2017
    Spring Boot and Spring Cloud offer Java developers an easy migration path from traditional monolithic Spring applications to microservice-based applications that can be deployed to multiple cloud platforms. The Spring Boot and Spring Cloud frameworks let you quickly build microservices that are ready to be deployed to a private corporate cloud or a public cloud like Amazon Web Services (AWS) or Pivotal’s CloudFoundry.Spring Microservices in Action teaches you how to use the Spring Boot and Spring Cloud frameworks to build and deploy microservice-based cloud applications. You'll begin with an introduction to the microservice pattern and how to build microservices with Spring Boot and Spring Cloud. Then you'll get hands-on and discover how to configure Spring Boot. Using lots of real-world examples, you'll learn topics like service discovery with Spring Cloud, Netflix Eureka, and Ribbon. Next, you'll find out how to handle potential problems using client-side resiliency patterns with Spring and Netflix Hystrix. This book also covers implementing a service gateway with Spring Cloud and Zuul and event processing in the cloud with Spring Cloud Stream. Finally, you'll learn to deploy and push your application to cloud services, including AWS and CloudFoundry. By the end of this book, you'll not only be able to build your own microservice-based applications, but how operationalize and scale your microservices so they can deployed to a private or public cloud.

BPMN Method & Style with BPMN Implementer's Guide


Bruce Silver - 2012
    The meaning of the business process diagram is the same, regardless of the tool used to create it. But creating models that are correct, complete, and clear demands more than a dictionary of BPMN shapes and symbols. It also requires a methodology for translating process logic consistently into the diagram. And it requires a measure of modeling style as well, conventions that ensure that the process logic is unambiguous from the diagram by itself. In short, "good BPMN" requires a disciplined approach called "method and style."In this book, Bruce Silver explains which BPMN elements process modelers need to understand, in two levels, including exactly where and how to use each element. Level 1 (the Descriptive modeling subclass of BPMN 2.0) is a palette of shapes and symbols largely carried over from traditional flowcharting. Level 2 (the Analytic subclass) expands the palette to be able to describe event-triggered behavior, critical to modeling exception handling.The book explains the real meaning of BPMN's most basic concepts - like activity, process, and end state - essential to using the language correctly, and provides a step-by-step methodology for going from a blank page to a complete end-to-end BPMN model, developed from the top down in a hierarchical structure. From the top-level diagram you can see on a single page exactly how the process starts, its possible end states, what the instance represents, and communications with the Customer, service providers, and other processes. From there you can drill down to see the details of any part of the process. Thie popular first edition of this book was published in 2009 based on the draft BPMN 2.0 specification. This second edition is based on the final BPMN 2.0 specification. Although the diagram elements have changed little since the first edition, both the methodology and style sections have been completely rewritten.The second half of the book, the BPMN Implementer's Guide, is completely new. It puts the focus on the XML serialization of the diagram, for both non-executable and executable process models. It details the BPMN 2.0 metamodel and XML Schema, and describes the BPMN-I Profile, a set of serialization rules that facilitate interchange of BPMN models in the Analytic subclass between tools. It also explains how BPMN 2.0 describes execution-related details, such as process data and data mapping, services, messages, and human task assignment, illustrated with an example executable process created in Bonita Open Solution. It concludes with guidelines for implementers on how to align executable design with business-oriented top-down process modeling.The book is lavishly illustrated with over 100 BPMN diagrams, and the BPMN Implementer's Guide section contains many XML examples as well.Bruce Silver is the leading provider of BPMN training and certification. He has been providing BPMN training since early 2007 and is regarded as an authority in the field.

Cultures and Organizations: Software of the Mind


Geert Hofstede - 1993
    Professor Geert Hofstede's 30 years of field research on cultural differences and the software of the mind helps us look at how we think - and how we fail to think - as members of groups. This newly revised and expanded edition is based on the latest data from Professor Hofstede ongoing field research, and provides detailed comparisons of cross-cultural differences among 70 nations. business, family, schools and political organizations. Professor Hofstede explains phenomena such as culture shock, ethnocentrism, stereotyping, differences in language and humor. Most importantly, he discusses the practical implications of the culture differences described in the book and how understanding these cultural differences can enable people from different cultures to work together more productively. parents. Melding powerful intellectual analysis and hard social, cultural, and organizational research, Hofstede gives a sobering picture of a world perilously lacking in self-knowledge - unaware of serious difference between the businesses, organizations, cultures, and nations that populate our planet despite the fact of globalization. But culture shock - whether between an individual and a new country, between organizations, between the sexes, or between opposing diplomats - can be turned to our advantage, Hofstede says-if we understand it. Cultures and Organizations helps to explain the differences in the way leaders and their followers think, offering practical solutions for those in business and politics to help solve conflict between different groups.

Code: The Hidden Language of Computer Hardware and Software


Charles Petzold - 1999
    And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.