Pulling Strings with Puppet: Configuration Management Made Easy is the first book to introduce the powerful Puppet system administration tool. Author James Turnbull will guide you through Puppet’s key features, showing you how to install and configure the software, create automated Puppet tasks, known as recipes, and even create reporting solutions and extend Puppet further to your own needs. A bonus chapter is included covering the Facter library, which makes it a breeze to automate the retrieval of server configuration details such as IP and MAC addresses.
The books real-world configurations and supporting materials will enable you to deploy Nagios and integrate other tools (like MRTG and Snort) on a helpful step-by-step basis. Integrating Nagios with a variety of other tools can add more functionality to its internal monitoring and alerting capabilities. The book covers additional topics like security, redundancy and failover, and plug-in development. And it shows you how to create your own Nagios plug-ins, to monitor devices for which Nagios may not provide plug-ins.
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.
This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work
A book designed for SysAdmins, Operations staff, Developers and DevOps who are interested in deploying a log management solution using the open source Elasticsearch, Logstash & Kibana (ELK) stack.
In this book we will walk you through installing, deploying, managing and extending Logstash. We're going to do that by introducing you to Example.com, where you're going to start a new job as one of its SysAdmins. The first project you'll be in charge of is developing its new log management solution.
We'll teach you how to:
* Install and deploy Logstash.
* Ship events from a Logstash Shipper to a central Logstash server.
* Filter incoming events using a variety of techniques.
* Add structured logging to your applications.
* Output those events to a selection of useful destinations.
* Use Logstash's awesome web interface Kibana.
* Scale out your Logstash implementation as your environment grows.
* Quickly and easily extend Logstash to deliver additional functionality that you might need.
By the end of the book, you should have a functional and effective log management solution that you can deploy into your own environment.
Updated for Logstash and ELK 5.0.0!
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Docker book designed for SysAdmins, Operations staff, Developers and DevOps who are interested in deploying the open source container service Docker.
In this book, we'll walk you through installing, deploying, managing, and extending Docker. We're going to do that by first introducing you to the basics of Docker and its components. Then we'll start to use Docker to build containers and services to perform a variety of tasks.
We're going to take you through the development life cycle, from testing to production, and see where Docker fits in and how it can make your life easier. We'll make use of Docker to build test environments for new projects, demonstrate how to integrate Docker with continuous integration workflow, and then how to build application services and platforms. Finally, we'll show you how to use Docker's API and how to extend Docker yourself.
We'll teach you how to:
* Install Docker.
* Take your first steps with a Docker container.
* Build Docker images.
* Manage and share Docker images.
* Run and manage more complex Docker containers.
* Deploy Docker containers as part of your testing pipeline.
* Build multi-container applications and environments.
* Learn about orchestration using Compose and Swarm for the orchestration of Docker containers and Consul for service discovery.
* Explore the Docker API.
* Getting Help and Extending Docker.
Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.
Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions
In the book we'll deliver:
* An introduction to monitoring, metrics and measurement.
* A scalable framework for monitoring hosts (including Docker and containers), services and applications built on top of the Riemann event stream processor.
* Graphing and metric storage using Graphite and Grafana.
* Logging with Logstash.
* A framework for high quality and useful notifications
* Techniques for developing and building monitorable applications
* A capstone that puts all the pieces together to monitor a multi-tier application.
What’s so special about this book?
The book contains:
Chapter 1: An Introduction to Terraform
Chapter 2: Installing Terraform
Chapter 3: Building our first application
Chapter 4: Provisioning and Terraform
Chapter 5: Collaborating with Terraform
Chapter 6: Building a multi-environment architecture
Chapter 7: Infrastructure testing
Updated for Terraform 0.11!
Prolific hacker and author Simon Monk also teaches basic principles to help you use new technologies with Raspberry Pi as its ecosystem continues to develop. This cookbook is ideal for programmers and hobbyists familiar with the Pi through resources, including Getting Started with Raspberry Pi (O’Reilly). Python and other code examples from the book are available on GitHub.Set up your Raspberry Pi and connect to a networkWork with its Linux-based operating systemProgram Raspberry Pi with PythonGive your Pi "eyes" with computer visionControl hardware through the GPIO connectorUse Raspberry Pi to run different types of motorsWork with switches, keypads, and other digital inputsUse sensors to measure temperature, light, and distanceConnect to IoT devices in various waysCreate dynamic projects with Arduino
Learn Puppet fundamentals, including its manifest syntax and built-in functionsStore configurations in a central location with PuppetMaster, and define which configurations apply to which nodesBuild a framework to create user accounts in place of LDAP or Kerberos KDCApply techniques to execute and manage server configurations with MCollectiveUse Puppet as an auditing tool to ensure that configurations are correctGather information on the nodes you manage with the Facter library
* Installing Packer.
* Building images.
* Provisioning images.
* Integration with Configuration Management tools like Ansible, Chef and Puppet.
* Packer and Docker containers.
* Integrating and writing infrastructure tests.
* Building pipelines for Continuous Integration with Packer.
* Extending Packer.
Explore production-readiness standards, including:Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failuresScalability and Performance: learn essential components for achieving greater microservice efficiencyFault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real timeMonitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call proceduresDocumentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt
Go is a general-purpose programming language with a clean syntax and advanced features, including concurrency. This book provides the one-on-one support you need to get started with the language, with short, easily digestible chapters that build on one another. By the time you finish this book, not only will you be able to write real Go programs, you'll be ready to tackle advanced techniques.Jump into Go basics, including data types, variables, and control structuresLearn complex types, such as slices, functions, structs, and interfacesExplore Go’s core library and learn how to create your own packageWrite tests for your code by using the language’s go test programLearn how to run programs concurrently with goroutines and channelsGet suggestions to help you master the craft of programming
Each recipe addresses a specific problem, with a discussion that explains the solution and offers insight into how it works. If you’re a beginner, R Cookbook will help get you started. If you’re an experienced data programmer, it will jog your memory and expand your horizons. You’ll get the job done faster and learn more about R in the process.Create vectors, handle variables, and perform other basic functionsInput and output dataTackle data structures such as matrices, lists, factors, and data framesWork with probability, probability distributions, and random variablesCalculate statistics and confidence intervals, and perform statistical testsCreate a variety of graphic displaysBuild statistical models with linear regressions and analysis of variance (ANOVA)Explore advanced statistical techniques, such as finding clusters in your data
"Wonderfully readable, R Cookbook serves not only as a solutions manual of sorts, but as a truly enjoyable way to explore the R language—one practical example at a time."—Jeffrey Ryan, software consultant and R package author
Two experts from Puppet Labs explain the concepts behind these APIs, and provide instructions and examples to help you write your own fully functional types and providers. You’ll also delve into Puppet’s source code to get a better understanding of how types and providers are implemented internally. If you’re familiar with basic Puppet concepts, you’re ready to get started.Learn the fundamental concepts behind resources, and become familiar with the structure of Puppet’s Resource ModelDiscover how the type API is used to create new resource types that Puppet can manageUnderstand how providers interact with the system to achieve the desired state of a declared resourceExplore advanced features to get a more complete understanding of how Puppet worksSimplify the troubleshooting process when developing types and providers
With SQLite, you'll discover how to develop a database-backed application that remains manageable in size and complexity. This book guides you every step of the way. You'll get a crash course in data modeling, become familiar with SQLite's dialect of the SQL database language, and much more.Learn how to maintain localized storage in a single file that requires no configurationBuild your own SQLite library or use a precompiled distribution in your applicationGet a primer on SQL, and learn how to use several language functions and extensionsWork with SQLite using a scripting language or a C-based language such as C# or Objective-CUnderstand the basics of database design, and learn how to transfer what you already know to SQLiteTake advantage of virtual tables and modules
"Complex SQL concepts explained clearly."
--D. Richard Hipp, creator of SQLite
Several exercises and examples throughout the book help you gain experience with Chef and the entire infrastructure-testing ecosystem. Learn how this test-first approach provides increased security, code quality, and peace of mind.Explore the underpinning philosophy that infrastructure can and should be treated as codeBecome familiar with the MASCOT approach to test-driven infrastructureUnderstand the basics of test-driven and behavior-driven development for managing changeDive into Chef fundamentals by building an infrastructure with real examplesDiscover how Chef works with tools such as Virtualbox and VagrantGet a deeper understanding of Chef by learning Ruby language basicsLearn the tools and workflow necessary to conduct unit, integration, and acceptance tests
If you already know your way around the Android OS and can build a simple Android app in under an hour, this book is for you. If you’re itching to see just how far you can push it and discover what Android is really capable of, it’s for you. And if you’re ready to learn how to build advanced, intuitive, innovative apps that are a blast to use, this book is definitely for you.
From custom views and advanced multi-touch gestures, to integrating online web services and exploiting the latest geofencing and activity recognition features, ace Android developer, Erik Hellman, delivers expert tips, tricks and little-known techniques for pushing the Android envelope so you can:Optimize your components for the smoothest user experience possible Create your own custom Views Push the boundaries of the Android SDK Master Android Studio and Gradle Make optimal use of the Android audio, video and graphics APIs Program in Text-To-Speech and Speech Recognition Make the most of the new Android maps and location API Use Android connectivity technologies to communicate with remote devices Perform background processing Use Android cryptography APIs Find and safely use hidden Android APIs Cloud-enable your applications with Google Play Services Distribute and sell your applications on Google Play Store
Learn how to unleash the power of Android and transform your apps from good to great in Android Programming: Pushing the Limits.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.Explore Python’s major built-in object types such as numbers, lists, and dictionariesCreate and process objects with Python statements, and learn Python’s general syntax modelUse functions to avoid code redundancy and package code for reuseOrganize statements, functions, and other tools into larger components with modulesDive into classes: Python’s object-oriented programming tool for structuring codeWrite large programs with Python’s exception-handling model and development toolsLearn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing
Once you understand how React works, you’ll build a complete custom Whinepad app that helps users rate wines and keep notes. You’ll quickly learn why some developers consider React the key to the web app development puzzle.Set up React and write your first "Hello world" web appCreate and use custom React components alongside generic DOM componentsBuild a data table component that lets you edit, sort, search, and export its contentsUse the JSX syntax extension as an alternative to function callsSet up a lean, low-level build process that helps you focus on ReactBuild a complete custom app that lets you store data on the clientUse ESLint, Flow, and Jest tools to check and test your code as your app evolvesManage communication between components with Flux
This book is perfect for novice web developer seeking to learn new technologies or frameworks and also for webdev gurus eager to enrich their experience. Whatever your level of expertise, this book is a great introduction to the wonderful world of reactive web apps.What You Will LearnBuild a fully functioning reactive web application in Vue.js from scratch.The importance of the MVVM architecture and how Vue.js compares with other frameworks such as Angular.js and React.js.How to bring reactivity to an existing static application using Vue.js.How to use plugins to enrich your applications.How to develop customized plugins to meet your needs.How to use Vuex to manage global application's state.In Detail
Vue.js is one of the latest new frameworks to have piqued the interest of web developers due to its reactivity, reusable components, and ease of use.
This book shows developers how to leverage its features to build high-performing, reactive web interfaces with Vue.js. From the initial structuring to full deployment, this book provides step-by-step guidance to developing an interactive web interface from scratch with Vue.js.
You will start by building a simple application in Vue.js which will let you observe its features in action. Delving into more complex concepts, you will learn about reactive data binding, reusable components, plugins, filters, and state management with Vuex. This book will also teach you how to bring reactivity to an existing static application using Vue.js. By the time you finish this book you will have built, tested, and deployed a complete reactive application in Vue.js from scratch.Style and approach
This book is a thorough, step-by-step guide showing readers how to build complete web apps with Vue.js. While teaching its intricacies, this book shows how to implement the MVVM architecture in the real world and build high-performing web interfaces.
You'll learn language syntax and programming techniques in a clear and concise manner, with lots of examples that illustrate both correct usage and common idioms. Completely updated for version 3.x, Programming Python also delves into the language as a software development tool, with many code examples scaled specifically for that purpose.
Topics include:Quick Python tour: Build a simple demo that includes data representation, object-oriented programming, object persistence, GUIs, and website basicsSystem programming: Explore system interface tools and techniques for command-line scripting, processing files and folders, running programs in parallel, and moreGUI programming: Learn to use Python’s tkinter widget libraryInternet programming: Access client-side network protocols and email tools, use CGI scripts, and learn website implementation techniquesMore ways to apply Python: Implement data structures, parse text-based information, interface with databases, and extend and embed Python
This book builds three apps with varying degrees of complexity. It starts with a simple 'Guess the Number' game, which serves as a platform to launch you into the world of Angular. Next, you will learn to construct a popular '7-Minute Workout' app, covering the building blocks of Angular. The final app, 'Personal Trainer' morphs the existing '7-Minute Workout' into a full-fledged personal workout builder and runner, covering advanced directive building, which is the most fundamental and powerful feature of Angular.
In addition to this, you will learn about testability and the framework constructs Angular provides to effectively test your app. The book concludes by providing you with practical advice and useful tips that will come in handy as you build more and more apps with Angular.Style and approach
This project-based book will get you building fun projects to see how Angular works in the wild. The book focuses more on doing things rather than just reading the theory. The chapters are structured to introduce the concept, then implement it, and finally explain why it worked.
Most of the recipes use the ggplot2 package, a powerful and flexible way to make graphs in R. If you have a basic understanding of the R language, you’re ready to get started.Use R’s default graphics for quick exploration of dataCreate a variety of bar graphs, line graphs, and scatter plotsSummarize data distributions with histograms, density curves, box plots, and other examplesProvide annotations to help viewers interpret dataControl the overall appearance of graphicsRender data groups alongside each other for easy comparisonUse colors in plotsCreate network graphs, heat maps, and 3D scatter plotsStructure data for graphing
If you've already had some experience with MeteorJS but want to learn how to build even better modern web application, this book has been created for you. It provides you with a comprehensive look at one of those most important frameworks being used for the modern web today.What You Will LearnGet to grips with the basics and learn how to build a complete real-time application with MeteorJSFind out how Meteor makes full-stack development simple – become a better developer, fast.Use some of the most effective testing tools in modern web development to troubleshoot, debug and optimize your appFind out how to write custom packages for applications – so you can build your project exactly how you wantIntegrate React and Angular into your projectDesign and develop high quality animations that will give your UI the edgeBuild MeteorJS to serve as REST-based application and reactive systemLearn how to host a MeteorJS application and then scale it for dataFind out how MeteorJS can help you build for mobileLearn how to make sure you implement an effective SEO strategy in your MeteorJS applicationIn Detail
Mastering MeteorJS Application Development shows you how to do even more with MeteorJS – if you're ready to try a comprehensive course through one of the most exciting frameworks in web development today, this is the book you need. Designed to take you through the entire process of building an advanced multipage application with Meteor, you'll be able to bring your web development ideas with surprising ease.
You'll not only learn how Meteor makes web development easier, but also how you can make using Meteor easier, by automating and simplifying tasks so you can be confident you have full control of everything in your workflow – especially everything that could go wrong. From automated testing to integrating other useful frameworks such as Angular and D3, each chapter covers a crucial element in the Meteor development process.
Discover how to integrate animations using Meteor's Blaze, to give your UI designs the edge, and explore reactive programming to effectively harness RESTful systems in your projects. You will also learn how to deploy and scale your application, two crucial aspects of modern development and vital in a changing digital environment with users expecting a product and experience that delivers. With further insights on developing for mobile – and how Meteor can help you tackle the challenges of the trend – and details on incorporating SEO strategies into your application, this book isn't just a code tutorial – it's about creating a product that users love.Style and approach
This book is a practical guide that teaches you different ways to create custom packages, efficient client and server code, and more using Meteor. This book is packed with perfect examples and explanations to help you understand the concepts. With the perfect mix of theory and practical experience, it will equip you to become a professional MeteorJS developer.
This book is perfect for people who have never used Odoo and for those who would like to learn about more advanced features such as creating your own custom modules. In order to get the most out of this book, you should be comfortable with downloading and installing software and understand basic business concepts such as sales, purchasing, inventory management, and basic accounting.What You Will LearnConfigure a functioning customer relationship management systemSet up a purchasing and receiving system for your company that allows you to track inventory, costs, and profitImplement manufacturing operations and processes using real-world examples that you can put to use in your own companyDiscover the capabilities of Odoo's financial accounting and reporting featuresIntegrate powerful human resource applications that simplify the collection and management of employee informationUtilize Odoo's full featured project management application to organize tasks and track time and costs associated with billable projectsCustomize Odoo without writing a line a codeIn Detail
Odoo continues to gain momentum throughout the world in regards to providing the best platform for open source ERP installations. Now with Odoo 8, you have access to a powerful website builder, integrated e-commerce features, and a fast-growing community to help transform and modernize your business.
With this practical guide, you will cover the essential modules to get Odoo up and running for your company.
After installing Odoo, you will use its sales management application to enter quotes, create sales orders, and invoice customers. You will then learn how to integrate the CRM application to manage your leads and convert them into lucrative opportunities and sales. Next, you will set up your own purchase management system, assigning products to suppliers and tracking orders with the new warehouse management and routing system. Finally, you will learn how to use analytics to track project expenses and keep your accounts simple and easy to maintain and build an Odoo module to extend its functionality and make it work for you.
Working with Odoo covers all the core installation and usage functionalities of this popular tool, helping you to fully implement a working ERP system through practical, advanced, real-world examples.Style and approach
This book is a practical guide that uses real-world examples to teach you how to implement Odoo into your business.
This second edition covers recent language features, with new chapters on pattern matching, comprehensions, and advanced functional programming. You’ll also learn about Scala’s command-line tools, third-party tools, libraries, and language-aware plugins for editors and IDEs. This book is ideal for beginning and advanced Scala developers alike.Program faster with Scala’s succinct and flexible syntaxDive into basic and advanced functional programming (FP) techniquesBuild killer big-data apps, using Scala’s functional combinatorsUse traits for mixin composition and pattern matching for data extractionLearn the sophisticated type system that combines FP and object-oriented programming conceptsExplore Scala-specific concurrency tools, including AkkaUnderstand how to develop rich domain-specific languagesLearn good design techniques for building scalable and robust Scala applications
Linux Kernel Networking is the only up-to-date reference guide to understanding how networking is implemented, and it will be indispensable in years to come since so many devices now use Linux or operating systems based on Linux, like Android, and since Linux is so prevalent in the data center arena, including Linux-based virtualization technologies like Xen and KVM.
Perl is suitable for almost any task on almost any platform, from short fixes to complete web applications. Learning Perl teaches you the basics and shows you how to write programs up to 128 lines long—roughly the size of 90% of the Perl programs in use today. Each chapter includes exercises to help you practice what you’ve just learned. Other books may teach you to program in Perl, but this book will turn you into a Perl programmer.
Topics include:Perl data and variable typesSubroutinesFile operationsRegular expressionsString manipulation (including Unicode)Lists and sortingProcess managementSmart matchingUse of third party modules
Updated to cover Elixir 1.4, the second edition of this practical book helps you write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you’ll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease.Get comfortable with IEx, Elixir’s command line interfaceLearn Elixir’s basic structures by working with numbersDiscover atoms, pattern matching, and guards: the foundations of your program structureDelve into the heart of Elixir processing with recursion, strings, lists, and higher-order functionsCreate Elixir processes and send messages among themStore and manipulate structured data with Erlang Term Storage and the Mnesia databaseBuild resilient applications with the Open Telecom Platform
This book is targeted at embedded system developers and hobbyists who have some working knowledge of Arduino and who wish to extend their projects using wireless connectivity.What You Will LearnInteract with XBee boards using the XCTU program on Windows, OS X, or LinuxMake your Arduino boards communicate wirelessly, using XBee modules in the advanced API modeCentrally collect and store measured sensor data, in the cloud or your own databaseConnect the coordinator Arduino to the Internet and send data to web servicesControl your environment automatically, based on sensor input from your networkInteract with off-the-shelf ZigBee Home Automation devicesMake your devices battery-powered and let them sleep to get months or even years of battery lifeIn Detail
Arduino has been established as the de facto standard microcontroller programming platform, being used for one-off do-it-yourself projects as well as prototypes for actual products. By providing a myriad of libraries, the Arduino community has made it very easy to interact with pretty much any piece of hardware out there. XBee offers a great range of low-power wireless solutions that are easy to work with, by taking all of the complexity of wireless (mesh) networking out of your hands and letting you focus on what to send without worrying about the how. Building wireless sensor networks is cost-effective as well as efficient as it will be done with Arduino support.
The book starts with a brief introduction to various wireless protocols, concepts, and the XBee hardware that enables their use. Then the book expands to explain the Arduino boards to you, letting them read and send sensor data, collect that data centrally, and then even control your home from the Internet. Moving further more advanced topics such as interacting through the standard Zigbee Home Automation protocol, or making your application power-efficient are covered. By the end of the book, you will have all the tools needed to build complete, real-world solutions.Style and approach
A hands-on guide, featuring a single home automation project that can be built as described or with endless variations. Every step is illustrated with complete examples and screenshots, allowing you to build the examples swiftly.