This is the most comprehensive and up-to-date guide to the technologies and applications of Augmented Reality (AR) and Virtual Reality (VR) systems and wearable computing devices. Ideal for practitioners and students concerned with any application, from gaming to medicine, it brings together comprehensive coverage of both theory and practice, emphasizing leading-edge displays, sensors, and DIY tools that are already available commercially or will be soon. Practical Augmented Reality begins by explaining the mechanics of human sight, hearing and touch, showing how these mechanisms (and their performance ranges) directly dictate the design and use of wearable displays, 3-D audio systems, and tactile/force feedback devices. It presents revealing case studies of real-world applications from gaming, entertainment, science, engineering, aerospace and air traffic control, defense, medicine, architecture, law enforcement, and geophysics. Readers will find clear, easy-to-understand explanations, photos, and illustrations of devices including Oculus (Facebook) Rift, Sony Morpheus, Google Glass, and many more. Functional diagrams clearly explain how each device operates, and link directly to relevant theoretical and practical content. Practical Augmented Reality thoroughly considers human factors, including sense and motor physiology constraints; resolution and realism; fields of view, angles, and distortion; latency and time display; flicker vertigo, phobia effects, and motion sickness. It concludes by assessing both the legal and societal implications of new and emerging AR, VR, and wearable technologies.
Stop manually analyzing binary! Practical Binary Analysis is the first book of its kind to present advanced binary analysis topics, such as binary instrumentation, dynamic taint analysis, and symbolic execution, in an accessible way. As malware increasingly obfuscates itself and applies anti-analysis techniques to thwart our analysis, we need more sophisticated methods that allow us to raise that dark curtain designed to keep us out--binary analysis can help. The goal of all binary analysis is to determine (and possibly modify) the true properties of binary programs to understand what they really do, rather than what we think they should do. While reverse engineering and disassembly are critical first steps in many forms of binary analysis, there is much more to be learned. This hands-on guide teaches you how to tackle the fascinating but challenging topics of binary analysis and instrumentation and helps you become proficient in an area typically only mastered by a small group of expert hackers. It will take you from basic concepts to state-of-the-art methods as you dig into topics like code injection, disassembly, dynamic taint analysis, and binary instrumentation. Written for security engineers, hackers, and those with a basic working knowledge of C/C++ and x86-64, Practical Binary Analysis will teach you in-depth how binary programs work and help you acquire the tools and techniques needed to gain more control and insight into binary programs. Once you´ve completed an introduction to basic binary formats, you´ll learn how to analyze binaries using techniques like the GNU/Linux binary analysis toolchain, disassembly, and code injection. You´ll then go on to implement profiling tools with Pin and learn how to build your own dynamic taint analysis tools with libdft and symbolic execution tools using Triton. You´ll learn how to: - Parse ELF and PE binaries and build a binary loader with libbfd - Use data-flow analysis techniques like program tracing, slicing, and reaching definitions analysis to reason about runtime flow of your programs - Modify ELF binaries with techniques like parasitic code injection and hex editing - Build custom disassembly tools with Capstone - Use binary instrumentation to circumvent anti-analysis tricks commonly used by malware - Apply taint analysis to detect control hijacking and data leak attacks - Use symbolic execution to build automatic exploitation tools With exercises at the end of each chapter to help solidify your skills, you´ll go from understanding basic assembly to performing some of the most sophisticated binary analysis and instrumentation. Practical Binary Analysis gives you what you need to work effectively with binary programs and transform your knowledge from basic understanding to expert-level proficiency.
Publisher´s Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product. ´´The promise of cloud computing is here. These pages provide the ´eyes wide open´ insights you need to transform your business.´´ --Christopher Crowhurst, Vice President, Strategic Technology, Thomson Reuters A Down-to-Earth Guide to Cloud Computing Cloud Computing: A Practical Approach provides a comprehensive look at the emerging paradigm of Internet-based enterprise applications and services. This accessible book offers a broad introduction to cloud computing, reviews a wide variety of currently available solutions, and discusses the cost savings and organizational and operational benefits. You´ll find details on essential topics, such as hardware, platforms, standards, migration, security, and storage. You´ll also learn what other organizations are doing and where they´re headed with cloud computing. If your company is considering the move from a traditional network infrastructure to a cutting-edge cloud solution, you need this strategic guide. Cloud Computing: A Practical Approach covers: * Costs, benefits, security issues, regulatory concerns, and limitations * Service providers, including Google, Microsoft, Amazon, Yahoo, IBM, EMC/VMware, Salesforce.com, and others * Hardware, infrastructure, clients, platforms, applications, services, and storage * Standards, including HTTP, HTML, DHTML, XMPP, SSL, and OpenID * Web services, such as REST, SOAP, and JSON * Platform as a Service (PaaS), Software as a Service (SaaS), and Software plus Services (S+S) * Custom application development environments, frameworks, strategies, and solutions * Local clouds, thin clients, and virtualization * Migration, best practices, and emerging standards
Develop a greater intuition for the proper use of cryptography. This book teaches the basics of writing cryptographic algorithms in Python, demystifies cryptographic internals, and demonstrates common ways cryptography is used incorrectly. Cryptography is the lifeblood of the digital world´s security infrastructure. From governments around the world to the average consumer, most communications are protected in some form or another by cryptography. These days, even Google searches are encrypted. Despite its ubiquity, cryptography is easy to misconfigure, misuse, and misunderstand. Developers building cryptographic operations into their applications are not typically experts in the subject, and may not fully grasp the implication of different algorithms, modes, and other parameters. The concepts in this book are largely taught by example, including incorrect uses of cryptography and how ´´bad´´ cryptography can be broken. By digging into the guts of cryptography, you can experience what works, what doesn´t, and why. What You´ll Learn Understand where cryptography is used, why, and how it gets misused Know what secure hashing is used for and its basic properties Get up to speed on algorithms and modes for block ciphers such as AES, and see how bad configurations break Use message integrity and/or digital signatures to protect messages Utilize modern symmetric ciphers such as AES-GCM and CHACHA Practice the basics of public key cryptography, including ECDSA signatures Discover how RSA encryption can be broken if insecure padding is used Employ TLS connections for secure communications Find out how certificates work and modern improvements such as certificate pinning and certificate transparency (CT) logs Who This Book Is For IT administrators and software developers familiar with Python. Although readers may have some knowledge of cryptography, the book assumes that the reader is starting from scratch.
Learn how to build your own computer vision (CV) applications quickly and easily with SimpleCV, an open source framework written in Python. Through examples of real-world applications, this hands-on guide introduces you to basic CV techniques for collecting, processing, and analyzing streaming digital images. You?ll then learn how to apply these methods with SimpleCV, using sample Python code. All you need to get started is a Windows, Mac, or Linux system, and a willingness to put CV to work in a variety of ways. Programming experience is optional. * Capture images from several sources, including webcams, smartphones, and Kinect * Filter image input so your application processes only necessary information * Manipulate images by performing basic arithmetic on pixel values * Use feature detection techniques to focus on interesting parts of an image * Work with several features in a single image, using the NumPy and SciPy Python libraries * Learn about optical flow to identify objects that change between two image frames * Use SimpleCV?s command line and code editor to run examples and test techniques
Recent years have seen a dramatic growth of natural language text data, including web pages, news articles, scientific literature, emails, enterprise documents, and social media such as blog articles, forum posts, product reviews, and tweets. This has led to an increasing demand for powerful software tools to help people analyze and manage vast amounts of text data effectively and efficiently. Unlike data generated by a computer system or sensors, text data are usually generated directly by humans, and are accompanied by semantically rich content. As such, text data are especially valuable for discovering knowledge about human opinions and preferences, in addition to many other kinds of knowledge that we encode in text. In contrast to structured data, which conform to well-defined schemas (thus are relatively easy for computers to handle), text has less explicit structure, requiring computer processing toward understanding of the content encoded in text. The current technology of natural language processing has not yet reached a point to enable a computer to precisely understand natural language text, but a wide range of statistical and heuristic approaches to analysis and management of text data have been developed over the past few decades. They are usually very robust and can be applied to analyze and manage text data in any natural language, and about any topic. This book provides a systematic introduction to all these approaches, with an emphasis on covering the most useful knowledge and skills required to build a variety of practically useful text information systems. The focus is on text mining applications that can help users analyze patterns in text data to extract and reveal useful knowledge. Information retrieval systems, including search engines and recommender systems, are also covered as supporting technology for text mining applications. The book covers the major concepts, techniques, and ideas in text data mining and information retrieval from a practical viewpoint, and includes many hands-on exercises designed with a companion software toolkit (i.e., MeTA) to help readers learn how to apply techniques of text mining and information retrieval to real-world text data and how to experiment with and improve some of the algorithms for interesting application tasks. The book can be used as a textbook for a computer science undergraduate course or a reference book for practitioners working on relevant problems in analyzing and managing text data.