Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development


Craig Larman - 2000
    Building on two widely acclaimed previous editions, Craig Larman has updated this book to fully reflect the new UML 2 standard, to help you master the art of object design, and to promote high-impact, iterative, and skillful agile modeling practices.Developers and students will learn object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies. These case studies incrementally introduce key skills, essential OO principles and patterns, UML notation, and best practices. You won’t just learn UML diagrams - you’ll learn how to apply UML in the context of OO software development.Drawing on his unsurpassed experience as a mentor and consultant, Larman helps you understand evolutionary requirements and use cases, domain object modeling, responsibility-driven design, essential OO design, layered architectures, “Gang of Four” design patterns, GRASP, iterative methods, an agile approach to the Unified Process (UP), and much more. This edition’s extensive improvements include:- A stronger focus on helping you master OOA/D through case studies that demonstrate key OO principles and patterns, while also applying the UML- New coverage of UML 2, Agile Modeling, Test-Driven Development, and refactoring- Many new tips on combining iterative and evolutionary development with OOA/D- Updates for easier study, including new learning aids and graphics- New college educator teaching resources- Guidance on applying the UP in a light, agile spirit, complementary with other iterative methods such as XP and Scrum- Techniques for applying the UML to documenting architectures- A new chapter on evolutionary requirements, and much moreApplying UML and Patterns, Third Edition, is a lucid and practical introduction to thinking and designing with objects - and creating systems that are well crafted, robust, and maintainable.

The Problem with Software: Why Smart Engineers Write Bad Code


Adam Barr - 2018
    As the size and complexity of commercial software have grown, the gap between academic computer science and industry has widened. It's an open secret that there is little engineering in software engineering, which continues to rely not on codified scientific knowledge but on intuition and experience.Barr, who worked as a programmer for more than twenty years, describes how the industry has evolved, from the era of mainframes and Fortran to today's embrace of the cloud. He explains bugs and why software has so many of them, and why today's interconnected computers offer fertile ground for viruses and worms. The difference between good and bad software can be a single line of code, and Barr includes code to illustrate the consequences of seemingly inconsequential choices by programmers. Looking to the future, Barr writes that the best prospect for improving software engineering is the move to the cloud. When software is a service and not a product, companies will have more incentive to make it good rather than "good enough to ship."

Internet & World Wide Web: How to Program


Paul Deitel - 1999
    Internet and World Wide Web How to Program, 4e introduces students with little or no programming experience to the exciting world of Web-Based applications. The book has been substantially revised to reflect today's Web 2.0 rich Internet application-development methodologies. A comprehensive book that teaches the fundamentals needed to program on the Internet, this text provides in-depth coverage of introductory programmming principles, various markup languages (XHTML, Dynamic HTML and XML), several scripting languages (JavaScript, PHP, Ruby/Ruby on Rails and Perl); AJAX, web services, Web Servers (IIS and Apache) and relational databases (MySQL/Apache Derby/Java DB) -- all the skills and tools needed to create dynamic Web-based applications. The text contains comprehensive introductions to ASP.NET 2.0 and JavaServer Faces (JSF). Hundreds of live-code examples of real applications throughout the book available for download allow readers to run the applications and see and hear the outputs.The book provides instruction on building Ajax-enabled rich Internet applications that enhance the presentation of online content and give web applications the look and feel of desktop applications. The chapter on Web 2.0 and Internet business exposes readers to a wide range of other topics associated with Web 2.0 applications and businesses After mastering the material in this book, students will be well prepared to build real-world, industrial strength, Web-based applications.

Killing the Black Body: Race, Reproduction, and the Meaning of Liberty


Dorothy Roberts - 1997
    This is a no-holds-barred response to the liberal and conservative retreat from an assertive, activist, and socially transformative civil rights agenda of recent years--using a black feminist lens and the issue of  the impact of recent legislation, social policy, and welfare "reform" on black women's--especially poor black women's--control over their bodies' autonomy and their freedom to bear and raise children with respect and dignity in a society whose white mainstream is determined to demonize, even criminalize their lives.   It gives its readers a cogent legal and historical argument for a radically new , and socially transformative, definition of  "liberty" and "equality" for the American polity from a black feminist perspective.The author is able to combine the most innovative and radical thinking on several fronts--racial theory, feminist, and legal--to produce a work that is at once history and political treatise.  By using the history of how American law--beginning with slavery--has treated the issue of the state's right  to interfere with the black woman's body, the author explosively and effectively makes the case for the legal redress to the racist implications of current policy with regards to 1) access to and coercive dispensing of birth control to poor black women 2) the criminalization of parenting by poor black women who have used drugs 3) the stigmatization and devaluation of poor black mothers under the new welfare provisions, and 4) the differential access to and disproportionate spending of social resources on the new reproductive technologies used by wealthy white couples to insure genetically related offspring.The legal redress of the racism inherent in current  American law and policy in these matters, the author argues in her last chapter, demands and should lead us to adopt a new standard and definition of the liberal theory of "liberty" and "equality" based on the need for, and the positive role of government in fostering, social as well as individual justice.

Foundations of Software Testing: ISTQB Certification


Dorothy Graham - 2006
    The coverage also features learning aids.

The Butterfly Effect


Jon Ronson - 2017
    Lives were mangled. Fortunes were made. All for your pleasure. Follow writer and narrator Jon Ronson as he uncovers our web of desire.

The Curse of the Good Girl: Raising Authentic Girls with Courage and Confidence


Rachel Simmons - 2009
    Unerringly nice, polite, modest, and selfless, the Good Girl is a paradigm so narrowly defined that it's unachievable. When girls inevitably fail to live up- experiencing conflicts with peers, making mistakes in the classroom or on the playing field-they are paralyzed by self-criticism, stunting the growth of vital skills and habits. Simmons traces the poisonous impact of Good Girl pressure on development and provides a strategy to reverse the tide. At once expository and prescriptive, The Curse of the Good Girl is a call to arms from a new front in female empowerment. Looking to the stories shared by the women and girls who attend her workshops, Simmons shows that Good Girl pressure from parents, teachers, coaches, media, and peers erects a psychological glass ceiling that begins to enforce its confines in girlhood and extends across the female lifespan. The curse of the Good Girl erodes girls' ability to know, express, and manage a complete range of feelings. It expects girls to be selfless, limiting the expression of their needs. It requires modesty, depriving the permission to articulate their strengths and goals. It diminishes assertive body language, quieting voices and weakening handshakes. It touches all areas of girls' lives and follows many into adulthood, limiting their personal and professional potential. Since the popularization of the Ophelia phenomenon, we have lamented the loss of self-esteem in adolescent girls, recognizing that while the doors of opportunity are open to twenty-first-century American girls, many lack the confidence to walk through them. In The Curse of the Good Girl, Simmons provides a catalog of tangible lessons in bolstering the self and silencing the curse of the Good Girl. At the core of Simmons's radical argument is her belief that the most critical freedom we can win for our daughters is the liberty not only to listen to their inner voice but also to act on it. Watch a Video

Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design


James A. Whittaker - 2009
    Whittaker defines both in-the-small techniques for individual testers and in-the-large techniques to supercharge test teams. He also introduces a hybrid strategy for injecting exploratory concepts into traditional scripted testing. You'll learn when to use each, and how to use them all successfully.Concise, entertaining, and actionable, this book introduces robust techniques that have been used extensively by real testers on shipping software, illuminating their actual experiences with these techniques, and the results they've achieved. Writing for testers, QA specialists, developers, program managers, and architects alike, Whittaker answers crucial questions such as:- Why do some bugs remain invisible to automated testing--and how can I uncover them?- What techniques will help me consistently discover and eliminate "show stopper" bugs?- How do I make manual testing more effective--and less boring and unpleasant?- What's the most effective high-level test strategy for each project?- Which inputs should I test when I can't test them all?- Which test cases will provide the best feature coverage?- How can I get better results by combining exploratory testing with traditional script or scenario-based testing?- How do I reflect feedback from the development process, such as code changes?

The Productive Researcher


Mark S. Reed - 2017
    He draws on interviews with some of the world’s highest performing researchers, the literature and his own experience to identify a small number of important insights that can transform how researchers work. The book is based on an unparalleled breadth of interdisciplinary evidence that speaks directly to researchers of all disciplines and career stages. The lessons in this book will make you more productive, more satisfied with what you produce, and enable you to be happy working less, and being more. The hardback edition has the title and design imprinted on a fabric cover, hand crafted by a book maker in Yorkshire. It contains spectacular colour photography throughout. Chapters are accompanied by close-up images of trees that build up to the forest metaphor that concludes the book. These are bookended by wide perspective canopy images that accompany the front matter (from which the cover design is derived) and concluding chapter. The overall effect is a touch and feel that makes this a book to savour. Mark Reed is Professor of Socio-Technical Innovation at Newcastle University and Visiting Professor at Birmingham City University and the University of Leeds. He has over 140 publications that have been cited more than 10,000 times. He is author of The Research Impact Handbook, which he has used to train over 4000 researchers from more than 200 institutions in 55 countries.

Deep Learning


Ian Goodfellow - 2016
    Because the computer gathers knowledge from experience, there is no need for a human computer operator to formally specify all the knowledge that the computer needs. The hierarchy of concepts allows the computer to learn complicated concepts by building them out of simpler ones; a graph of these hierarchies would be many layers deep. This book introduces a broad range of topics in deep learning.The text offers mathematical and conceptual background, covering relevant concepts in linear algebra, probability theory and information theory, numerical computation, and machine learning. It describes deep learning techniques used by practitioners in industry, including deep feedforward networks, regularization, optimization algorithms, convolutional networks, sequence modeling, and practical methodology; and it surveys such applications as natural language processing, speech recognition, computer vision, online recommendation systems, bioinformatics, and videogames. Finally, the book offers research perspectives, covering such theoretical topics as linear factor models, autoencoders, representation learning, structured probabilistic models, Monte Carlo methods, the partition function, approximate inference, and deep generative models.Deep Learning can be used by undergraduate or graduate students planning careers in either industry or research, and by software engineers who want to begin using deep learning in their products or platforms. A website offers supplementary material for both readers and instructors.

Fortunes of Feminism. From State-Managed Capitalism to Neoliberal Crisis


Nancy Fraser - 2013
    But feminism’s subsequent immersion in identity politics coincided with a decline in its utopian energies and the rise of neoliberalism. Now, foreseeing a revival in the movement, Fraser argues for a reinvigorated feminist radicalism able to address the global economic crisis. Feminism can be a force working in concert with other egalitarian movements in the struggle to bring the economy under democratic control, while building on the visionary potential of the earlier waves of women’s liberation. This powerful new account is set to become a landmark of feminist thought.

No Visible Bruises: What We Don’t Know About Domestic Violence Can Kill Us


Rachel Louise Snyder - 2019
    Through the stories of victims, perpetrators, law enforcement, and reform movements from across the country, Snyder explores not only the dark corners of private violence, but also its far-reaching consequences for society, and what it will take to truly address it.

You Just Don't Understand: Women and Men in Conversation


Deborah Tannen - 1990
    This is the book that brought gender differences in ways of speaking to the forefront of public awareness. With a rare combination of scientific insight and delightful, humorous writing, Tannen shows why women and men can walk away from the same conversation with completely different impressions of what was said.Studded with lively and entertaining examples of real conversations, this book gives you the tools to understand what went wrong -- and to find a common language in which to strengthen relationships at work and at home. A classic in the field of interpersonal relations, this book will change forever the way you approach conversations.

Programming Arduino Getting Started with Sketches


Simon Monk - 2011
    No prior programming experience is required! The downloadable sample programs featured in the book can be used as-is or modified to suit your purposes. Understand Arduino hardware fundamentals Install the software, power it up, and upload your first sketch Learn C language basics Write functions in Arduino sketches Structure data using arrays and strings Use Arduino's digital and analog inputs and outputs in your programs Work with the Standard Arduino Library Write sketches that can store data Program LCD displays Use an Ethernet shield to enable Arduino to function as a web server Write your own Arduino librariesIn December 2011, Arduino 1.0 was released. This changed a few things that have caused two of the sketches in this book to break. The change that has caused trouble is that the classes 'Server' and 'Client' have been renamed to 'EthernetServer' and 'EthernetClient' respectively. To fix this: Edit sketches 10-01 and 10-02 to replace all occurrences of the word 'Server' with 'EthernetServer' and all occurrences of 'Client' with 'EthernetClient'. Alternatively, you can download the modified sketches for 10-01 and 10-02 from here: http: //www.arduinobook.com/arduino-1-0Make Great Stuff! TAB, an imprint of McGraw-Hill Professional, is a leading publisher of DIY technology books for makers, hackers, and electronics hobbyists.

AWS Lambda: A Guide to Serverless Microservices


Matthew Fuller - 2016
    Lambda enables users to develop code that executes in response to events - API calls, file uploads, schedules, etc - and upload it without worrying about managing traditional server metrics such as disk space, memory, or CPU usage. With its "per execution" cost model, Lambda can enable organizations to save hundreds or thousands of dollars on computing costs. With in-depth walkthroughs, large screenshots, and complete code samples, the reader is guided through the step-by-step process of creating new functions, responding to infrastructure events, developing API backends, executing code at specified intervals, and much more. Introduction to AWS Computing Evolution of the Computing Workload Lambda Background The Internals The Basics Functions Languages Resource Allocation Getting Set Up Hello World Uploading the Function Working with Events AWS Events Custom Events The Context Object Properties Methods Roles and Permissions Policies Trust Relationships Console Popups Cross Account Access Dependencies and Resources Node Modules OS Dependencies OS Resources OS Commands Logging Searching Logs Testing Your Function Lambda Console Tests Third-Party Testing Libraries Simulating Context Hello S3 Object The Bucket The Role The Code The Event The Trigger Testing When Lambda Isn’t the Answer Host Access Fine-Tuned Configuration Security Long-Running Tasks Where Lambda Excels AWS Event-Driven Tasks Scheduled Events (Cron) Offloading Heavy Processing API Endpoints Infrequently Used Services Real-World Use Cases S3 Image Processing Shutting Down Untagged Instances Triggering CodeDeploy with New S3 Uploads Processing Inbound Email Enforcing Security Policies Detecting Expiring Certificates Utilizing the AWS API Execution Environment The Code Pipeline Cold vs. Hot Execution What is Saved in Memory Scaling and Container Reuse From Development to Deployment Application Design Development Patterns Testing Deployment Monitoring Versioning and Aliasing Costs Short Executions Long-Running Processes High-Memory Applications Free Tier Calculating Pricing CloudFormation Reusable Template with Minimum Permissions Cross Account Access CloudWatch Alerts AWS API Gateway API Gateway Event Creating the Lambda Function Creating a New API, Resource, and Method Initial Configuration Mapping Templates Adding a Query String Using HTTP Request Information Within Lambda Deploying the API Additional Use Cases Lambda Competitors Iron.io StackHut WebTask.io Existing Cloud Providers The Future of Lambda More Resources Conclusion