Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs
Author: Adam Tornhill
Publisher: Pragmatic Bookshelf
DOWNLOAD NOW »
Jack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you'll learn strategies to predict the future of your codebase, assess refactoring direction, and understand how your team influences the design. With its unique blend of forensic psychology and code analysis, this book arms you with the strategies you need, no matter what programming language you use. Software is a living entity that's constantly changing. To understand software systems, we need to know where they came from and how they evolved. By mining commit data and analyzing the history of your code, you can start fixes ahead of time to eliminate broken designs, maintenance issues, and team productivity bottlenecks. In this book, you'll learn forensic psychology techniques to successfully maintain your software. You'll create a geographic profile from your commit data to find hotspots, and apply temporal coupling concepts to uncover hidden relationships between unrelated areas in your code. You'll also measure the effectiveness of your code improvements. You'll learn how to apply these techniques on projects both large and small. For small projects, you'll get new insights into your design and how well the code fits your ideas. For large projects, you'll identify the good and the fragile parts. Large-scale development is also a social activity, and the team's dynamics influence code quality. That's why this book shows you how to uncover social biases when analyzing the evolution of your system. You'll use commit messages as eyewitness accounts to what is really happening in your code. Finally, you'll put it all together by tracking organizational problems in the code and finding out how to fix them. Come join the hunt for better code! What You Need: You need Java 6 and Python 2.7 to run the accompanying analysis tools. You also need Git to follow along with the examples.
DOWNLOAD NOW »
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.
DOWNLOAD NOW »
If you’re passionate about programming and want to get better at it, you’ve come to the right source. Code Craft author Pete Goodliffe presents a collection of useful techniques and approaches to the art and craft of programming that will help boost your career and your well-being. Goodliffe presents sound advice that he’s learned in 15 years of professional programming. The book’s standalone chapters span the range of a software developer’s life—dealing with code, learning the trade, and improving performance—with no language or industry bias. Whether you’re a seasoned developer, a neophyte professional, or a hobbyist, you’ll find valuable tips in five independent categories: Code-level techniques for crafting lines of code, testing, debugging, and coping with complexity Practices, approaches, and attitudes: keep it simple, collaborate well, reuse, and create malleable code Tactics for learning effectively, behaving ethically, finding challenges, and avoiding stagnation Practical ways to complete things: use the right tools, know what “done” looks like, and seek help from colleagues Habits for working well with others, and pursuing development as a social activity
Nine Practices to Extend the Life (and Value) of Your Software
Author: David Scott Bernstein
DOWNLOAD NOW »
We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project. These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend. By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code. Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.
Agile coding with design patterns and SOLID principles
Author: Gary McLean Hall
Publisher: Microsoft Press
DOWNLOAD NOW »
Agile coding with design patterns and SOLID principles As every developer knows, requirements are subject to change. But when you build adaptability into your code, you can respond to change more easily and avoid disruptive rework. Focusing on Agile programming, this book describes the best practices, principles, and patterns that enable you to create flexible, adaptive code--and deliver better business value. Expert guidance to bridge the gap between theory and practice Get grounded in Scrum: artifacts, roles, metrics, phases Organize and manage architectural dependencies Review best practices for patterns and anti-patterns Master SOLID principles: single-responsibility, open/closed, Liskov substitution Manage the versatility of interfaces for adaptive code Perform unit testing and refactoring in tandem See how delegation and abstraction impact code adaptability Learn best ways to implement dependency interjection Apply what you learn to a pragmatic, agile coding project Get code samples at: http://github.com/garymclean/AdaptiveCode
Your Life, Liberty, and Happiness After the Digital Explosion
Author: Harold Abelson,Ken Ledeen,Harry R. Lewis
Publisher: Addison-Wesley Professional
DOWNLOAD NOW »
Every day, billions of photographs, news stories, songs, X-rays, TV shows, phone calls, and emails are being scattered around the world as sequences of zeroes and ones: bits. We can't escape this explosion of digital information and few of us want to-the benefits are too seductive. The technology has enabled unprecedented innovation, collaboration, entertainment, and democratic participation. But the same engineering marvels are shattering centuries-old assumptions about privacy, identity, free expression, and personal control as more and more details of our lives are captured as digital data. Can you control who sees all that personal information about you? Can email be truly confidential, when nothing seems to be private? Shouldn't the Internet be censored the way radio and TV are? is it really a federal crime to download music? When you use Google or Yahoo! to search for something, how do they decide which sites to show you? Do you still have free speech in the digital world? Do you have a voice in shaping government or corporate policies about any of this? Blown to Bits offers provocative answers to these questions and tells intriguing real-life stories. This book is a wake-up call To The human consequences of the digital explosion.
DOWNLOAD NOW »
"From Grain to Pixel attempts to bridge the fields of film archiving and academic research, by addressing the discourse on film ontology and analysing how it affects the role of film archives. Fossati proposes a new theoretization of film archival practice as the starting point for a renewed dialogue between film scholars and film archivists." --Book Jacket.
DOWNLOAD NOW »
When you write software, you need to be at the top of your game. Great programmers practice to keep their skills sharp. Get sharp and stay sharp with more than fifty practice exercises rooted in real-world scenarios. If you're a new programmer, these challenges will help you learn what you need to break into the field, and if you're a seasoned pro, you can use these exercises to learn that hot new language for your next gig. One of the best ways to learn a programming language is to use it to solve problems. That's what this book is all about. Instead of questions rooted in theory, this book presents problems you'll encounter in everyday software development. These problems are designed for people learning their first programming language, and they also provide a learning path for experienced developers to learn a new language quickly. Start with simple input and output programs. Do some currency conversion and figure out how many months it takes to pay off a credit card. Calculate blood alcohol content and determine if it's safe to drive. Replace words in files and filter records, and use web services to display the weather, store data, and show how many people are in space right now. At the end you'll tackle a few larger programs that will help you bring everything together. Each problem includes constraints and challenges to push you further, but it's up to you to come up with the solutions. And next year, when you want to learn a new programming language or style of programming (perhaps OOP vs. functional), you can work through this book again, using new approaches to solve familiar problems. What You Need: You need access to a computer, a programming language reference, and the programming language you want to use.
DOWNLOAD NOW »
Border clearance processes by customs and other agencies are among the most important and problematic links in the global supply chain. Delays and costs at the border undermine a country’s competitiveness, either by taxing imported inputs with deadweight inefficiencies or by adding costs and reducing the competitiveness of exports. This book provides a practical guide to assist policy makers, administrators, and border management professionals with information and advice on how to improve border management systems, procedures, and institutions.
DOWNLOAD NOW »
The world order built upon the Peace of Westphalia is faltering. State fragility or failure are endemic, with no fewer than one-third of the states in the United Nations earning a "high warning"-or worse-in the Fragile States Index, and an equal number suffering a decline in sustainability over the past decade.1 State weakness invites a range of illicit actors, including international terrorists, globally networked insurgents, and transnational criminal organizations (TCOs). The presence and operations of these entities keep states weak and incapable of effective governance, and limit the possibility of fruitful partnerships with the United States and its allies. Illicit organizations and their networks fuel corruption, eroding state legitimacy among the governed, and sowing doubt that the state is a genuine guardian of the public interest. These networks can penetrate the state, leading to state capture, and even criminal sovereignty.2 A growing number of weak and corrupt states is creating gaping holes in the global rule-based system of states that we depend on for our security and prosperity. Indeed, the chapters of this book suggest the emergence of a highly adaptive and parasitic alternative ecosystem, based on criminal commerce and extreme violence, with little regard for what we commonly conceive of as the public interest or the public good. The last 10 years have seen unprecedented growth in interactivity between and among a wide range of illicit networks, as well as the emergence of hybrid organizations that use methods characteristic of both terrorist and criminal groups. In a convergence of interests, terrorist organizations collaborate with cartels, and trafficking organizations collude with insurgents. International terrorist organizations, such as al-Qaeda and Hezbollah, engage energetically in transnational crime to raise funds for their operations. Prominent criminal organizations like Los Zetas in Mexico and D-Company in Pakistan have adopted the symbolic violence of terrorists-the propaganda of the deed-to secure their "turf." And networked insurgents, such as the Islamic State of Iraq and the Levant (ISIL), the Revolutionary Armed Forces of Colombia (FARC), and the Liberation Tigers of Tamil Eelam (LTTE), have adopted the techniques of both crime and terror.
Author: Julian Savulescu,Ruud ter Meulen,Guy Kahane
Publisher: John Wiley & Sons
DOWNLOAD NOW »
Enhancing Human Capacities is the first to review the very latest scientific developments in human enhancement. It is unique in its examination of the ethical and policy implications of these technologies from a broad range of perspectives. Presents a rich range of perspectives on enhancement from world leading ethicists and scientists from Europe and North America The most comprehensive volume yet on the science and ethics of human enhancement Unique in providing a detailed overview of current and expected scientific advances in this area Discusses both general conceptual and ethical issues and concrete questions of policy Includes sections covering all major forms of enhancement: cognitive, affective, physical, and life extension
DOWNLOAD NOW »
With this extraordinary first volume in what promises to be an epoch-making masterpiece, Neal Stephenson hacks into the secret histories of nations and the private obsessions of men, decrypting with dazzling virtuosity the forces that shaped this century. As an added bonus, the e-book edition of this New York Times bestseller includes an excerpt from Stephenson's new novel, Seveneves. In 1942, Lawrence Pritchard Waterhouse—mathematical genius and young Captain in the U.S. Navy—is assigned to detachment 2702. It is an outfit so secret that only a handful of people know it exists, and some of those people have names like Churchill and Roosevelt. The mission of Waterhouse and Detachment 2702—commanded by Marine Raider Bobby Shaftoe-is to keep the Nazis ignorant of the fact that Allied Intelligence has cracked the enemy's fabled Enigma code. It is a game, a cryptographic chess match between Waterhouse and his German counterpart, translated into action by the gung-ho Shaftoe and his forces. Fast-forward to the present, where Waterhouse's crypto-hacker grandson, Randy, is attempting to create a "data haven" in Southeast Asia—a place where encrypted data can be stored and exchanged free of repression and scrutiny. As governments and multinationals attack the endeavor, Randy joins forces with Shaftoe's tough-as-nails granddaughter, Amy, to secretly salvage a sunken Nazi submarine that holds the key to keeping the dream of a data haven afloat. But soon their scheme brings to light a massive conspiracy with its roots in Detachment 2702 linked to an unbreakable Nazi code called Arethusa. And it will represent the path to unimaginable riches and a future of personal and digital liberty...or to universal totalitarianism reborn. A breathtaking tour de force, and Neal Stephenson's most accomplished and affecting work to date, Cryptonomicon is profound and prophetic, hypnotic and hyper-driven, as it leaps forward and back between World War II and the World Wide Web, hinting all the while at a dark day-after-tomorrow. It is a work of great art, thought and creative daring; the product of a truly iconoclastic imagination working with white-hot intensity.
DOWNLOAD NOW »
Evil Media develops a philosophy of media power that extends the concept of media beyond its tried and trusted use in the games of meaning, symbolism, and truth. It addresses the gray zones in which media exist as corporate work systems, algorithms and data structures, twenty-first century self-improvement manuals, and pharmaceutical techniques. Evil Media invites the reader to explore and understand the abstract infrastructure of the present day. From search engines to flirting strategies, from the value of institutional stupidity to the malicious minutiae of databases, this book shows how the devil is in the details. The title takes the imperative "Don't be evil" and asks, what would be done any differently in contemporary computational and networked media were that maxim reversed.Media here are about much more and much less than symbols, stories, information, or communication: media do things. They incite and provoke, twist and bend, leak and manage. In a series of provocative stratagems designed to be used, Evil Media sets its reader an ethical challenge: either remain a transparent intermediary in the networks and chains of communicative power or become oneself an active, transformative medium.
DOWNLOAD NOW »
Create appropriate, security-focused business propositions that consider the balance between cost, risk, and usability, while starting your journey to become an information security manager. Covering a wealth of information that explains exactly how the industry works today, this book focuses on how you can set up an effective information security practice, hire the right people, and strike the best balance between security controls, costs, and risks. Practical Information Security Management provides a wealth of practical advice for anyone responsible for information security management in the workplace, focusing on the ‘how’ rather than the ‘what’. Together we’ll cut through the policies, regulations, and standards to expose the real inner workings of what makes a security management program effective, covering the full gamut of subject matter pertaining to security management: organizational structures, security architectures, technical controls, governance frameworks, and operational security. This book was not written to help you pass your CISSP, CISM, or CISMP or become a PCI-DSS auditor. It won’t help you build an ISO 27001 or COBIT-compliant security management system, and it won’t help you become an ethical hacker or digital forensics investigator – there are many excellent books on the market that cover these subjects in detail. Instead, this is a practical book that offers years of real-world experience in helping you focus on the getting the job done. What You Will Learn Learn the practical aspects of being an effective information security manager Strike the right balance between cost and risk Take security policies and standards and make them work in reality Leverage complex security functions, such as Digital Forensics, Incident Response and Security Architecture Who This Book Is For“/div>divAnyone who wants to make a difference in offering effective security management for their business. You might already be a security manager seeking insight into areas of the job that you’ve not looked at before, or you might be a techie or risk guy wanting to switch into this challenging new career. Whatever your career goals are, Practical Security Management has something to offer you.
DOWNLOAD NOW »
This book focuses on new and emerging data mining solutions that offer a greater level of transparency than existing solutions. Transparent data mining solutions with desirable properties (e.g. effective, fully automatic, scalable) are covered in the book. Experimental findings of transparent solutions are tailored to different domain experts, and experimental metrics for evaluating algorithmic transparency are presented. The book also discusses societal effects of black box vs. transparent approaches to data mining, as well as real-world use cases for these approaches.As algorithms increasingly support different aspects of modern life, a greater level of transparency is sorely needed, not least because discrimination and biases have to be avoided. With contributions from domain experts, this book provides an overview of an emerging area of data mining that has profound societal consequences, and provides the technical background to for readers to contribute to the field or to put existing approaches to practical use.
DOWNLOAD NOW »
Discover the most progressive thinking about organizations today as acclaimed author Richard Daft balances recent, innovative ideas with proven classic theories and effective business practices. Daft’s best-selling ORGANIZATION THEORY AND DESIGN presents a captivating, compelling snapshot of contemporary organizations and the concepts driving their success that will immediately engage any reader. Recognized as one of the most systematic, well-organized texts in the market, the 12th edition of ORGANIZATION THEORY AND DESIGN helps both future and current managers thoroughly prepare for the challenges of today’s business world. This revision showcases some of today’s most current examples and research alongside time-tested principles. Readers see how many of today’s well-known organizations thrive amidst a rapidly changing, highly competitive international environment. New learning features provide opportunities for readers to apply concepts and refine personal business skills and insights. Important Notice: Media content referenced within the product description or the product text may not be available in the ebook version.
DOWNLOAD NOW »
The Robert C. Martin Clean Code Collection consists of two bestselling eBooks: Clean Code: A Handbook of Agile Software Craftmanship The Clean Coder: A Code of Conduct for Professional Programmers In Clean Code, legendary software expert Robert C. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer--but only if you work at it. You will be challenged to think about what’s right about that code and what’s wrong with it. More important, you will be challenged to reassess your professional values and your commitment to your craft. In The Clean Coder, Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice--about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act. Readers of this collection will come away understanding How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development What it means to behave as a true software craftsman How to deal with conflict, tight schedules, and unreasonable managers How to get into the flow of coding and get past writer’s block How to handle unrelenting pressure and avoid burnout How to combine enduring attitudes with new development paradigms How to manage your time and avoid blind alleys, marshes, bogs, and swamps How to foster environments where programmers and teams can thrive When to say “No”--and how to say it When to say “Yes”--and what yes really means