With 1552 pages, 115 diagrams, 88 tables, nearly 200 example programs, and over 200 exercises, TLPI is the most comprehensive description of Linux and UNIX system programming available. The author, Michael Kerrisk, is the maintainer of the Linux man-pages project, which documents the Linux kernel and glibc APIs. He has long been active in the documentation, testing, and design review of Linux kernel-user-space interfaces.
Linux Programming Interface Epub
Michael Kerrisk has been using and programming UNIX systems for more than 20 years, and has taught many week-long courses on UNIX system programming. Since 2004, he has maintained the man-pages project ( -pages/), which produces the manual pages describing the Linux kernel and glibc programming APIs. He has written or co-written more than 250 of the manual pages and is actively involved in the testing and design review of new Linux kernel-userspace interfaces. Michael lives with his family in Munich, Germany.
The Linux Programming Interface (TLPI) is the definitive guide to the Linux and UNIX programming interface - the interface employed by nearly every application that runs on a Linux or UNIX system.In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions th...
The linux-api mailing list (linux-api@vger.kernel.org) discusses changes that affect the Linux programming interface (API or ABI). In theory, all patches that change the interface should be CCed to this list. To subscribe, send a message containing the following body to majordomo@vger.kernel.org:
Abstract:PyGRASS is an object-oriented Python Application Programming Interface (API) for Geographic Resources Analysis Support System (GRASS) Geographic Information System (GIS), a powerful open source GIS widely used in academia, commercial settings and governmental agencies. We present the architecture of the PyGRASS library, covering interfaces to GRASS modules, vector and raster data, with a focus on the new capabilities that it provides to GRASS users and developers. Our design concept of the module interface allows the direct linking of inputs and outputs of GRASS modules to create process chains, including compatibility checks, process control and error handling. The module interface was designed to be easily extended to work with remote processing services (Web Processing Service (WPS), Web Service Definition Language (WSDL)/Simple Object Access Protocol (SOAP)). The new object-oriented Python programming API introduces an abstract layer that opens the possibility to use and access transparently the efficient raster and vector functions of GRASS that are implemented in C. The design goal was to provide an easy to use, but powerful, Python interface for users and developers who are not familiar with the programming language C and with the GRASS C-API. We demonstrate the capabilities, scalability and performance of PyGRASS with several dedicated tests and benchmarks. We compare and discuss the results of the benchmarks with dedicated C implementations.Keywords: GRASS; python; GIS processing
GRASS GIS has a modular design. The core functionalities are implemented in shared libraries using the programming language C and can be accessed via the GRASS C-API. This API provides read and write access to raster, 3D raster and vector data, as well as the handling of projection information, spatial and attribute database management, spline interpolation, mathematical and numerical functionalities and visualization functionalities; see Table 1. Spatial algorithms and models are implemented as small stand-alone programs, called modules, that make use of the C-API. The implementation of GRASS modules follows the UNIX concept. Hence, each module in GRASS has a dedicated purpose and is efficiently implemented. Modules can be combined, similar to the UNIX tool concept. Since the early days of GRASS in the 80s, the UNIX shell was used to combine GRASS modules and UNIX tools to script repetitive tasks and to implement complex spatial analysis and processing algorithms. This concept results in a large amount of over 400 modules. Most of them are implemented in C. A sufficient amount is implemented as scripts using either POSIX (Portable Operating System Interface; defines a standard operating system interface and environment, including a command interpreter (or shell), and common utility programs to support applications portability at the source code level. Scripts are POSIX-based until version 6 of GRASS GIS.) or Python, as in the latest development version 7 of GRASS.
An increasing number of GIS software uses the Python language to provide a powerful scripting interface. An easy to use, but powerful, python interface can help to efficiently exploit the capabilities of a GIS software. Such an interface can be effectively used to integrate different GIS, statistical, geospatial tools and programming languages in a GIS to expand its overall capabilities.
The new Object-Oriented Python programming API introduces an abstract layer that opens the possibility for the users who are not familiar with C and with GRASS C-API, to use and access transparently the efficient C functions of GRASS. Our tests show that algorithms implemented with PyGRASS are comparable in terms of performance with an equivalent C implementation. Hence, our approach wraps the underlying GRASS C libraries efficiently. It needs much less line of code to implement an algorithm in PyGRASS than in C. Moreover, it shows that specific Python strengths, for example, the database Python interface, can be used to gain a speed improvement over specific C-implementations in GRASS. The PyGRASS library has been designed to integrate new methods or to inherit from an existing class to extend the GRASS functionalities, providing new tools for prototyping complex scientific algorithms.
PROJ includes command line applications for easy conversion ofcoordinates from text files or directly from user input. In addition to thecommand line utilities PROJ also exposes anapplication programming interface, or API in short. The APIlets developers use the functionality of PROJ in their own software without havingto implement similar functionality themselves.
Microsoft SQL Server Integration Services (SSIS) is a platform for building high-performance data integration solutions, including extraction, transformation, and load (ETL) packages for data warehousing. SSIS includes graphical tools and wizards for building and debugging packages; tasks for performing workflow functions such as FTP operations, executing SQL statements, and sending e-mail messages; data sources and destinations for extracting and loading data; transformations for cleaning, aggregating, merging, and copying data; a management database, SSISDB, for administering package execution and storage; and application programming interfaces (APIs) for programming the Integration Services object model.
Modernize and optimize network management with APIs and automationLegacy network management approaches dont scale adequately and cant be automated well. This guide will help meet tomorrows challenges by adopting network programmability based on Application Programming Interfaces (APIs). Using these techniques, you can improve efficiency, reliability, and flexibility; simplify implementation of high-value technologies; automate routine administrative and security tasks; and deploy services far more rapidly.Four expert authors help you transition from a legacy mindset to one based on solving problems with software. They explore todays emerging network programmability and automation ecosystem; introduce each leading programmable interface; and review the protocols, tools, techniques, and technologies that underlie network programmability. Youll master key concepts through hands-on examples you can run using Linux, Python, Cisco DevNet sandboxes, and other easily accessible tools.This guide is for all network architects, engineers, operations, and software professionals who want to integrate programmability into their networks. It offers valuable background for Cisco DevNet certificationand skills you can use with any platform, whether you have software development experience or not.Master core concepts and explore the network programmability stack
Manage network software and run automation scripts in Linux environments
Solve real problems with Python and its Napalm and Nornir automation frameworks
Make the most of the HTTP protocol, REST architectural framework, and SSH
Encode your data with XML, JSON, or YAML
Understand and build data models using YANG that offer a foundation for model-based network programming
Leverage modern network management protocols, from gRPC and gNMI to NETCONF and RESTCONF
Meet stringent service provider KPIs in large-scale, fast-changing networks
Program Cisco devices running IOS XE, IOS XR, and NX-OS as well as Meraki, DNA Center, and Webex platforms
Program non-Cisco platforms such as Cumulus Linux and Arista EOS
Go from zero to hero with Ansible network automation
Plan your next steps with more advanced tools and technologies
READIUM: The Readium Mobile open-source development kit continued to improve throughout the year, especially in terms of its ability to search through ebook content, its highlighting capabilities, its performance and its programming interface, which is becoming increasingly simple for developers using this open-source software. 2ff7e9595c
Comments