Practical Internet of Things Security, 2nd Edition
With the advent of the Internet of Things (IoT),businesses have to defend against new types of threat. The business ecosystem now includes the cloud computing infrastructure, mobile and fixed endpoints that open up new attack surfaces, a desire to share information with many stakeholders, and a need to take action quickly based on large quantities of collected data. It therefore becomes critical to ensure that cybersecurity threats are contained to a minimum when implementing new IoT services and solutions. The interconnectivity of people, devices, and companies raises the stakes to a new level; as computing becomes ever more mobile, everything becomes connected to the cloud,and its infrastructure is hard put to it to securely manage the billions of devices that will connect us all to the IoT.
This book shows you how to implement cybersecurity solutions, IoT design best practices, and risk mitigation methodologies to address device and infrastructure threats to IoT solutions. ...
Voice User Interface Design
Design and implement voice user interfaces. This guide to VUI helps you make decisions as you deal with the challenges of moving from a GUI world to mixed-modal interactions with GUI and VUI. The way we interact with devices is changing rapidly and this book gives you a close view across major companies via real-world applications and case studies.
Voice User Interface Design provides an explanation of the principles of VUI design. The book covers the design phase, with clear explanations and demonstrations of each design principle through examples of multi-modal interactions (GUI plus VUI) and how they differ from pure VUI. The book also differentiates principles of VUI related to chat-based bot interaction models. By the end of the book you will have a vision of the future, imagining new user-oriented scenarios and new avenues, which until now were untouched.
Implement and adhere to each design principle; Understand how VUI differs from other ...
Hands-On Big Data Modeling
Modeling and managing data is a central focus of all big data projects. In fact, a database is considered to be effective only if you have a logical and sophisticated data model. This book will help you develop practical skills in modeling your own big data projects and improve the performance of analytical queries for your specific business requirements.
To start with, you'll get a quick introduction to big data and understand the different data modeling and data management platforms for big data. Then you'll work with structured and semi-structured data with the help of real-life examples. Once you've got to grips with the basics, you'll use the SQL Developer Data Modeler to create your own data models containing different file types such as CSV, XML, and JSON. You'll also learn to create graph data models and explore data modeling with streaming data using real-world datasets.
By the end of this book, you'll be able to design and develop efficient data models for varyin ...
Microservices for the Enterprise
Understand the key challenges and solutions around building microservices in the enterprise application environment. This book provides a comprehensive understanding of microservices architectural principles and how to use microservices in real-world scenarios.
Architectural challenges using microservices with service integration and API management are presented and you learn how to eliminate the use of centralized integration products such as the enterprise service bus (ESB) through the use of composite/integration microservices. Concepts in the book are supported with use cases, and emphasis is put on the reality that most of you are implementing in a "brownfield" environment in which you must implement microservices alongside legacy applications with minimal disruption to your business.
Microservices for the Enterprise covers state-of-the-art techniques around microservices messaging, service development and description, service discovery, governance, and data management techno ...
Principles of Package Design
Apply design principles to your classes, preparing them for reuse. You will use package design principles to create packages that are just right in terms of cohesion and coupling, and are user- and maintainer-friendly at the same time.
The first part of this book walks you through the five SOLID principles that will help you improve the design of your classes. The second part introduces you to the best practices of package design and covers both package cohesion principles and package coupling principles. Cohesion principles show you which classes should be put together in a package, when to split packages, and if a combination of classes may be considered a "package" in the first place. Package coupling principles help you choose the right dependencies and prevent wrong directions in the dependency graph of your packages.
Apply the SOLID principles of class design; Determine if classes belong in the same package; Know whether it is safe for packages t ...
Machine Learning in Java, 2nd Edition
As the amount of data in the world continues to grow at an almost incomprehensible rate, being able to understand and process data is becoming a key differentiator for competitive organizations. Machine learning applications are everywhere, from self-driving cars, spam detection, document search, and trading strategies, to speech recognition. This makes machine learning well-suited to the present-day era of big data and Data Science. The main challenge is how to transform data into actionable knowledge.
Machine Learning in Java will provide you with the techniques and tools you need. You will start by learning how to apply machine learning methods to a variety of common tasks including classification, prediction, forecasting, market basket analysis, and clustering. The code in this book works for JDK 8 and above, the code is tested on JDK 11.
Moving on, you will discover how to detect anomalies and fraud, and ways to perform activity recognition, image recognition, and text analy ...
The Game Designer's Playlist
In The Game Designers Playlist, top game design instructor Zack Hiwiller introduces more than 70 remarkable games, revealing how they work, why they're great, and how to apply their breakthrough techniques in your own games.
Ranging from Go to Texas Hold'em and Magic: The Gathering to Dishonored 2, Hiwiller teaches indispensable lessons about game decision-making, playability, narrative, mechanics, chance, winning, originality, cheats, and a whole lot more. He gleans powerful insights from virtually every type of game: console, mobile, PC, board, card, and beyond.
Every game is presented in full color, with a single purpose: to show you what makes it exceptional, so you can create legendary games of your own.
Discover how game designers use randomness and luck; Make the most of narrative and the narrator's role; Place the game challenge front and center; Optimize game mechanics, and place mechanics in a broader context; Uncover deep dynamic play in games with the simple ...
Practical Object-Oriented Design, 2nd Edition
Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples.
Sandi Metz demonstrates how to build new applications that can "survive success" and repair existing applications that have become impossible to change.
Decide what belongs in a single class; Avoid entangling objects that should be kept separate; Define flexible interfaces among objects; Reduce programming overhead costs with duck typing; Successfully apply inheritance; Build objects via composition. ...
Refactoring, 2nd Edition
For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.
Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
Understand the process and general principles of refactoring; Quickly apply useful refactorings to make a program easier to comprehend and change; Recognize “bad smells” in code that signal opportunities to refactor; Explore the ...
Hands-On Object-Oriented Programming with Kotlin
Kotlin is an object-oriented programming language. The book is based on the latest version of Kotlin. The book provides you with a thorough understanding of programming concepts, object-oriented programming techniques, and design patterns. It includes numerous examples, explanation of concepts and keynotes. Where possible, examples and programming exercises are included.
The main purpose of the book is to provide a comprehensive coverage of Kotlin features such as classes, data classes, and inheritance. It also provides a good understanding of design pattern and how Kotlin syntax works with object-oriented techniques. You will also gain familiarity with syntax in this book by writing labeled for loop and when as an expression. An introduction to the advanced concepts such as sealed classes and package level functions and coroutines is provided and we will also learn how these concepts can make the software development easy. Supported libraries for serialization, regula ...
Python 3 Object-Oriented Programming, 3rd Edition
Object-oriented programming (OOP) is a popular design paradigm in which data and behaviors are encapsulated in such a way that they can be manipulated together. This third edition of Python 3 Object-Oriented Programming fully explains classes, data encapsulation, and exceptions with an emphasis on when you can use each principle to develop well-designed software.
Starting with a detailed analysis of object-oriented programming, you will use the Python programming language to clearly grasp key concepts from the object-oriented paradigm. You will learn how to create maintainable applications by studying higher level design patterns. The book will show you the complexities of string and file manipulation, and how Python distinguishes between binary and textual data. Not one, but two very powerful automated testing systems, unittest and pytest, will be introduced in this book. You'll get a comprehensive introduction to Python's concurrent programming ecosystem.
By the e ...