Author Jeff Patton shows you how changeable story maps enable your team to hold better conversations about the project throughout the development process. Your team will learn to come away with a shared understanding of what you’re attempting to build and why.Get a high-level view of story mapping, with an exercise to learn key concepts quicklyUnderstand how stories really work, and how they come to life in Agile and Lean projectsDive into a story’s lifecycle, starting with opportunities and moving deeper into discoveryPrepare your stories, pay attention while they’re built, and learn from those you convert to working software
It teaches risk-driven architecting. There is no need for meticulous designs when risks are small, nor any excuse for sloppy designs when risks threaten your success. This book describes a way to do just enough architecture. It avoids the one-size-fits-all process tar pit with advice on how to tune your design effort based on the risks you face.
It democratizes architecture. This book seeks to make architecture relevant to all software developers. Developers need to understand how to use constraints as guiderails that ensure desired outcomes, and how seemingly small changes can affect a system's properties.
It cultivates declarative knowledge. There is a difference between being able to hit a ball and knowing why you are able to hit it, what psychologists refer to as procedural knowledge versus declarative knowledge. This book will make you more aware of what you have been doing and provide names for the concepts.
It emphasizes the engineering. This book focuses on the technical parts of software development and what developers do to ensure the system works not job titles or processes. It shows you how to build models and analyze architectures so that you can make principled design tradeoffs. It describes the techniques software designers use to reason about medium to large sized problems and points out where you can learn specialized techniques in more detail.
It provides practical advice. Software design decisions influence the architecture and vice versa. The approach in this book embraces drill-down/pop-up behavior by describing models that have various levels of abstraction, from architecture to data structure design.
This book is for PLC programmers, electricians, instrumentation techs, automation professionals with basic PLC programming knowledge, but no knowledge of RSLogix 5000. If you are a student who is familiar with automation and would like to learn about RSLogix 5000 with minimal investment of time, this is the book for you.What You Will LearnBriefly explore the history of Rockwell Automation and the evolution of the Logix platformDiscover the complete range of ControlLogix and ComplactLogix controllers and form factors available today, and the key things you should consider when you are engineering a Rockwell Automation solutionExplore the key platform changes introduced with Studio 5000 and Logix Designer version 24 and the latest firmware versionsGet to grips with the modules available in the ControLogix, SoftLogix, and CompactLogix platformsUnderstand writing Ladder Logic (LL) routines, Sequential Function Chart (SFC) routines, and Structured Text routines (ST)Design Function Block Diagrams (FBD) and their easy integration with HMIsIn Detail
RSLogix 5000 and Studio 5000's Logix Designer are user-friendly interfaces used for programming the current generation of Rockwell Automation Controllers including ControlLogix, CompactLogix, and SoftLogix. When engineering automation solutions using Logix, it is important to study the changes to the platform introduced with Studio 5000 and the various controllers, modules, and form factors available today. RSLogix 5000 programming packages help you maximize performance, save project development time, and improve productivity.
This book provides a detailed overview of the Logix platform including ControlLogix, CompactLogix, and SoftLogix and explains the significant changes introduced in Studio 5000. A clear understanding of the recent Logix platform changes is critical for anyone developing a Rockwell Automation solution. It provides an easy-to-follow, step-by-step approach to learning the essential Logix hardware and software components and provides beginners with a solid foundation in the Logix platform features and terminology. By the end of this book, you will have a clear understanding of the capabilities of the Logix platform and the ability to navigate the Rockwell Automation Literature Library Resources.Style and approach
A step-by-step approach to RSLogix 5000, which is explained in an easy-to-follow style. Each topic is explained sequentially with detailed explanations of the basic and advanced features of Rockwell Automation that appeal to the needs of readers with a wide range of experience.
If you have some experience with Docker and want to get more from containerization, this book is the perfect place to start. Focused on helping you take control of your deployments in a simple way, you'll soon find out how to transform your operations for greater organizational and technical agility.What You Will LearnDownload, install, and configure the latest version of KubernetesPerform smooth updates and patches with minimal downtimeStreamline the way you deploy and manage your applications with large-scale container orchestrationFind out how Kubernetes can simplify the way you configure your clusters and networksLearn why the Open Container initiative is so important for the way you manage your infrastructureDiscover third-party tools that can enhance your production operationsExplore and use the most persistent storage options for your clusterterIntegrate Kubernetes with continuous delivery tools such as Gulp and JenkinsIn Detail
Kubernetes is the tool that's pushing the containerization revolution – largely driven by Docker – to another level. If Docker has paved the way for greater agility and control in the way we organize and manage our infrastructure, Kubernetes goes further, by helping you to orchestrate and automate container deployments on a massive scale. Kubernetes really does think big – and it's time you did too!
This book will show you how to start doing exactly that, showing you how to extend the opportunities that containerization innovations have brought about in new and even more effective ways. Get started with the basics - explore the fundamental elements of Kubernetes and find out how to install it on your system, before digging a little deeper into Kubernetes core constructs. Find out how to use Kubernetes pods, services, replication controllers, and labels to manage your clusters effectively and learn how to handle networking with Kubernetes.
Once you've got to grips with these core components, you'll begin to see how Kubernetes fits into your workflow. From basic updates to integrating Kubernetes with continuous delivery tools such as Jenkins and Gulp, the book demonstrates exactly how Kubernetes will transform the way you work. With further insights on how to install monitoring and security tools, this book provides you with a direct route through Kubernetes – so you can take advantage of it, fast!Style and approach
This straightforward guide will help you understand how to move your container applications into production through best practices and step by step walkthroughs tied to real-world operational strategies.
Allen, the Director of Consulting for Typesafe—creator of Akka and the Scala programming language—examines actors with a banking-service use case throughout the book, using examples shown in Akka and Scala. If you have any experience with Akka, this guide is essential.Delve into domain-driven and work-distribution actor applicationsUnderstand why it’s important to have actors do only one jobAvoid thread blocking by allowing logic to be delegated to a FutureModel interactions as simply as possible to avoid premature optimizationCreate well-defined interactions, and know exactly what failures can occurLearn why you should never treat actors as you would an ordinary classKeep track of what goes on in production by monitoring everythingTune Akka applications with the Typesafe Console
Real World OCaml takes you through the concepts of the language at a brisk pace, and then helps you explore the tools and techniques that make OCaml an effective and practical tool. In the book’s third section, you’ll delve deep into the details of the compiler toolchain and OCaml’s simple and efficient runtime system.Learn the foundations of the language, such as higher-order functions, algebraic data types, and modulesExplore advanced features such as functors, first-class modules, and objectsLeverage Core, a comprehensive general-purpose standard library for OCamlDesign effective and reusable libraries, making the most of OCaml’s approach to abstraction and modularityTackle practical programming problems from command-line parsing to asynchronous network programmingExamine profiling and interactive debugging techniques with tools such as GNU gdb
Mercurial permits a countless variety of development and collaboration methods, and this book offers several concrete suggestions to get you started. This guide will help you:
Learn the basics of working with a repository, changesets, and revisionsMerge changes from separate repositoriesSet up Mercurial to work with files on a daily basis, including which ones to trackGet examples and tools for setting up various workflow modelsManage a project that's making progress on multiple fronts at onceFind and fix mistakes by isolating problem sourcesUse hooks to perform actions automatically in response to repository eventsCustomize the output of Mercurial
Mercurial: The Definitive Guide maintains a strong focus on simplicity to help you learn Mercurial quickly and thoroughly.
This book is aimed primarily at developers and administrators who are interested in taking their interaction and usage of Jenkins to the next level.
The book assumes you have a working knowledge of Jenkins and programming in general, and an interest in learning about the different approaches to customizing and extending Jenkins so it fits your requirements and your environment perfectly.What You Will LearnRetrieve and act upon Jenkins information in real timeFind out how to interact with Jenkins through a variety of IDEsDevelop your own Form and Input validation and customizationExplore how Extension points work, and develop your own Jenkins pluginSee how to use the Jenkins API and command-line interfaceGet to know how to remotely update your Jenkins configurationDesign and develop your own Information RadiatorDiscover how Jenkins customization can help improve quality and reduce costsIn Detail
Jenkins CI is the leading open source continuous integration server. It is written in Java and has a wealth of plugins to support the building and testing of virtually any project. Jenkins supports multiple Software Configuration Management tools such as Git, Subversion, and Mercurial.
This book explores and explains the many extension points and customizations that Jenkins offers its users, and teaches you how to develop your own Jenkins extensions and plugins.
First, you will learn how to adapt Jenkins and leverage its abilities to empower DevOps, Continuous Integration, Continuous Deployment, and Agile projects. Next, you will find out how to reduce the cost of modern software development, increase the quality of deliveries, and thereby reduce the time to market. We will also teach you how to create your own custom plugins using Extension points.
Finally, we will show you how to combine everything you learned over the course of the book into one real-world scenario.Style and approach
Extending Jenkins explores and explains advanced Jenkins functionality from a practical point of view, teaching you real-world skills that will help you get more from this powerful software. Each key topic is explained clearly with a practical example, and in sufficient detail so you understand the concepts and can then develop your own solutions using your preferred software and languages.
Beginning with detailed instructions on how to install and configure the Android SDK, Studio, and Virtual Device Manager, the book moves on to creating a simple, but working, "Hello World" app that can be run on a real device or emulator.
The book then moves on to layouts and the visual design of Lollipop apps. A new app is begun to demonstrate this and expanded as we move further, and, once material design has been introduced, the book moves on to the Java coding aspect and how to write code that responds to user interactions via callback methods such as touchscreen gesture listeners. No book on Lollipop APIs would be complete without explaining how the new Android TV, Wear, and Auto SDK tools work and how they can be utilized to either create new apps or convert those originally written for other platforms.
The book concludes by demonstrating how to package and deploy your finished app on the Google Play store.
Most engineers we meet prefer Git over other distributed version control systems.
These systems let you store different versions of project files and directories, so you can roll back to an earlier one if something goes wrong. And since they're distributed, they smooth the path for dev team collaboration.
But what is it about Git that makes it mission-critical on so many web projects?
Spend just one weekend with this hands-on tutorial, and you'll know the answer.Understand Git's core philosophy.Get started with Git: install it, learn the basic commands, and set up your first project.Work with Git as part of a collaborative team.Use Git's debugging tools for maximum debug efficiency.Take control with Git's advanced features: reflog, rebase, stash, and more.Use Git with cloud-based Git repository host services like Github and Bitbucket.See how Git's used effectively on large open-source projects.
Git was created by Linus Torvalds, who invented Linux, so it comes with the best credentials. What are you waiting for? Get a jump start on Git today.
Through hands-on tutorials, DevOps engineer Jo Rhett demonstrates how Puppet manages complex and distributed components to ensure service availability. You’ll learn how to secure configuration consistency across servers, clients, your router, and even that computer in your pocket by setting up your own testing environment.Learn exactly what Puppet is, why it was created, and what problems it solvesTailor Puppet to your infrastructure with a design that meets your specific needsWrite declarative Puppet policies to produce consistency in your systemsBuild, test, and publish your own Puppet modulesManage network devices such as routers and switches with puppet device and integrated Puppet agentsScale Puppet servers for high availability and performanceExplore web dashboards and orchestration tools that supplement and complement Puppet
If you are a systems administrator or developer who is keen to employ DevOps techniques to help with the day-to-day complications of managing complex infrastructures, then this book is for you. No prior knowledge of DevOps tools is required.What You Will LearnManage, use, and work with code in the Git version management systemManage the life cycle of hosts, from creation to on-going management, using Puppet RazorCreate hosts automatically using a simple combination of TFTP, DHCP, and pre-seedsImplement virtual hosts using the ubiquitous VMware ESXi hypervisorControl configuration using the powerful and popular Ansible configuration management systemDevelop powerful, consistent, and portable containers using DockerTrack trends, discover data, and monitor key systems using InfluxDB, syslog, and SensuDeal efficiently with powerful cloud infrastructures using the Amazon AWS Infrastructure as a Service and the Heroku Platform as a ServiceIn Detail
There has been a recent explosion in tools that allow you to redefine the delivery of infrastructure and applications, using a combination of automation and testing to deliver continuous deployment. DevOps has garnered interest from every quarter, and is rapidly being recognized as a radical shift, as large as the Agile movement for the delivery of software.
This book takes a collection of some of the coolest software available today and shows you how to use it to create impressive changes to the way you deliver applications and software. It tackles the plethora of tools that are now available to enable organizations to take advantage of the automation, monitoring, and configuration management techniques that define a DevOps-driven infrastructure.
Starting off with the fundamental command-line tools that every DevOps enthusiast must know, this book will guide you through the implementation of the Ansible tool to help you facilitate automation and perform diverse tasks. You will explore how to build hosts automatically with the creation of Apt mirrors and interactive pre-seeds, which are of the utmost importance for Ubuntu automation. You will also delve into the concept of virtualization and creating and manipulating guests with ESXi. Following this, you will venture into the application of Docker; learn how to install, run, network, and restore Docker containers; and also learn how to build containers in Jenkins and deploy apps using a combination of Ansible, Docker, and Jenkins. You will also discover how to filter data with Grafana and the usage of InfluxDB along with unconventional log management. Finally, you will get acquainted with cloud infrastructure, employing the Heroku and Amazon AWS platforms.
By tackling real-world issues, this book will guide you through a huge variety of tools, giving new users the ability to get up and running and offering advanced users some interesting recipes that may help with existing issues.Style and approach
This book has an easy-to-follow approach to both introducing the wide range of available DevOps tools and working with them. Each recipe is lavishly sprinkled with example code and uses clear instructions to easily allow you to see how you can both implement the solutions, and more importantly, tailor them to your unique needs.
The in-depth, detailed, hand-on manual on Express.js, the most popular Node.js framework. Will get you up and running fast and save you time. Understand the concepts, learn the best practices. Become an Express.js expert today.
Express.js API reference, quick start guides, 20+ meticulously explained examples and tutorials -- over 270 pages with more than 60 illustrations.
Quick StartThe InterfaceTIps and TricksTutorials and Examples
Express.js is the most popular Node.js web framework yet. As of this writing (September of 2013), there are no books that are solely dedicated to it. Its official website has bits of insights for advanced Node.js programmers. However, I found that many people -- including those who go through HackReactor7 program and come to my Node.js classes at General Assembly and pariSOMA -- are interested in a comprehensive resource. The one that would cover all the different components of Express.js work together in a real production-like application. The goal of Express.js Guide is to become such resource.
What This Book is
Express.js Guide is a concise book on one particular library. This book contains Express.js API 3.3.58 description, the best practices on code organization and patterns, real-world examples of web apps. The topics include but not limited to middleware, command-line interface and scaffolding, ren- dering templates, extracting params from dynamic URLs, parsing payloads and cookies, managing authentication with sessions, error handling and prepping apps for production.
For more details and for what exactly the book covers, please refer to the Table of Contents.
What This Book is Not
This book is not an introduction to Node.js, nor is it a book that covers all aspects of building a modern day web application, e.g., websockets, databases and (of course) front-end development.
You might want to take a look at Rapid Prototyping with JS9 for the introduction to Node.js, MongoDB and front-end development with Backbone.js.
In the real-world and especially in Node.js development, due to its modularized philosophy, we seldom use just a single framework. In the book, we have tried to stick only to Express.js and leave everything else out as much as possible, without compromising the usefulness of examples. Therefore, we intentionally left out some important chunks of web developments, for example databases, authentication and testing. Although these elements are present in tutorials and examples, they're not explained in detail. For those materials, you could check books in the Related Reading and Resources section at the end of the book.
Who This Book is For
If you're thinking of starting a Node.js app, or of rewriting an existing one, and your weapon of choice is Express.js -- this guide is for you! It will answer most of your "how" and "why" questions.
This book is aimed at developers and system administrators who wish to take on larger responsibilities and understand how the infrastructure that builds today's enterprises works. This book is also great for operations personnel who would like to better support developers. You do not need to have any previous knowledge of DevOps.What You Will LearnAppreciate the merits of DevOps and continuous delivery and see how DevOps supports the agile processUnderstand how all the systems fit together to form a larger wholeSet up and familiarize yourself with all the tools you need to be efficient with DevOpsDesign an application that is suitable for continuous deployment systems with Devops in mindStore and manage your code effectively using different options such as Git, Gerrit, and GitlabConfigure a job to build a sample CRUD applicationTest the code using automated regression testing with Jenkins SeleniumDeploy your code using tools such as Puppet, Ansible, Palletops, Chef, and VagrantMonitor the health of your code with Nagios, Munin, and GraphiteExplore the workings of Trac—a tool used for issue trackingIn Detail
DevOps is a practical field that focuses on delivering business value as efficiently as possible. DevOps encompasses all the flows from code through testing environments to production environments. It stresses the cooperation between different roles, and how they can work together more closely, as the roots of the word imply—Development and Operations.
After a quick refresher to DevOps and continuous delivery, we quickly move on to looking at how DevOps affects architecture. You'll create a sample enterprise Java application that you'll continue to work with through the remaining chapters. Following this, we explore various code storage and build server options. You will then learn how to perform code testing with a few tools and deploy your test successfully. Next, you will learn how to monitor code for any anomalies and make sure it's running properly. Finally, you will discover how to handle logs and keep track of the issues that affect processesStyle and approach
This book is primarily a technical guide to DevOps with practical examples suitable for people who like to learn by implementing concrete working code. It starts out with background information and gradually delves deeper into technical subjects.
The Meta-Programming System (MPS) is a new kind of tool called a language workbench that simply stated makes it easier and more fun to write programs. With traditional programming, it is common to choose one programming language to solve a problem and being limited by this choice. When working with MPS you can use and combine different languages to solve a problem. You can also create simple languages (e.g., Domain Specific Languages) or extend existing ones when the languages available do not exactly meet the evolving needs of the problem at hand. The languages that you create with MPS will integrate nicely with languages developed by others.
MPS is open-source and can be obtained from http://jetbrains.com/mps or http://github.com/JetBrains/MPS. This book explains the MPS programming paradigm and gradually introduces the reader to the many features of the MPS platform. This book may yet be the simplest way to discover the MPS language workbench and the powerful new approach to programming that this tool offers.
The third edition of this book describes MPS 3.3.
With the introduction of the cloud, enterprise application development moved from monolithic applications to small lightweight process-driven components called microservices. Microservices are the next big thing in designing scalable, easy-to-maintain applications. It not only makes app development easier, but also offers great flexibility to utilize various resources optimally.
If you want to build an enterprise-ready implementation of the microservices architecture, then this is the book for you! Starting off by understanding the core concepts and framework, you will then focus on the high-level design of large software projects. You will gradually move on to setting up the development environment and configuring it before implementing continuous integration to deploy your microservice architecture. Using Spring security, you will secure microservices and test it effectively using REST Java clients and other tools. Finally, we'll show you the best practices and common principals of microservice design and you'll learn to troubleshoot and debug the issues faced during development.
By the end of the book, you will know how to build smaller, lighter, and faster services that can be implemented easily in a production environment.Style and approach
This book starts from the basics, including environment setup and provides easy-to-follow steps to implement the sample project using microservices. It gives you the complete lifecycle of enterprise app development from designing and developing to deploying, testing, and security. Each topic is explained and placed in context, and for the more inquisitive, there are more details of the concepts used.
This book is for anyone who has a basic knowledge of Unity programming using C# and wants to learn how to extend and create custom tools using Unity editor scripting to improve the development workflow and make video game development easier.What You Will LearnUse Gizmos to create visual aids for debuggingExtend the editor capabilities using custom inspectors, property and decorator drawers, editor windows, and handlesSave your video game data in a persistent way using scriptable objectsImprove the look and feel of your custom tools using GUIStyles and GUISkinsConfigure and control the asset import pipelineImprove the build creation pipelineDistribute the custom tools in your team or publish them in the Asset StoreIn Detail
One of Unity's most powerful features is the extensible editor it has. With editor scripting, it is possible to extend or create functionalities to make video game development easier. For a Unity developer, this is an important topic to know and understand because adapting Unity editor scripting to video games saves a great deal of time and resources.
This book is designed to cover all the basic concepts of Unity editor scripting using a functional platformer video game that requires workflow improvement.
You will commence with the basics of editor scripting, exploring its implementation with the help of an example project, a level editor, before moving on to the usage of visual cues for debugging with Gizmos in the scene view. Next, you will learn how to create custom inspectors and editor windows and implement custom GUI. Furthermore, you will discover how to change the look and feel of the editor using editor GUIStyles and editor GUISkins. You will then explore the usage of editor scripting in order to improve the development pipeline of a video game in Unity by designing ad hoc editor tools, customizing the way the editor imports assets, and getting control over the build creation process. Step by step, you will use and learn all the key concepts while creating and developing a pipeline for a simple platform video game. As a bonus, the final chapter will help you to understand how to share content in the Asset Store that shows the creation of custom tools as a possible new business. By the end of the book, you will easily be able to extend all the concepts to other projects.Style and approach
This book uses a step-by-step approach that will help you finish with a level editor tool, a custom configuration for the asset import pipeline, and a build pipeline totally adjusted to the video game.
Lumion 3D Best Practices covers the most important Lumion features and techniques that can be incorporated in to any real production environment. Each chapter covers a different stage of a production workflow. The first two chapters provide a good foundation, in particular for when creating content for Lumion. Furthermore, the book provides an efficient workflow by covering two classic visualization scenes: interior and exterior scenes. You then get to know the best techniques to create physically based materials that boost the look and realism of any 3D scene. Special chapters are reserved to create efficient animations, still images and movies. By the end of this practical guide, users will be familiar with the professional and effective techniques to increase efficiency in producing high-end quality visualizations in Lumion.
Throughout the book, you’ll deal with an analogous workforce problem: how to schedule a group of people across a variety of projects while optimizing their time and skillsets. This example will help you understand how Akka uses actors, streams, and other tools to stitch your application together.Model software that reflects the real world with domain-driven designLearn principles and practices for implementing individual actorsUnlock the real potential of Akka with patterns for combining multiple actorsUnderstand the consistency tradeoffs in a distributed systemUse several Akka methods for isolating and dealing with failuresExplore ways to build systems that support availability and scalabilityTune your Akka application for performance with JVM tools and dispatchers
This book is for administrators who customize, support, and maintain JIRA for their organization.What You Will LearnCustomize basic settings for your projects, such as screens and fieldsCreate and customize workflows to suit your business process needsMake workflows more effective and efficientManage users and groups inside JIRA and manage advanced login optionsSecure your JIRA instance using effective practicesPerform e-mail functionalities with JIRAExtend JIRA to integrate with other products and servicesIn Detail
JIRA 7 Administration Cookbook, Second Edition covers all the new major features that provide better prioritizing capabilities, enhanced visibility, and the ability to customize JIRA application to meet your needs. We start by upgrading your existing JIRA instance and working through tasks you can perform at the server level to better maintain it. We then delve deep into adapting JIRA to your organization's needs, starting with the visual elements of setting up custom forms to capturing important data with custom fields and screens, and moving on to ensuring data integrity through defining field behaviors. You'll gain insights into JIRA's e-mail capabilities, including managing outgoing e-mail rules and processing incoming e-mails for automated issue creation. The book contains tips and tricks that will make things easier for you as administrators, such as running scripts to automate tasks, getting easy access to logs, and working with tools to troubleshoot problems. The book concludes with a chapter on JIRA Service Desk, which will enable you to set up and customize your own support portal, work with internal teams to solve problems, and achieve optimized services with SLA.Style and approach
This recipe-based book allows administrators to explore the exciting capabilities of JIRA. After reading this book, you will be able to extend and customize your JIRA implementation.
If you are an intermediate-level RabbitMQ developer, who wants to achieve professional-level expertise in the subject, this book is for you. You'll also need to have a decent understanding of message queuing.What You Will LearnAdminister RabbitMQ using different toolsUnderstand the roots and details of messaging, message brokers, and AMQP protocolScale the RabbitMQ server using the clusters and high availability techniquesExtend RabbitMQ by developing the Erlang OTP-based applications that use the RabbitMQ APIManage the RabbitMQ server using its powerful toolsMonitor the RabbitMQ Server using different open source tools such as Nagios, Munin, and ZabbixEnsure your RabbitMQ's security using SSL, SASL, and access controlDevelop RabbitMQ clients using Java, Python, and C# with an industry exampleIn Detail
RabbitMQ is one of the most powerful Open Source message broker software, which is widely used in tech companies such as Mozilla, VMware, Google, AT&T, and so on. RabbitMQ gives you lots of fantastic and easy-to-manage functionalities to control and manage the messaging facility with lots of community support. As scalability is one of our major modern problems, messaging with RabbitMQ is the main part of the solution to this problem.
This book explains and demonstrates the RabbitMQ server in a detailed way. It provides you with lots of real-world examples and advanced solutions to tackle the scalability issues.
You'll begin your journey with the installation and configuration of the RabbitMQ server, while also being given specific details pertaining to the subject. Next, you'll study the major problems that our server faces, including scalability and high availability, and try to get the solutions for both of these issues by using the RabbitMQ mechanisms. Following on from this, you'll get to design and develop your own plugins using the Erlang language and RabbitMQ's internal API. This knowledge will help you to start with the management and monitoring of the messages, tools, and applications. You'll also gain an understanding of the security and integrity of the messaging facilities that RabbitMQ provides. In the last few chapters, you will build and keep track of your clients (senders and receivers) using Java, Python, and C#.Style and approach
An easy-to-follow guide, full of hands-on examples based around managing, monitoring, extending, and securing RabbitMQ and its internal tools. You will learn how to develop your own clients using Java, Python, and C#.
If you are an intermediate GIS user, with either previous experience in QGIS or any other GIS application, this is the book for you. The recipes can be used to learn more advanced techniques in QGIS or to replicate the functionalities equivalent to other GIS platforms. This book assumes that you already have a working QGIS system in place.What You Will LearnImport and export common tricky spatial data formatsPerform classic vector and raster analysis with QGISUtilize spatial databases and data management toolsUse and create geographic web services and mapsExplore and create time-based visualizationsPerform network building and routing analysisExtend QGIS capabilities with popular plugins and toolbox automationMake beautiful and unique maps with customized cartographyIn Detail
QGIS is a user-friendly, cross-platform desktop geographic information system used to make maps and analyze spatial data. QGIS allows users to understand, question, interpret, and visualize spatial data in many ways that reveal relationships, patterns, and trends in the form of maps. This book is a collection of simple to advanced techniques that are needed in everyday geospatial work, and shows how to accomplish them with QGIS. You will begin by understanding the different types of data management techniques, as well as how data exploration works. You will then learn how to perform classic vector and raster analysis with QGIS, apart from creating time-based visualizations. Finally, you will learn how to create interactive and visually appealing maps with custom cartography. By the end of this book, you will have all the necessary knowledge to handle spatial data management, exploration, and visualization tasks in QGIS.Style and approach
This book covers practical examples, with step-by-step instructions on how to use real world data covering common GIS operations and the different analysis techniques. It provides detailed explanations and applications of QGIS concepts that will allow the user to effectively analyze spatial data.
Written by consultants from the Software Improvement Group (SIG), this book provides clear and concise explanations, with advice for turning the guidelines into practice. Examples for this edition are written in Java, while our companion C# book provides workable examples in that language.Write short units of code: limit the length of methods and constructorsWrite simple units of code: limit the number of branch points per methodWrite code once, rather than risk copying buggy codeKeep unit interfaces small by extracting parameters into objectsSeparate concerns to avoid building large classesCouple architecture components looselyBalance the number and size of top-level components in your codeKeep your codebase as small as possibleAutomate tests for your codebaseWrite clean code, avoiding "code smells" that indicate deeper problems
This book is for anyone who wants to discover and explore Yii Framework. Basic programming experience with PHP and object oriented programming is assumed.What You Will LearnUnderstand basic concepts, along with the installation and customization of YiiDiscover models, controllers, and views—concepts applied in a web context—and how they are employed in YiiUse ActiveRecord to manipulate a databaseAdd access control to your web application through authentication and authorizationInstall and customize an advanced template for multiple applications in the same projectCreate a RESTful Web Service to allow remote access to dataDevelop a console application to launch a command in the console as an automated task (cron job)Make code reusable through widgets and components and localize text messages to make a multilanguage web appIn Detail
Yii is a high-performance PHP framework best for developing Web 2.0 applications. It provides fast, secure, and professional features to create robust projects, however, this rapid development requires the ability to organize common tasks together to build a complete application. It's all too easy to get confused; this is where this book comes in.
This book contains a series of practical project examples for developers starting from scratch. Each section contains the most relevant theories for every topic as you walk through developing each project, focusing on key aspects that commonly confuse users.
The book starts with all the framework's basic concepts, such as controllers and views, to introduce you to Yii and creating your first application, a simple news reader. You will be learn to configure URL rules to make a pretty URL, essential for search engine optimization. Next, you will walk through Model and ActiveRecord, key concepts in database interaction.
The second application you will develop is a reservation system that allows you to manage rooms, customers, and reservations. For this, you will use database connection through SQL and ActiveRecord. More complex than the first one, this application will introduce you to the advanced template of Yii 2, splitting the app into two parts: a frontend for all visitors and a backend for the admin. Finally, you will move on to the last two applications: one that allows connections from remote clients, through RESTful components of Yii 2, and another that creates and organizes automatic tasks using the console application structure of Yii 2.Style and approach
This is a step-by-step guide with each topic introduced in the context of real-world applications, highlighting common cases where users may encounter difficulties.
This book is for web developers who have working knowledge of Python and would like to build amazing web services by taking advantage of the various frameworks of Python. You should have some knowledge of RESTful APIs.What You Will LearnDevelop complex RESTful APIs from scratch with Python combined with and without data sourcesChoose the most appropriate (micro) framework based on the specific requirements of a RESTful API / web serviceDebug, test, and profile RESTful APIs with each of the frameworksDevelop a complex RESTful API that interacts with a PostgreSQL database Add authentication and permissions to a RESTful API built in each of the frameworksMap URL patterns to request handlers and check how the API worksProfile an existing API and refactor it to take advantage of asynchronous codeIn Detail
Python is the language of choice for millions of developers worldwide, due to its gentle learning curve as well as its vast applications in day-to-day programming. It serves the purpose of building great web services in the RESTful architecture. This book will show you the best tools you can use to build your own web services.
Learn how to develop RESTful APIs using the popular Python frameworks and all the necessary stacks with Python, Django, Flask, and Tornado, combined with related libraries and tools. We will dive deep into each of these frameworks to build various web services, and will provide use cases and best practices on when to use a particular framework to get the best results.
We will show you everything required to successfully develop RESTful APIs with the four frameworks such as request handling, URL mapping, serialization, validation, authentication, authorization, versioning, ORMs, databases, custom code for models and views, and asynchronous callbacks. At the end of each framework, we will add authentication and security to the RESTful APIs and prepare tests for it.
By the end of the book, you will have a deep understanding of the stacks needed to build RESTful web services.Style and approach
The book takes a straightforward approach, not spending time getting you started with RESTful APIs and web services. It will give you the best use cases for each framework to build great web services in Python.
This book is for anyone who wants to exploit the power of Jenkins. This book servers a great starting point for those who are in the field DevOps and would like to leverage the benefits of CI and continuous delivery in order to increase productivity and reduce delivery time.What You Will LearnTake advantage of a continuous delivery solution to achieve faster software deliverySpeed up productivity using a continuous Integration solution through JenkinsUnderstand the concepts of CI and continuous deliveryOrchestrate many DevOps tools using Jenkins to automate builds, releases, deployment, and testingExplore the various features of Jenkins that make DevOps activities a piece of cakeConfigure multiple build machines in Jenkins to maintain load balancingManage users, projects, and permissions in Jenkins to ensure better securityLeverage the power of plugins in JenkinsIn Detail
In past few years, Agile software development has seen tremendous growth across the world. There is huge demand for software delivery solutions that are fast yet flexible to frequent amendments. As a result, CI and continuous delivery methodologies are gaining popularity. Jenkins' core functionality and flexibility allows it to fit in a variety of environments and can help streamline the development process for all stakeholders.
This book starts off by explaining the concepts of CI and its significance in the Agile world with a whole chapter dedicated to it. Next, you'll learn to configure and set up Jenkins. You'll gain a foothold in implementing CI and continuous delivery methods. We dive into the various features offered by Jenkins one by one exploiting them for CI.
After that, you'll find out how to use the built-in pipeline feature of Jenkins. You'll see how to integrate Jenkins with code analysis tools and test automation tools in order to achieve continuous delivery. Next, you'll be introduced to continuous deployment and learn to achieve it using Jenkins.
Through this book's wealth of best practices and real-world tips, you'll discover how easy it is to implement a CI service with Jenkins.Style and approach
This is a step-by-step guide to setting up a CI and continuous delivery system loaded with hands-on examples
If you are a JIRA developer or administrator, or a project manager who wants to fully exploit the exciting capabilities of JIRA, then this is the perfect book for you.What You Will LearnCreate and deploy your own JIRA pluginsManipulate workflows to transform JIRA into a user-friendly systemCreate custom reports that show statistics for particular people, projects, versions, or other fields within issuesSimplify reporting by writing your own JIRA gadgets, which can be added into a user's dashboardMaster database handling by extending and retrieving custom field details from the databaseDeal with custom fields on an issue and program custom field optionIn Detail
JIRA provides issue and project tracking for software development teams to improve code quality and the speed of development. With the new version of JIRA, you can create your own JIRA plugins and customize the look and feel of your JIRA UI easier than ever.
JIRA Development Cookbook , Third Edition, is a one-stop resource to master extensions and customizations in JIRA. This book starts with recipes about simplifying the plugin development process followed by recipes dedicated to the plugin framework. Then, you will move on to writing custom field plugins to create new field types or custom searchers. You will also learn how to program and customize workflows to transform JIRA into a user-friendly system. With so much data spanning different projects, issues, and so on, we will cover how to work on reports and gadgets to get customized data according to our needs. At the end of the book, you will learn how to customize JIRA by adding new tabs, menus, and web items; communicate with JIRA via the REST APIs; and work with the JIRA database.Style and approach
The most unique aspect of this book is its approach. This book is recipe-based, with real-world examples, that will empower you to implement agile processes and explore the exciting capabilities of Jira.
If you are a Python programmer and want to get your hands on scientific computing, this book is for you. The book expects you to have had exposure to various concepts of Python programming.What You Will LearnFundamentals and components of scientific computingScientific computing data managementPerforming numerical computing using NumPy and SciPyConcepts and programming for symbolic computing using SymPyUsing the plotting library matplotlib for data visualizationData analysis and visualization using Pandas, matplotlib, and IPythonPerforming parallel and high performance computingReal-life case studies and best practices of scientific computingIn Detail
In today's world, along with theoretical and experimental work, scientific computing has become an important part of scientific disciplines. Numerical calculations, simulations and computer modeling in this day and age form the vast majority of both experimental and theoretical papers. In the scientific method, replication and reproducibility are two important contributing factors. A complete and concrete scientific result should be reproducible and replicable. Python is suitable for scientific computing. A large community of users, plenty of help and documentation, a large collection of scientific libraries and environments, great performance, and good support makes Python a great choice for scientific computing.
At present Python is among the top choices for developing scientific workflow and the book targets existing Python developers to master this domain using Python. The main things to learn in the book are the concept of scientific workflow, managing scientific workflow data and performing computation on this data using Python.
The book discusses NumPy, SciPy, SymPy, matplotlib, Pandas and IPython with several example programs.Style and approach
This book follows a hands-on approach to explain the complex concepts related to scientific computing. It details various APIs using appropriate examples.
If you are a developer or system administrator with a basic knowledge of messaging who wants to learn RabbitMQ, or if you want to further enhance your knowledge in working with the message broker, then this book is ideal for you. To fully understand some examples in the book, a basic knowledge of the Java programming language is required.What You Will LearnApply messaging patterns using the message brokerAdminister RabbitMQ using the command line, management Web console, or management REST servicesCreate a cluster of scalable, and highly-available, RabbitMQ instancesUse RabbitMQ with the Spring Framework, MuleESB, WSO2, and Oracle databasesDeploy RabbitMQ using Puppet, Vagrant, or DockerFine-tune the performance of RabbitMQMonitor RabbitMQ using Nagios, Munin, or MonitSecure, troubleshoot, and extend RabbitMQIn Detail
RabbitMQ is Open Source Message Queuing software based on the Advanced Message Queue Protocol Standard written in the Erlang Language. RabbitMQ is an ideal candidate for large-scale projects ranging from e-commerce and finance to Big Data and social networking because of its ease of use and high performance. Managing RabbitMQ in such a dynamic environment can be a challenging task that requires a good understanding not only of how to work properly with the message broker but also of its best practices and pitfalls.
Learning RabbitMQ starts with a concise description of messaging solutions and patterns, then moves on to concrete practical scenarios for publishing and subscribing to the broker along with basic administration. This knowledge is further expanded by exploring how to establish clustering and high availability at the level of the message broker and how to integrate RabbitMQ with a number of technologies such as Spring, and enterprise service bus solutions such as MuleESB and WSO2. We will look at advanced topics such as performance tuning, secure messaging, and the internals of RabbitMQ. Finally we will work through case-studies so that we can see RabbitMQ in action and, if something goes wrong, we'll learn to resolve it in the Troubleshooting section.Style and approach
Each chapter of the book is an easy-to-follow guide that expands and builds on the knowledge already gained in previous chapters. Throughout the course of the book, a sample system called the CSN (Corporate Social Network) is used to illustrate the core principles described. At the end of each chapter, there is a Q&A session that covers practical questions that may arise in practice when working with RabbitMQ.
This book is not about a traditional introduction to Eclipse. This book gives a practical introduction to Eclipse. It introduces the features of Eclipse in the logical order in which any C/C++ programmer would need them; use them.
The book is appeals to a wide range of audience:
It can help a student/freshman who has just started programmingIt can help a full time programmer to be more productive with EclipseIt can help a seasoned programmer maintaining a huge software stack
* 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.
Devops stresses iterative efforts to break down information silos, monitor relationships, and repair misunderstandings that arise between and within teams in your organization. By applying the actionable strategies in this book, you can make sustainable changes in your environment regardless of your level within your organization.Explore the foundations of devops and learn the four pillars of effective devopsEncourage collaboration to help individuals work together and build durable and long-lasting relationshipsCreate affinity among teams while balancing differing goals or metricsAccelerate cultural direction by selecting tools and workflows that complement your organizationTroubleshoot common problems and misunderstandings that can arise throughout the organizational lifecycleLearn from case studies from organizations and individuals to help inform your own devops journey
The book is appeals to a wide range of audience:
It can help a student/freshman who has just started programming
It can help a full time programmer to be more productive with Eclipse
It can help a seasoned programmer maintaining a huge software stack
Written by a Group Product Manager at Oracle, this Oracle Press guide gets you up and running quickly with your first Oracle Fusion applications. Quick Start Guide to Oracle Fusion Development provides only the essential information you need to build applications in a matter of hours. Rapidly learn the building blocks and functionality you’ll use most of the time. The progression of topics closely matches the application building process, taking you through a typical developer scenario from start to completion.
Quick Start Guide to Oracle Fusion Development featuresConcise and friendly format providing the essentials needed to start building applications right away Chapters that build on each other to illustrate a typical development scenario from start to finish Unique author insights gained from hours of one-on-one meetings with customers and work in Oracle’s usability labs
The perfect entry point to Oracle Fusion development
Introduction to Fusion and the Fusion Technologies; Introduction to JDeveloper and Oracle ADF; Finding your Way Around JDeveloper; Building Business Services; Introducing ADF Business Components; The Role of the Entity; A View of your Data – The View Object; The Application Module; Implementing Business Service Validation; More View Object Features; Building the User Interface; Introducing ADF Face Rich Client; ADF Model; Building Typical ADF Pages; Building Application Flow; Menus, Toolbars and Buttons; Advanced UI Techniques; Data Visualization and Other Rich UI Components; Application Look and Feel; Common Coding Patterns; Common Business Service Coding Examples; Common View Coding Examples