The Linux Programming Interface: A Linux and Unix System Programming Handbook


Michael Kerrisk - 2010
    You'll learn how to:Read and write files efficiently Use signals, clocks, and timers Create processes and execute programs Write secure programs Write multithreaded programs using POSIX threads Build and use shared libraries Perform interprocess communication using pipes, message queues, shared memory, and semaphores Write network applications with the sockets API While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.Praise for The Linux Programming Interface "If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it." —Martin Landers, Software Engineer, Google "This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book." —Mel Gorman, Author of Understanding the Linux Virtual Memory Manager "Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers." —Andreas Jaeger, Program Manager, openSUSE, Novell "Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem." —David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards ". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system." —Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author ". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for." —Anthony Robins, Associate Professor of Computer Science, The University of Otago "I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs." —Christophe Blaess, Author of Programmation systeme en C sous Linux ". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1." —Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group "What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf." —Bill Gallmeister, Author of POSIX.4 Programmer's Guide: Programming for the Real World ". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf." —Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com

The Little CBT Workbook


Michael Sinclair - 2012
    With interactive exercises and checklists, this book is suitable for self-teaching or for supplementing a CBT course.

Programming Perl


Tom Christiansen - 1991
    The first edition of this book, Programming Perl, hit the shelves in 1990, and was quickly adopted as the undisputed bible of the language. Since then, Perl has grown with the times, and so has this book.Programming Perl is not just a book about Perl. It is also a unique introduction to the language and its culture, as one might expect only from its authors. Larry Wall is the inventor of Perl, and provides a unique perspective on the evolution of Perl and its future direction. Tom Christiansen was one of the first champions of the language, and lives and breathes the complexities of Perl internals as few other mortals do. Jon Orwant is the editor of The Perl Journal, which has brought together the Perl community as a common forum for new developments in Perl.Any Perl book can show the syntax of Perl's functions, but only this one is a comprehensive guide to all the nooks and crannies of the language. Any Perl book can explain typeglobs, pseudohashes, and closures, but only this one shows how they really work. Any Perl book can say that my is faster than local, but only this one explains why. Any Perl book can have a title, but only this book is affectionately known by all Perl programmers as "The Camel."This third edition of Programming Perl has been expanded to cover version 5.6 of this maturing language. New topics include threading, the compiler, Unicode, and other new features that have been added since the previous edition.

Living by your own Rules


Devdutt Pattanaik - 2016
    His profound management sutras are derived from his bestselling books on business and management. They show how individuals can realize their potential, create wealth and achieve lasting success by following uniquely Indian principles (based on Hindu, Jain and Buddhist mythology) of goal setting, strategic thinking and decision-making.

Ninja Pug: Retrieving the Stolen Books


Amma Lee - 2017
    Jiro is Hanzo's only companion. They do everything and go everywhere together, but Jiro has a secret. Every morning when Hanzo trains using his ninja skills, Jiro watches him intently soaking in Hanzo’s every move and technique. When Hanzo is gone or asleep, Jiro practices everything he’s learned from Hanzo. The surprising twist is that Jiro is a dog, a small pug to be exact! Since Hanzo was the last of his family after losing his only son, Ichiro, in a car accident and his grandson, Ryoichi, who went missing shortly after, Jiro has made it his duty to become Hanzo’s successor! But Hanzo’s world seems to go downhill fast once their home is broken into and some important books were discovered missing. Not wanting the old man to suffer any more than he has, Jiro decides to find Hanzo’s missing books. Jiro teams up with Luna, a white poodle, and they embark on a mission to retrieve Hanzo’s books from the thieves. What the two small dogs were not expecting was that these books contain the power of the Hakumoto Clan. What is even more surprising is that the thieves happened to be highly talented and trained ninjas. Jiro’s life is instantly turned upside down as secrets are revealed and someone from Jiro’s past might have come back into his’ and Hanzo’s life. Follow Jiro and Luna on their journey in “Ninja pug: Retrieving the Stolen Books.”

Starting Out with Java: From Control Structures Through Objects


Tony Gaddis - 2009
    If you wouldlike to purchase both the physical text and MyProgrammingLab search for ISBN-10: 0132989999/ISBN-13: 9780132989992. That packageincludes ISBN-10: 0132855836/ISBN-13: 9780132855839 and ISBN-10: 0132891557/ISBN-13: 9780132891554. MyProgrammingLab should only be purchased when required by an instructor. In "Starting Out with Java: From Control Structures through Objects", Gaddis covers procedural programming control structures and methods before introducing object-oriented programming. As with all Gaddis texts, clear and easy-to-read code listings, concise and practical real-world examples, and an abundance of exercises appear in every chapter. "

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Iceland


Insight Guides - 2011
    This guide covers the whole of the Iceland with full-color photographs and maps throughout.

C++ Standard Library: A Tutorial and Reference


Nicolai M. Josuttis - 1999
    The library is not self-explanatory or fully consistent, and there are still some traps for the unwary. But the advantages far outweigh the problems, especially if you've got an expert book like Nicolai Josuttis' C++ Standard Library to help you. Josuttis starts with an overview of the standard library, and its key interrelationships with the core language. He presents detailed coverage of the STL, the most powerful, complex, and exciting part of the library; then covers special containers, strings, numeric classes, and internationalization; and helps you get more out of a component you're probably already using: the IOStream library. Every component description includes purpose, design, code examples, practical scenarios, pitfalls, and in most cases, reference sources. Whether you need a tutorial or reference, this book delivers the goods.— (Bill Camarda, bn.com, editor)

Learn Windows PowerShell 3 in a Month of Lunches


Don Jones - 2011
    Just set aside one hour a day—lunchtime would be perfect—for a month, and you'll be automating Windows tasks faster than you ever thought possible. You'll start with the basics—what is PowerShell and what can you do with it. Then, you'll move systematically through the techniques and features you'll use to make your job easier and your day shorter. This totally revised second edition covers new PowerShell 3 features designed for Windows 8 and Windows Server 2012.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.What's InsideLearn PowerShell from the beginning—no experience required! Covers PowerShell 3, Windows 8, and Windows Server 2012 Each lesson should take you one hour or lessAbout the TechnologyPowerShell is both a language and an administrative shell with which you can control and automate nearly every aspect of Windows. It accepts and executes commands immediately, and you can write scripts to manage most Windows servers like Exchange, IIS, and SharePoint.Experience with Windows administration is helpful. No programming experience is assumed.Table of ContentsBefore you begin Meet PowerShell Using the help system Running commands Working with providers The pipeline: connecting commands Adding commands Objects: data by another name The pipeline, deeper Formatting—and why it's done on the right Filtering and comparisons A practical interlude Remote control: one to one, and one to many Using Windows Management Instrumentation Multitasking with background jobs Working with many objects, one at a time Security alert! Variables: a place to store your stuff Input and output Sessions: remote control with less work You call this scripting? Improving your parameterized script Advanced remoting configuration Using regular expressions to parse text files Additional random tips, tricks, and techniques Using someone else's script Never the end PowerShell cheat sheet

Think Python


Allen B. Downey - 2002
    It covers the basics of computer programming, including variables and values, functions, conditionals and control flow, program development and debugging. Later chapters cover basic algorithms and data structures.

CSS3: The Missing Manual


David Sawyer McFarland - 2012
    This Missing Manual shows you how to take your HTML and CSS skills to the next level, with valuable tips, tricks, and step-by-step instructions. You’ll quickly learn how to build web pages that look great and run fast on devices and screens of all sizes.The important stuff you need to know:Start with the basics. Write CSS3-friendly HTML, including the HTML5 tags recognized by today’s browsers.Apply real-world design. Format text, create navigation tools, and enhance pages with graphics.Make your pages lively. Create eye-catching animations and give your visitors attractive tables and forms.Take control of page layouts. Use professional design techniques such as floats and positioning.Look great on any device. Craft websites that adapt to desktop, tablet, and mobile browsers.Get advanced techniques. Use CSS3 more effectively and efficiently, and ensure that your web pages look good when printed.