Learning SwiftGet hands-on experience with Apple's Swift programming language by building real working apps. With this practical guide, skilled programmers with little or no knowledge of Apple development will learn how to code with Swift 2 by developing three complete, tightly linked versions of the Notes application for the OS X, iOS, and watchOS platforms.
In the process, you'll learn Swift's fundamentals, including its syntax and features, along with the basics of the Cocoa, CocoaTouch, and WatchKit frameworks. This book teaches you how to use common design patterns for Swift, how to structure an application for Apple's platforms, and how to submit working apps to the App Store. ...
Data AlgorithmsIf you are ready to dive into the MapReduce framework for processing large datasets, this practical book takes you step by step through the algorithms and tools you need to build distributed MapReduce applications with Apache Hadoop or Apache Spark. Each chapter provides a recipe for solving a massive computational problem, such as building a recommendation system. You'll learn how to implement the appropriate MapReduce solution with code that you can use in your projects.
Dr. Mahmoud Parsian covers basic design patterns, optimization techniques, and data mining and machine learning solutions for problems in bioinformatics, genomics, statistics, and social network analysis. This book also includes an overview of MapReduce, Hadoop, and Spark. ...
Positioning in CSSThe Grid Layout spec will soon change your approach to website design, but there will still be plenty of uses for CSS positioning tricks. Whether you want to create sidebars that remain in the viewport (browser window), add sticky section headings to lists or long articles, or overlap one element with another, this concise ebook will expertly guide you through all the main CSS positioning types.
Short and deep, this book is an excerpt from the upcoming fourth edition of CSS: The Definitive Guide. When you purchase either the print or the ebook edition of Positioning in CSS, you'll receive a discount on the entire Definitive Guide once it's released. Why wait? Make your web pages come alive today. ...
Mapping ExperiencesCustomers who have inconsistent, broken experiences with products and services are understandably frustrated. But it's worse when people inside these companies can't pinpoint the problem because they're too focused on business processes. This practical book shows your company how to use alignment diagrams to turn valuable customer observations into actionable insight. With this unique tool, you can visually map your existing customer experience and envision future solutions.
Product and brand managers, marketing specialists, and business owners will learn how experience diagramming can help determine where business goals and customer perspectives intersect. Once you're armed with this data, you can provide users with real value. ...
Optimized C++In today's fast and competitive world, a program's performance is just as important to customers as the features it provides. This practical guide teaches developers performance-tuning principles that enable optimization in C++. You'll learn how to make code that already embodies best practices of C++ design run faster and consume fewer resources on any computer - whether it's a watch, phone, workstation, supercomputer, or globe-spanning network of servers.
Author Kurt Guntheroth provides several running examples that demonstrate how to apply these principles incrementally to improve existing code so it meets customer requirements for responsiveness and throughput. The advice in this book will prove itself the first time you hear a colleague exclaim, "Wow, that was fast. Who fixed something?" ...
Algorithms in a Nutshell, 2nd EditionCreating robust software requires the use of efficient algorithms, but programmers seldom think about them until a problem occurs. This updated edition of Algorithms in a Nutshell describes a large number of existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs - with just enough math to let you understand and analyze algorithm performance.
With its focus on application, rather than theory, this book provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each major algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate. ...
XenServer Administration HandbookPacked with practical advice, this hands-on guide provides valuable information you need to most effectively optimize and manage the XenServer open source virtualization platform. Whether you run a modest installation of a few blades or multiple global enterprise datacenters, this book focuses on the most critical issues you're likely to encounter when designing a XenServer deployment and helps you handle day-to-day management tasks.
Tim Mackey and J.K. Benedict from Citrix Systems, the company that manages XenServer, show you how to design a deployment through best practices, deployment blueprints, and installation guidelines. The book's second part features concise, easy-to-implement recipes for day-to-day management, such as user rights, backup strategies, and hardware maintenance. ...
Building Maintainable Software, Java EditionHave you ever felt frustrated working with someone else's code? Difficult-to-maintain source code is a big problem in software development today, leading to costly delays and defects. Be part of the solution. With this practical book, you'll learn 10 easy-to-follow guidelines for delivering Java software that's easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems.
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. ...
Site Reliability EngineeringThe overwhelming majority of a software system's lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?
In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient - lessons directly applicable to your organization. ...
Graphing Data with RIt's much easier to grasp complex data relationships with a graph than by scanning numbers in a spreadsheet. This introductory guide shows you how to use the R language to create a variety of useful graphs for visualizing and analyzing complex data for science, business, media, and many other fields. You'll learn methods for highlighting important relationships and trends, reducing data to simpler forms, and emphasizing key numbers at a glance.
Anyone who wants to analyze data will find something useful here - even if you don't have a background in mathematics, statistics, or computer programming. If you want to examine data related to your work, this book is the ideal way to start. ...
Designing Efficient BPM ApplicationsLooking for efficiency gains in your business? If you're a business analyst, this practical guide will show you how to design effective business process management (BPM) applications. Every business uses business processes—these everyday tasks help you gain and retain customers, stay profitable, and keep your operations infrastructure functioning.
BPM specialists Christine McKinty and Antoine Mottier show you step-by-step how to turn a simple business procedure into an automated, process-based application. Using hands-on examples, you'll quickly learn how to create an online process that's easy to use. Each chapter builds on earlier material.
You don't have to have any programming experience to design business processes—and if you have skills in designing workflows and understanding human interactions with processes, you already have a headstart. ...