Maya artists and animators face complex problems that are not easily solved with the built-in capabilities of the program. MEL (Maya Embedded Language), the scripting language included with Maya, enables users to automate and customize their work. Programming in MEL is often the first programming task of any kind attempted by an artist or animator. However, learning to program is hard for many artists, and it is very hard to learn how to program MEL by just reading the Maya documentation. In the first edition of MEL Scripting for Maya Animators, Mark Wilkins and Chris Kazmier provided very clear explanations of basic programming concepts to an audience without programming experience. That book earned the reputation as the best introductory book on MEL. Since that edition, Maya has released two new major version upgrades and its user base has continued to grow. Now in a second edition, the book is fully updated to Maya 6 and includes a number of brand new features, such as a discussion of global procedures, new chapters on fixing programming bottlenecks, advanced user interface techniques, and optimizing character rigs.
Learn how to manipulate functions and expressions to modify how the R language interprets itself. This book is an introduction to metaprogramming in the R language, so you will write programs to manipulate other programs. Metaprogramming in R shows you how to treat code as data that you can generate, analyze, or modify. R is a very high-level language where all operations are functions and all functions are data that can be manipulated. This book shows you how to leverage R´s natural flexibility in how function calls and expressions are evaluated, to create small domain-specific languages to extend R within the R language itself. What You´ll Learn Find out about the anatomy of a function in R Look inside a function call Work with R expressions and environments Manipulate expressions in R Use substitutions Who This Book Is For Those with at least some experience with R and certainly for those with experience in other programming languages.
Learn Intel 64 assembly language and architecture, become proficient in C, and understand how the programs are compiled and executed down to machine instructions, enabling you to write robust, high-performance code. Low-Level Programming explains Intel 64 architecture as the result of von Neumann architecture evolution. The book teaches the latest version of the C language (C11) and assembly language from scratch. It covers the entire path from source code to program execution, including generation of ELF object files, and static and dynamic linking. Code examples and exercises are included along with the best code practices. Optimization capabilities and limits of modern compilers are examined, enabling you to balance between program readability and performance. The use of various performance-gain techniques is demonstrated, such as SSE instructions and pre-fetching. Relevant Computer Science topics such as models of computation and formal grammars are addressed, and their practical value explained. What You´ll Learn Low-Level Programming teaches programmers to: Freely write in assembly language Understand the programming model of Intel 64 Write maintainable and robust code in C11 Follow the compilation process and decipher assembly listings Debug errors in compiled assembly code Use appropriate models of computation to greatly reduce program complexity Write performance-critical code Comprehend the impact of a weak memory model in multi-threaded applications Who This Book Is For Intermediate to advanced programmers and programming students
This textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms supported by examples that bring meaning to the problems faced by computer programmers. The idea of computational complexity is also introduced, demonstrating what can and cannot be computed efficiently so that the programmer can make informed judgements about the algorithms they use. Features: includes both introductory and advanced data structures and algorithms topics, with suggested chapter sequences for those respective courses provided in the preface; provides learning goals, review questions and programming exercises in each chapter, as well as numerous illustrative examples; offers downloadable programs and supplementary files at an associated website, with instructor materials available from the author; presents a primer on Python for those from a different language background.
Introducing the IBM SPSS Modeler, this book guides readers through data mining processes and presents relevant statistical methods. There is a special focus on step-by-step tutorials and well-documented examples that help demystify complex mathematical algorithms and computer programs. The variety of exercises and solutions as well as an accompanying website with data sets and SPSS Modeler streams are particularly valuable. While intended for students, the simplicity of the Modeler makes the book useful for anyone wishing to learn about basic and more advanced data mining, and put this knowledge into practice.
Master functions and discover how to write functional programs in R. In this concise book, you´ll make your functions pure by avoiding side-effects; you´ll write functions that manipulate other functions, and you´ll construct complex functions using simpler functions as building blocks. In Functional Programming in R , you´ll see how we can replace loops, which can have side-effects, with recursive functions that can more easily avoid them. In addition, the book covers why you shouldn´t use recursion when loops are more efficient and how you can get the best of both worlds. Functional programming is a style of programming, like object-oriented programming, but one that focuses on data transformations and calculations rather than objects and state. Where in object-oriented programming you model your programs by describing which states an object can be in and how methods will reveal or modify that state, in functional programming you model programs by describing how functions translate input data to output data. Functions themselves are considered to be data you can manipulate and much of the strength of functional programming comes from manipulating functions; that is, building more complex functions by combining simpler functions. What You´ll Learn Write functions in R including infix operators and replacement functions Create higher order functions Pass functions to other functions and start using functions as data you can manipulate Use Filer, Map and Reduce functions to express the intent behind code clearly and safely Build new functions from existing functions without necessarily writing any new functions, using point-free programming Create functions that carry data along with them Who This Book Is For Those with at least some experience with programming in R.
Virtual machines are rapidly becoming an essential element in providing system security, flexibility, cross-platform compatibility, reliability, and resource efficiency. Designed to solve problems in combining and using major computer system components, virtual machine technologies are important to a number of disciplines, including operating systems, programming languages, and computer architecture. For example, at the process level, virtualizing technologies support dynamic program translation and platform-independent network computing. At the system level, they support multiple operating system environments on the same hardware platform and in servers. Historically, individual virtual machine techniques have been developed within the specific disciplines that employ them (in some cases they aren?t even referred to as ?virtual machines?), making it difficult to see their common underlying relationships in a cohesive way. In this text, Smith and Nair take a new approach by examining virtual machines as a unified discipline. Pulling together cross-cutting technologies allows virtual machine implementations to be studied and engineered in a well-structured manner. Topics include instruction set emulation, dynamic program translation and optimization, high level virtual machines (including Java and CLI), and system virtual machines for both single-user systems and servers.
An indispensable collection of practical tips and real-world advice for tackling common Python problems and taking your code to the next level. Features interviews with high-profile Python developers who share their tips, tricks, best practices, and real-world advice gleaned from years of experience. The Hacker´s Guide to Python will teach you how to fine tune your Python code and give you a deeper understanding of how the language works under the hood. This essential guide distills years of Python experience into a handy collection of general advice and specific tips that will help you pick the right libraries, distribute your code correctly, build future-proof programs, and optimize your programs down to the bytecode. Author Julien Danjou, an OpenStack contributor (the largest open source project written in Python) covers a swath of important areas like scaling, testing, and porting your code. You´ll also learn directly from Python experts and get real-world (and time-saving) advice on topics like unit testing, packaging code, performances and optimizations, and designing APIs. Elevate your code and get seriously good at Python with The Hacker´s Guide to Python!
A hands-on introduction to computer science concepts for non-technical readers. Activities include word searches, mazes, ´´Find the Bug!´´ hunts, matching games, ´´Color by Boolean´´ (a twist on the classic Paint by Numbers), and more. The Computer Science Activity Book is the perfect companion for curious youngsters and grown-ups -- especially those who think they´ll never understand how computers work. As readers work their way through this collection of fun and innovative hands-on exercises, they´ll learn the core programming concepts and computer terminology that form the foundation of a STEM education. Readers learn about historical figures like Charles Babbage, Ada Lovelace, Grace Hopper, and Alan Turing; how computers store data and run programs; and how the parts of a computer work together (like the hard drive, RAM, and CPU) through activities that teach foundational programming concepts like drawing a garden of flowers using for loops and creating creatures with conditional statements.
This book focuses on video-based, corneal-reflection eye trackers - the most widely available and affordable type of system, and takes a look at a number of interesting and challenging applications in human factors, collaborative systems, virtual reality, marketing and advertising. The third edition has been extensively revised and extended, and includes new chapters on calibration accuracy, precision and correction; advanced eye movement analysis; binocular eye movement analysis; practical gaze analytics; design; GIS. Opening with useful background information, including an introduction to the human visual system and key issues in visual perception and eye movement, the author then surveys eye-tracking devices and provides a detailed introduction to the technical requirements necessary for installing a system and developing an application program.