Small, Sharp Software Tools


Book Description

The command-line interface is making a comeback. That's because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you're not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment. No matter what language or platform you're using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You'll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux. Create files without opening a text editor. Manage complex directory strutures and move around your entire file system without touching the mouse. Diagnose network issues and interact with APIs. Chain several commands together to transform data, and create your own scripts to automate repetitive tasks. Make things even faster by customizing your environment, creating shortcuts, and integrating other tools into your environment. Hands-on activities and exercises will cement your newfound knowledge and give you the confidence to use the CLI to its fullest potential. And if you're worried you'll wreck your system, this book walks you through creating an Ubuntu virtual machine so you can practice worry-free. Dive into the CLI and join the thousands of other devs who use it every day. What You Need: You'll need macOS, Windows 10, or a Linux distribution like Ubuntu, Fedora, CentOS, or Debian using the Bash shell.




Modern Software Tools for Scientific Computing


Book Description

Looking back at the years that have passed since the realization of the very first electronic, multi-purpose computers, one observes a tremendous growth in hardware and software performance. Today, researchers and engi neers have access to computing power and software that can solve numerical problems which are not fully understood in terms of existing mathemati cal theory. Thus, computational sciences must in many respects be viewed as experimental disciplines. As a consequence, there is a demand for high quality, flexible software that allows, and even encourages, experimentation with alternative numerical strategies and mathematical models. Extensibil ity is then a key issue; the software must provide an efficient environment for incorporation of new methods and models that will be required in fu ture problem scenarios. The development of such kind of flexible software is a challenging and expensive task. One way to achieve these goals is to in vest much work in the design and implementation of generic software tools which can be used in a wide range of application fields. In order to provide a forum where researchers could present and discuss their contributions to the described development, an International Work shop on Modern Software Tools for Scientific Computing was arranged in Oslo, Norway, September 16-18, 1996. This workshop, informally referred to as Sci Tools '96, was a collaboration between SINTEF Applied Mathe matics and the Departments of Informatics and Mathematics at the Uni versity of Oslo.




Tools and Techniques for Software Development in Large Organizations: Emerging Research and Opportunities


Book Description

The development of software has expanded substantially in recent years. As these technologies continue to advance, well-known organizations have begun implementing these programs into the ways they conduct business. These large companies play a vital role in the economic environment, so understanding the software that they utilize is pertinent in many aspects. Researching and analyzing the tools that these corporations use will assist in the practice of software engineering and give other organizations an outline of how to successfully implement their own computational methods. Tools and Techniques for Software Development in Large Organizations: Emerging Research and Opportunities is an essential reference source that discusses advanced software methods that prominent companies have adopted to develop high quality products. This book will examine the various devices that organizations such as Google, Cisco, and Facebook have implemented into their production and development processes. Featuring research on topics such as database management, quality assurance, and machine learning, this book is ideally designed for software engineers, data scientists, developers, programmers, professors, researchers, and students seeking coverage on the advancement of software devices in today’s major corporations.




Coder to Developer


Book Description

"Two thumbs up" —Gregory V. Wilson, Dr. Dobbs Journal (October 2004) No one can disparage the ability to write good code. At its highest levels, it is an art. But no one can confuse writing good code with developing good software. The difference—in terms of challenges, skills, and compensation—is immense. Coder to Developer helps you excel at the many non-coding tasks entailed, from start to finish, in just about any successful development project. What's more, it equips you with the mindset and self-assurance required to pull it all together, so that you see every piece of your work as part of a coherent process. Inside, you'll find plenty of technical guidance on such topics as: Choosing and using a source code control system Code generation tools--when and why Preventing bugs with unit testing Tracking, fixing, and learning from bugs Application activity logging Streamlining and systematizing the build process Traditional installations and alternative approaches To pull all of this together, the author has provided the source code for Download Tracker, a tool for organizing your collection of downloaded code, that's used for examples throughout this book. The code is provided in various states of completion, reflecting every stage of development, so that you can dig deep into the actual process of building software. But you'll also develop "softer" skills, in areas such as team management, open source collaboration, user and developer documentation, and intellectual property protection. If you want to become someone who can deliver not just good code but also a good product, this book is the place to start. If you must build successful software projects, it's essential reading.




Version Control with Git


Book Description

Get up to speed on Git for tracking, branching, merging, and managing code revisions. Through a series of step-by-step tutorials, this practical guide takes you quickly from Git fundamentals to advanced techniques, and provides friendly yet rigorous advice for navigating the many functions of this open source version control system. This thoroughly revised edition also includes tips for manipulating trees, extended coverage of the reflog and stash, and a complete introduction to the GitHub repository. Git lets you manage code development in a virtually endless variety of ways, once you understand how to harness the system’s flexibility. This book shows you how. Learn how to use Git for several real-world development scenarios Gain insight into Git’s common-use cases, initial tasks, and basic functions Use the system for both centralized and distributed version control Learn how to manage merges, conflicts, patches, and diffs Apply advanced techniques such as rebasing, hooks, and ways to handle submodules Interact with Subversion (SVN) repositories—including SVN to Git conversions Navigate, use, and contribute to open source projects though GitHub




Practical Software Development Techniques


Book Description

This book provides an overview of tools and techniques used in enterprise software development, many of which are not taught in academic programs or learned on the job. This is an ideal resource containing lots of practical information and code examples that you need to master as a member of an enterprise development team. This book aggregates many of these "on the job" tools and techniques into a concise format and presents them as both discussion topics and with code examples. The reader will not only get an overview of these tools and techniques, but also several discussions concerning operational aspects of enterprise software development and how it differs from smaller development efforts. For example, in the chapter on Design Patterns and Architecture, the author describes the basics of design patterns but only highlights those that are more important in enterprise applications due to separation of duties, enterprise security, etc. The architecture discussion revolves has a similar emphasis – different teams may manage different aspects of the application’s components with little or no access to the developer. This aspect of restricted access is also mentioned in the section on logging. Theory of logging and discussions of what to log are briefly mentioned, the configuration of the logging tools is demonstrated along with a discussion of why it’s very important in an enterprise environment.




Software Process Improvement and Management: Approaches and Tools for Practical Development


Book Description

Over the past decade, there has been an increase in attention and focus on the discipline of software engineering. Software engineering tools and techniques have been developed to gain more predictable quality improvement results. Process standards such as Capability Maturity Model Integration (CMMI), ISO 9000, Software Process Improvement and Capability dEtermination (SPICE), Agile Methodologies, and others have been proposed to assist organizations to achieve more predictable results by incorporating these proven standards and procedures into their software process. Software Process Improvement and Management: Approaches and Tools for Practical Development offers the latest research and case studies on software engineering and development. The production of new process standards assist organizations and software engineers in adding a measure of predictability to the software process. Companies can gain a decisive competitive advantage by applying these new and theoretical methodologies in real-world scenarios. Researchers, scholars, practitioners, students, and anyone interested in the field of software development and design should access this book as a major compendium of the latest research in the field.




Web Services: Concepts, Methodologies, Tools, and Applications


Book Description

Web service technologies are redefining the way that large and small companies are doing business and exchanging information. Due to the critical need for furthering automation, engagement, and efficiency, systems and workflows are becoming increasingly more web-based. Web Services: Concepts, Methodologies, Tools, and Applications is an innovative reference source that examines relevant theoretical frameworks, current practice guidelines, industry standards and standardization, and the latest empirical research findings in web services. Highlighting a range of topics such as cloud computing, quality of service, and semantic web, this multi-volume book is designed for computer engineers, IT specialists, software designers, professionals, researchers, and upper-level students interested in web services architecture, frameworks, and security.







Software Reuse: Methods, Techniques, and Tools


Book Description

This book constitutes the refereed proceedings of the 8th International Conference on Software Reuse, ICSR-8, held in Madrid, Spain in July 2004. The 28 revised full papers presented were carefully reviewed and selected from numerous submissions. The papers are organized in topical sections on software variability: requirements; testing reusable software; feature modeling; aspect-oriented software development; component and service development; code level reuse; libraries, classification, and retrieval; model-based approaches; transformation and generation; and requirements.