Software Source Code


Book Description

This book will focus on utilizing statistical modelling of the software source code, in order to resolve issues associated with the software development processes. Writing and maintaining software source code is a costly business; software developers need to constantly rely on large existing code bases. Statistical modelling identifies the patterns in software artifacts and utilize them for predicting the possible issues.




Code Reading


Book Description

CD-ROM contains cross-referenced code.




Code Quality


Book Description

Page 26: How can I avoid off-by-one errors? Page 143: Are Trojan Horse attacks for real? Page 158: Where should I look when my application can't handle its workload? Page 256: How can I detect memory leaks? Page 309: How do I target my application to international markets? Page 394: How should I name my code's identifiers? Page 441: How can I find and improve the code coverage of my tests? Diomidis Spinellis' first book, Code Reading, showed programmers how to understand and modify key functional properties of software. Code Quality focuses on non-functional properties, demonstrating how to meet such critical requirements as reliability, security, portability, and maintainability, as well as efficiency in time and space. Spinellis draws on hundreds of examples from open source projects--such as the Apache web and application servers, the BSD Unix systems, and the HSQLDB Java database--to illustrate concepts and techniques that every professional software developer will be able to appreciate and apply immediately. Complete files for the open source code illustrated in this book are available online at: http://www.spinellis.gr/codequality/




Reversing


Book Description

Beginning with a basic primer on reverse engineering-including computer internals, operating systems, and assembly language-and then discussing the various applications of reverse engineering, this book provides readers with practical, in-depth techniques for software reverse engineering. The book is broken into two parts, the first deals with security-related reverse engineering and the second explores the more practical aspects of reverse engineering. In addition, the author explains how to reverse engineer a third-party software library to improve interfacing and how to reverse engineer a competitor's software to build a better product. * The first popular book to show how software reverse engineering can help defend against security threats, speed up development, and unlock the secrets of competitive products * Helps developers plug security holes by demonstrating how hackers exploit reverse engineering techniques to crack copy-protection schemes and identify software targets for viruses and other malware * Offers a primer on advanced reverse-engineering, delving into "disassembly"-code-level reverse engineering-and explaining how to decipher assembly language




Astronomy on the Personal Computer


Book Description

This long-awaited new edition of Montenbruck and Pfleger's successful book now includes chapters on perturbation calculations and on the calculation of physical ephemerides of the major planets and the sun. The book provides the reader with numerous programs and instructions for time and date calculation and for treating the two-body problem. Each chapter is carefully structured according to topic and closes with the listing of a relevant program, thereby facilitating its use as a practical handbook. The necessary astronomical and numerical fundamentals are also included in the text. The accompanying diskette has equally been completely revised.




Open Sources


Book Description

Freely available source code, with contributions from thousands of programmers around the world: this is the spirit of the software revolution known as Open Source. Open Source has grabbed the computer industry's attention. Netscape has opened the source code to Mozilla; IBM supports Apache; major database vendors haved ported their products to Linux. As enterprises realize the power of the open-source development model, Open Source is becoming a viable mainstream alternative to commercial software.Now in Open Sources, leaders of Open Source come together for the first time to discuss the new vision of the software industry they have created. The essays in this volume offer insight into how the Open Source movement works, why it succeeds, and where it is going.For programmers who have labored on open-source projects, Open Sources is the new gospel: a powerful vision from the movement's spiritual leaders. For businesses integrating open-source software into their enterprise, Open Sources reveals the mysteries of how open development builds better software, and how businesses can leverage freely available software for a competitive business advantage.The contributors here have been the leaders in the open-source arena: Brian Behlendorf (Apache) Kirk McKusick (Berkeley Unix) Tim O'Reilly (Publisher, O'Reilly & Associates) Bruce Perens (Debian Project, Open Source Initiative) Tom Paquin and Jim Hamerly (mozilla.org, Netscape) Eric Raymond (Open Source Initiative) Richard Stallman (GNU, Free Software Foundation, Emacs) Michael Tiemann (Cygnus Solutions) Linus Torvalds (Linux) Paul Vixie (Bind) Larry Wall (Perl) This book explains why the majority of the Internet's servers use open- source technologies for everything from the operating system to Web serving and email. Key technology products developed with open-source software have overtaken and surpassed the commercial efforts of billion dollar companies like Microsoft and IBM to dominate software markets. Learn the inside story of what led Netscape to decide to release its source code using the open-source mode. Learn how Cygnus Solutions builds the world's best compilers by sharing the source code. Learn why venture capitalists are eagerly watching Red Hat Software, a company that gives its key product -- Linux -- away.For the first time in print, this book presents the story of the open- source phenomenon told by the people who created this movement.Open Sources will bring you into the world of free software and show you the revolution.




The Success of Open Source


Book Description

Much of the innovative programming that powers the Internet, creates operating systems, and produces software is the result of "open source" code, that is, code that is freely distributed--as opposed to being kept secret--by those who write it. Leaving source code open has generated some of the most sophisticated developments in computer technology, including, most notably, Linux and Apache, which pose a significant challenge to Microsoft in the marketplace. As Steven Weber discusses, open source's success in a highly competitive industry has subverted many assumptions about how businesses are run, and how intellectual products are created and protected. Traditionally, intellectual property law has allowed companies to control knowledge and has guarded the rights of the innovator, at the expense of industry-wide cooperation. In turn, engineers of new software code are richly rewarded; but, as Weber shows, in spite of the conventional wisdom that innovation is driven by the promise of individual and corporate wealth, ensuring the free distribution of code among computer programmers can empower a more effective process for building intellectual products. In the case of Open Source, independent programmers--sometimes hundreds or thousands of them--make unpaid contributions to software that develops organically, through trial and error. Weber argues that the success of open source is not a freakish exception to economic principles. The open source community is guided by standards, rules, decisionmaking procedures, and sanctioning mechanisms. Weber explains the political and economic dynamics of this mysterious but important market development. Table of Contents: Preface 1. Property and the Problem of Software 2. The Early History of Open Source 3. What Is Open Source and How Does It Work? 4. A Maturing Model of Production 5. Explaining Open Source: Microfoundations 6. Explaining Open Source: Macro-Organization 7. Business Models and the Law 8. The Code That Changed the World? Notes Index Reviews of this book: In the world of open-source software, true believers can be a fervent bunch. Linux, for example, may act as a credo as well as an operating system. But there is much substance beyond zealotry, says Steven Weber, the author of The Success of Open Source...An open-source operating system offers its source code up to be played with, extended, debugged, and otherwise tweaked in an orgy of user collaboration. The author traces the roots of that ethos and process in the early years of computers...He also analyzes the interface between open source and the worlds of business and law, as well as wider issues in the clash between hierarchical structures and networks, a subject with relevance beyond the software industry to the war on terrorism. --Nina C. Ayoub, Chronicle of Higher Education Reviews of this book: A valuable new account of the [open-source software] movement. --Edward Rothstein, New York Times We can blindly continue to develop, reward, protect, and organize around knowledge assets on the comfortable assumption that their traditional property rights remain inviolate. Or we can listen to Steven Weber and begin to make our peace with the uncomfortable fact that the very foundations of our familiar "knowledge as property" world have irrevocably shifted. --Alan Kantrow, Chief Knowledge Officer, Monitor Group Ever since the invention of agriculture, human beings have had only three social-engineering tools for organizing any large-scale division of labor: markets (and the carrots of material benefits they offer), hierarchies (and the sticks of punishment they impose), and charisma (and the promises of rapture they offer). Now there is the possibility of a fourth mode of effective social organization--one that we perhaps see in embryo in the creation and maintenance of open-source software. My Berkeley colleague Steven Weber's book is a brilliant exploration of this fascinating topic. --J. Bradford DeLong, Department of Economics, University of California at Berkeley Steven Weber has produced a significant, insightful book that is both smart and important. The most impressive achievement of this volume is that Weber has spent the time to learn and think about the technological, sociological, business, and legal perspectives related to open source. The Success of Open Source is timely and more thought provoking than almost anything I've come across in the past several years. It deserves careful reading by a wide audience. --Jonathan Aronson, Annenberg School for Communication, University of Southern California







Pro .NET Memory Management


Book Description

Understand .NET memory management internal workings, pitfalls, and techniques in order to effectively avoid a wide range of performance and scalability problems in your software. Despite automatic memory management in .NET, there are many advantages to be found in understanding how .NET memory works and how you can best write software that interacts with it efficiently and effectively. Pro .NET Memory Management is your comprehensive guide to writing better software by understanding and working with memory management in .NET. Thoroughly vetted by the .NET Team at Microsoft, this book contains 25 valuable troubleshooting scenarios designed to help diagnose challenging memory problems. Readers will also benefit from a multitude of .NET memory management “rules” to live by that introduce methods for writing memory-aware code and the means for avoiding common, destructive pitfalls. What You'll LearnUnderstand the theoretical underpinnings of automatic memory management Take a deep dive into every aspect of .NET memory management, including detailed coverage of garbage collection (GC) implementation, that would otherwise take years of experience to acquire Get practical advice on how this knowledge can be applied in real-world software development Use practical knowledge of tools related to .NET memory management to diagnose various memory-related issuesExplore various aspects of advanced memory management, including use of Span and Memory types Who This Book Is For .NET developers, solution architects, and performance engineers




CUDA by Example


Book Description

CUDA is a computing architecture designed to facilitate the development of parallel programs. In conjunction with a comprehensive software platform, the CUDA Architecture enables programmers to draw on the immense power of graphics processing units (GPUs) when building high-performance applications. GPUs, of course, have long been available for demanding graphics and game applications. CUDA now brings this valuable resource to programmers working on applications in other domains, including science, engineering, and finance. No knowledge of graphics programming is required—just the ability to program in a modestly extended version of C. CUDA by Example, written by two senior members of the CUDA software platform team, shows programmers how to employ this new technology. The authors introduce each area of CUDA development through working examples. After a concise introduction to the CUDA platform and architecture, as well as a quick-start guide to CUDA C, the book details the techniques and trade-offs associated with each key CUDA feature. You’ll discover when to use each CUDA C extension and how to write CUDA software that delivers truly outstanding performance. Major topics covered include Parallel programming Thread cooperation Constant memory and events Texture memory Graphics interoperability Atomics Streams CUDA C on multiple GPUs Advanced atomics Additional CUDA resources All the CUDA software tools you’ll need are freely available for download from NVIDIA. http://developer.nvidia.com/object/cuda-by-example.html