Test-Driving JavaScript ApplicationsDesign and code JavaScript applications with automated tests. Writing meaningful tests is a skill that takes learning, some unlearning, and a lot of practice, and with this book, you'll hone that skill. Fire up the editor and get hands-on through practical exercises for effective automated testing and designing maintainable, modular code.
Start by learning when and why to do manual testing vs. automated verification. Focus tests on the important things, like the pre-conditions, the invariants, complex logic, and gnarly edge cases. Then begin to design asynchronous functions using automated tests. Carefully decouple and mock out intricate dependencies such as the DOM, geolocation API, file and database access, and Ajax calls to remote servers.
Step by step, test code that uses Node.js, Express, MongoDB, jQuery, and AngularJS. Know when and how to use tools such as Chai, Istanbul, Karma, Mocha, Protractor, and Sinon. Create tests with minimum effort and run them fast without having ...
Rails 5 Test PrescriptionsYour Ruby on Rails application is sick. Deadlines are looming, but every time you make the slightest change to the code, something else breaks. Nobody remembers what that tricky piece of code was supposed to do, and nobody can tell what it actually does. Plus, it has bugs. You need test-driven development: a process for improving the design, maintainability, and long-term viability of software.
With both practical code examples and discussion of why testing works, this book starts with the most basic features delivered as part of core Ruby on Rails. Once you've integrated those features into your coding practice, work with popular third-party testing tools such as RSpec, Jasmine, Cucumber, and factory_bot. Test the component parts of a Rails application, including the back-end model logic and the front-end display logic. With Rails examples, use testing to enable your code to respond better to future change. Plus, see how to handle real-world testing situations.
This new edition ...
Seven Mobile Apps in Seven WeeksUnderstanding the idioms, patterns, and quirks of the modern mobile platforms gives you the power to choose how you develop. Over seven weeks you'll build seven different mobile apps using seven different tools. You'll start out with Mobile Web; develop native apps on iOS, Android, and Windows; and finish by building apps for multiple operating systems using the native cross-platform solutions RubyMotion, React Native, and Xamarin.
For each platform, you'll build simple, but non-trivial, apps that consume JSON data, run on multiple screen sizes, or store local data. You'll see how to test, how to build views, and how to structure code. You'll find out how much code it's possible to share, how much of the underlying platform you still need to know, and ultimately, you'll get a firm understanding of how to build apps on whichever devices your users prefer.
This book gives you enough first-hand experience to weigh the trade-offs when building mobile apps. You'll compare writing apps on ...
Learn Functional Programming with ElixirFunctional programming offers useful techniques for building maintainable and scalable software that solves today's difficult problems. The demand for software written in this way is increasing - you don't want to miss out. In this book, you'll not only learn Elixir and its features, you'll also learn the mindset required to program functionally. Elixir's clean syntax is excellent for exploring the critical skills of using functions and concurrency.
Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir's most common high-order functions. Explore how to use lazy computa ...
VFX FundamentalsThis book is a comprehensive title covering concepts central to Visual Special Effects using the free Black Magic Design Fusion 8.0 software package. The book also provides foundational background information regarding digital image compositing, digital video editing, digital illustration, digital painting, 3D, and digital audio in the first six chapters on new media theory, concepts and terminology. This book builds on the foundational concepts of digital image compositing, digital audio, digital video, digital illustration and digital painting.
VFX Fundamentals will introduce more advanced VFX concepts and pipelines as the chapters progress, covering topics such as Flow Node Compositing, Timeline Animation, Animated PolyLine Masking, Bluescreen and Greenscreen Matte Pulling (generation), using Primatte and Fusion 8 Ultra Keyer, motion tracking, 3D rendering and compositing, auxiliary channels, and particle systems and particle physics dynamics, among other topics. ...
Apache Mahout EssentialsApache Mahout is a scalable machine learning library with algorithms for clustering, classification, and recommendations. It empowers users to analyze patterns in large, diverse, and complex datasets faster and more scalably.
This book is an all-inclusive guide to analyzing large and complex datasets using Apache Mahout. It explains complicated but very effective machine learning algorithms simply, in relation to real-world practical examples.
Starting from the fundamental concepts of machine learning and Apache Mahout, this book guides you through Apache Mahout's implementations of machine learning techniques including classification, clustering, and recommendations. During this exciting walkthrough, real-world applications, a diverse range of popular algorithms and their implementations, code examples, evaluation strategies, and best practices are given for each technique. Finally, you will learn vdata visualization techniques for Apache Mahout to bring your data to life. ...
Apache SolrBuild an enterprise search engine using Apache Solr: index and search documents; ingest data from varied sources; apply various text processing techniques; utilize different search capabilities; and customize Solr to retrieve the desired results. Apache Solr: A Practical Approach to Enterprise Search explains each essential concept - backed by practical and industry examples - to help you attain expert-level knowledge.
The book, which assumes a basic knowledge of Java, starts with an introduction to Solr, followed by steps to setting it up, indexing your first set of documents, and searching them. It then introduces you to information retrieval and its implementation in Apache Solr; this will help you understand your search problem, decide the approach to build an effective solution, and use various metrics to evaluate the results.
The book next covers the schema design and techniques to build a text analysis chain for cleansing, normalizing and enriching your documents and addre ...
Hadoop: Beginner's GuideData is arriving faster than you can process it and the overall volumes keep growing at a rate that keeps you awake at night. Hadoop can help you tame the data beast. Effective use of Hadoop however requires a mixture of programming, design, and system administration skills.
Hadoop Beginner's Guide - removes the mystery from Hadoop, presenting Hadoop and related technologies with a focus on building working systems and getting the job done, using cloud services to do so when it makes sense. From basic concepts and initial setup through developing applications and keeping the system running as the data grows, the book gives the understanding needed to effectively use Hadoop to solve real world problems. ...
ArcGIS By ExampleArcGIS is a geographic information system (GIS) for working with maps and geographic information. It is considered the turnkey solution to creating and sharing interactive maps. ArcGIS is designed to work the way you work. With nothing to install and set up, ArcGIS helps you make your work productive from day one.
The book covers the design and development of three ArcGIS applications to guide the readers in crafting their own GIS solution as per their requirements. The book begins by giving you a refresher on the concepts of ArcGIS. Without wasting any time, you'll begin with developing your first ArcGIS application. You will be developing a cell tower analysis tool. Following this, you will be guided through mapping signal strength and real - time manoeuvring in your GIS system. You will then move on to the second application of the book: a restaurant mapping system. ...
ArchiCAD 19 - The Definitive GuideArchiCAD 19 – The Definitive Guide ensures that you are equipped with the knowledge and skills required to take up any construction project, empowering you to successfully create your own projects.
You will create two complete projects right from scratch, including a residential and a healthcare building. The first is a small residential house that utilizes all the basic modeling and drafting tools in ArchiCAD. It will give you a firm grip on the fundamentals of ArchiCAD before we move on to take up the more advanced and complex project that follows. The second project is a multi-storey healthcare building, where you will explore the leading-edge tools of ArchiCAD, thereby gaining the skills needed to use them in your own projects. The book will also take you through the design of the buildings, the output of all drawings, and associated construction documents. Best practice tips are inserted at key points along the way. ...