Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.
This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing.
Each chapter in the book consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.
Highlights include:New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io
Simply put, Effective Java™, Second Edition, presents the most practical, authoritative guidelines available for writing efficient, well-designed programs.
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns—now updated for Java 8—shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.
What’s so special about this book?
We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.Explore Python’s major built-in object types such as numbers, lists, and dictionariesCreate and process objects with Python statements, and learn Python’s general syntax modelUse functions to avoid code redundancy and package code for reuseOrganize statements, functions, and other tools into larger components with modulesDive into classes: Python’s object-oriented programming tool for structuring codeWrite large programs with Python’s exception-handling model and development toolsLearn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge.
That's how your brain knows.
And that's how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It's fast, it's fun, and it's effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. second edition focuses on Java 5.0, the latest version of the Java language and development platform. Because Java 5.0 is a major update to the platform, with deep, code-level changes, even more careful study and implementation is required. So learning the Head First way is more important than ever.
If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. You'll see why people say it's unlike any other Java book you've ever read.
By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. Its unique approach not only shows you what you need to know about Java syntax, it teaches you to think like a Java programmer. If you want to be bored, buy some other book. But if you want to understand Java, this book's for you.
However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.
This book covers:Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.
This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work
With SQLite, you'll discover how to develop a database-backed application that remains manageable in size and complexity. This book guides you every step of the way. You'll get a crash course in data modeling, become familiar with SQLite's dialect of the SQL database language, and much more.Learn how to maintain localized storage in a single file that requires no configurationBuild your own SQLite library or use a precompiled distribution in your applicationGet a primer on SQL, and learn how to use several language functions and extensionsWork with SQLite using a scripting language or a C-based language such as C# or Objective-CUnderstand the basics of database design, and learn how to transfer what you already know to SQLiteTake advantage of virtual tables and modules
"Complex SQL concepts explained clearly."
--D. Richard Hipp, creator of SQLite
Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution works.
Topics include:Data Structures and AlgorithmsStrings and TextNumbers, Dates, and TimesIterators and GeneratorsFiles and I/OData Encoding and ProcessingFunctionsClasses and ObjectsMetaprogrammingModules and PackagesNetwork and Web ProgrammingConcurrencyUtility Scripting and System AdministrationTesting, Debugging, and ExceptionsC Extensions
Fully updated for Java SE 8, Java: The Complete Reference, Ninth Edition explains how to develop, compile, debug, and run Java programs. Bestselling programming author Herb Schildt covers the entire Java language, including its syntax, keywords, and fundamental programming principles, as well as significant portions of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. New Java SE 8 features such as lambda expressions, the stream library, and the default interface method are discussed in detail. This Oracle Press resource also offers a solid introduction to JavaFX.
Coverage includes:Data types, variables, arrays, and operators Control statements Classes, objects, and methods Method overloading and overriding Inheritance Interfaces and packages Exception handling Multithreaded programming Enumerations, autoboxing, and annotations The I/O classes Generics Lambda expressions String handling The Collections Framework Networking Event handling AWT and Swing The Concurrent API The Stream API Regular expressions JavaFX JavaBeans Applets and servlets Much, much more
Prolific hacker and author Simon Monk also teaches basic principles to help you use new technologies with Raspberry Pi as its ecosystem continues to develop. This cookbook is ideal for programmers and hobbyists familiar with the Pi through resources, including Getting Started with Raspberry Pi (O’Reilly). Python and other code examples from the book are available on GitHub.Set up your Raspberry Pi and connect to a networkWork with its Linux-based operating systemProgram Raspberry Pi with PythonGive your Pi "eyes" with computer visionControl hardware through the GPIO connectorUse Raspberry Pi to run different types of motorsWork with switches, keypads, and other digital inputsUse sensors to measure temperature, light, and distanceConnect to IoT devices in various waysCreate dynamic projects with Arduino
This book covers:Arrays and lists: the most common data structuresStacks and queues: more complex list-like data structuresLinked lists: how they overcome the shortcomings of arraysDictionaries: storing data as key-value pairsHashing: good for quick insertion and retrievalSets: useful for storing unique elements that appear only onceBinary Trees: storing data in a hierarchical mannerGraphs and graph algorithms: ideal for modeling networksAlgorithms: including those that help you sort or search dataAdvanced algorithms: dynamic programming and greedy algorithms
Ideal for enthusiasts, from students in robotics clubs to professional robotics scientists and engineers, each recipe describes a complete solution using ROS open source libraries and tools. You’ll learn how to complete tasks described in the recipes, as well as how to configure and recombine components for other tasks. If you’re familiar with Python, you’re ready to go.Learn fundamentals, including key ROS concepts, tools, and patternsProgram robots that perform an increasingly complex set of behaviors, using the powerful packages in ROSSee how to easily add perception and navigation abilities to your robotsIntegrate your own sensors, actuators, software libraries, and even a whole robot into the ROS ecosystemLearn tips and tricks for using ROS tools and community resources, debugging robot behavior, and using C++ in ROS
Once you understand how React works, you’ll build a complete custom Whinepad app that helps users rate wines and keep notes. You’ll quickly learn why some developers consider React the key to the web app development puzzle.Set up React and write your first "Hello world" web appCreate and use custom React components alongside generic DOM componentsBuild a data table component that lets you edit, sort, search, and export its contentsUse the JSX syntax extension as an alternative to function callsSet up a lean, low-level build process that helps you focus on ReactBuild a complete custom app that lets you store data on the clientUse ESLint, Flow, and Jest tools to check and test your code as your app evolvesManage communication between components with Flux
Fully updated for Java Platform, Standard Edition 8 (Java SE 8), Java: A Beginner's Guide, Sixth Edition gets you started programming in Java right away. Bestselling programming author Herb Schildt begins with the basics, such as how to create, compile, and run a Java program. He then moves on to the keywords, syntax, and constructs that form the core of the Java language. This Oracle Press resource also covers some of Java's more advanced features, including multithreaded programming, generics, and Swing. Of course, new Java SE 8 features such as lambda expressions and default interface methods are described. An introduction to JavaFX, Java's newest GUI, concludes this step-by-step tutorial.
Designed for Easy Learning:Key Skills & Concepts -- Chapter-opening lists of specific skills covered in the chapter Ask the Expert -- Q&A sections filled with bonus information and helpful tips Try This -- Hands-on exercises that show you how to apply your skills Self Tests -- End-of-chapter quizzes to reinforce your skills Annotated Syntax -- Example code with commentary that describes the programming techniques being illustrated
The book's code examples are available FREE for download.
Puppet provides a way to automate everything from user management to server configuration. You'll learn how Puppet has changed in the latest version, how to use it on a variety of platforms, including Windows, how to work with Puppet modules, and how to use Hiera.
Puppet is a must-have tool for system administrators, and Pro Puppet will teach you how to maximize its capabilities and customize it for your environment.
Install and configure Puppet to immediately start automating tasks and create reporting solutions
Learn insider tricks and techniques to better manage your infrastructure
Become a Puppet expert!
Using Hadoop 2 exclusively, author Tom White presents new chapters on YARN and several Hadoop-related projects such as Parquet, Flume, Crunch, and Spark. You’ll learn about recent changes to Hadoop, and explore new case studies on Hadoop’s role in healthcare systems and genomics data processing.Learn fundamental components such as MapReduce, HDFS, and YARNExplore MapReduce in depth, including steps for developing applications with itSet up and maintain a Hadoop cluster running HDFS and MapReduce on YARNLearn two data formats: Avro for data serialization and Parquet for nested dataUse data ingestion tools such as Flume (for streaming data) and Sqoop (for bulk data transfer)Understand how high-level data processing tools like Pig, Hive, Crunch, and Spark work with HadoopLearn the HBase distributed database and the ZooKeeper distributed configuration service
Written by the developers of Spark, this book will have data scientists and engineers up and running in no time. You’ll learn how to express parallel jobs with just a few lines of code, and cover applications from simple batch jobs to stream processing and machine learning.Quickly dive into Spark capabilities such as distributed datasets, in-memory caching, and the interactive shellLeverage Spark’s powerful built-in libraries, including Spark SQL, Spark Streaming, and MLlibUse one programming paradigm instead of mixing and matching tools like Hive, Hadoop, Mahout, and StormLearn how to deploy interactive, batch, and streaming applicationsConnect to data sources including HDFS, Hive, JSON, and S3Master advanced topics like data partitioning and shared variables
Author Matthew Moodie describes configuration files, as well as administration features like security, auto-deployment, remote deployment, and data sources. He gets right to the point and teaches you to use Tomcat without wasting time on Java or JSP introductions or excess discussion of JSP and Java code.
In addition to basic concepts and administration tasks, Apache Tomcat 7 covers some of the most frequently used advanced features of Tomcat, including security, Apache web server integration, load balancing, and embedding Tomcat server in Java applications.
Finally, through a practical primer, it shows how to integrate and use some of the most popular Java technologies with Apache Tomcat. In summary, Apache Tomcat 7 offers both novice and intermediate Apache Tomcat users a practical and comprehensive guide to this powerful software.
Compare distributed apps (dapps) to web apps
Write Ethereum smart contracts in Solidity
Deploy your own dapp, coin, and blockchain
Work with basic and intermediate smart contracts
Who This Book Is For
Experts will find the advanced sample projects in this book rewarding because of the power of Solidity
If you already know your way around the Android OS and can builda simple Android app in under an hour, this book is for you. Ifyou’re itching to see just how far you can push it anddiscover what Android is really capable of, it’s for you. Andif you’re ready to learn how to build advanced, intuitive,innovative apps that are a blast to use, this book isdefinitely for you.
From custom views and advanced multi-touch gestures, tointegrating online web services and exploiting the latestgeofencing and activity recognition features, ace Androiddeveloper, Erik Hellman, delivers expert tips, tricks andlittle-known techniques for pushing the Android envelope so youcan:Optimize your components for the smoothest user experiencepossibleCreate your own custom ViewsPush the boundaries of the Android SDKMaster Android Studio and GradleMake optimal use of the Android audio, video and graphicsAPIsProgram in Text-To-Speech and Speech RecognitionMake the most of the new Android maps and location APIUse Android connectivity technologies to communicate withremote devicesPerform background processingUse Android cryptography APIsFind and safely use hidden Android APIsCloud-enable your applications with Google Play ServicesDistribute and sell your applications on Google Play Store
Learn how to unleash the power of Android and transform yourapps from good to great in Android Programming: Pushing theLimits.
This book introduces the Kivy language and the necessary components so you can implement a graphical user interface (GUI) and learn techniques to handle events, detect gestures, and control multi-touch actions. You will learn strategies to animate your applications, and obtain interactive, professional-looking, and responsive results. You will be applying this knowledge throughout the book by developing three applications and tackling their diverse programming challenges.
What’s so special about this book?
By covering both the early setup stages and advanced topics, this book suits web administrators who interested in solutions to optimize their infrastructure, whether you are looking into replacing your existing web server software or integrating a new tool to cooperate with applications that are already up and running. If you, your visitors, and your operating system have been disappointed by Apache, this book is exactly what you need.What You Will LearnGet to know the basics of the Nginx configuration: syntax, structure, and semanticsUnderstand the advanced load balancing functionality of Nginx and the newest innovative IO mechanismsCreate virtual host configurations effortlesslyDiscover all the first-party modules: how to enable, configure, and use themEstablish advanced rewrite rules with the Nginx Rewrite moduleSet up Nginx to work with PHP, Python, and more via FastCGIConfigure Nginx to work as frontend for your existing HTTP serverManipulate configuration files with ease and adapt them to various situationsDiscover the common pitfalls and find out how to avoid themIn Detail
Nginx is a lightweight HTTP server designed for high-traffic websites, with network scalability as the primary objective. With the advent of high speed Internet access, short loading times and fast transfer rates have become a necessity. This free, open source solution will either come as a full replacement of other software such as Apache, or stand in front of your existing infrastructure to improve its overall speed.
This book is a detailed guide to setting up Nginx in different ways that correspond to actual production situations: as a standalone server, as a reverse proxy, interacting with applications via FastCGI, and more. In addition, this complete directive reference will be your best friend at all stages of the configuration and maintenance processes.
This book is the perfect companion for both Nginx beginners and experienced administrators. For beginners, it will take you through the complete process of setting up this lightweight HTTP server on your system and configuring its various modules so it does exactly what you need quickly and securely. For more experienced administrators, this book provides different approaches that can help you make the most of your current infrastructure. Nginx can be employed in many situations, whether you are looking to construct an entirely new web-serving architecture or simply want to integrate an efficient tool to optimize your site loading speeds.Style and approach
This tutorial-style book includes detailed instructions on each of the processes it describes, as well as step-by-step tutorials, commented configuration sections, and in-depth module descriptions, so you can make the most of the performance potential offered by Nginx.
If you've already had some experience with MeteorJS but want to learn how to build even better modern web application, this book has been created for you. It provides you with a comprehensive look at one of those most important frameworks being used for the modern web today.What You Will LearnGet to grips with the basics and learn how to build a complete real-time application with MeteorJSFind out how Meteor makes full-stack development simple – become a better developer, fast.Use some of the most effective testing tools in modern web development to troubleshoot, debug and optimize your appFind out how to write custom packages for applications – so you can build your project exactly how you wantIntegrate React and Angular into your projectDesign and develop high quality animations that will give your UI the edgeBuild MeteorJS to serve as REST-based application and reactive systemLearn how to host a MeteorJS application and then scale it for dataFind out how MeteorJS can help you build for mobileLearn how to make sure you implement an effective SEO strategy in your MeteorJS applicationIn Detail
Mastering MeteorJS Application Development shows you how to do even more with MeteorJS – if you're ready to try a comprehensive course through one of the most exciting frameworks in web development today, this is the book you need. Designed to take you through the entire process of building an advanced multipage application with Meteor, you'll be able to bring your web development ideas with surprising ease.
You'll not only learn how Meteor makes web development easier, but also how you can make using Meteor easier, by automating and simplifying tasks so you can be confident you have full control of everything in your workflow – especially everything that could go wrong. From automated testing to integrating other useful frameworks such as Angular and D3, each chapter covers a crucial element in the Meteor development process.
Discover how to integrate animations using Meteor's Blaze, to give your UI designs the edge, and explore reactive programming to effectively harness RESTful systems in your projects. You will also learn how to deploy and scale your application, two crucial aspects of modern development and vital in a changing digital environment with users expecting a product and experience that delivers. With further insights on developing for mobile – and how Meteor can help you tackle the challenges of the trend – and details on incorporating SEO strategies into your application, this book isn't just a code tutorial – it's about creating a product that users love.Style and approach
This book is a practical guide that teaches you different ways to create custom packages, efficient client and server code, and more using Meteor. This book is packed with perfect examples and explanations to help you understand the concepts. With the perfect mix of theory and practical experience, it will equip you to become a professional MeteorJS developer.
Go is a general-purpose programming language with a clean syntax and advanced features, including concurrency. This book provides the one-on-one support you need to get started with the language, with short, easily digestible chapters that build on one another. By the time you finish this book, not only will you be able to write real Go programs, you'll be ready to tackle advanced techniques.Jump into Go basics, including data types, variables, and control structuresLearn complex types, such as slices, functions, structs, and interfacesExplore Go’s core library and learn how to create your own packageWrite tests for your code by using the language’s go test programLearn how to run programs concurrently with goroutines and channelsGet suggestions to help you master the craft of programming
By the end of this book, you will have a good understanding of wearable programming, and be confident enough to write programs for building Android applications that run on Android Wear.
Suggested solutions to the programming projects found at the end of each chapter are made available to instructors at recognized educational institutions. This educational supplement can be found at www.prenhall.com, in the Instructor Resource Center.
This book is aimed at anyone interested in creating impressive data visualization tools using modern graphics hardware. Whether you are a developer, engineer, or scientist, if you are interested in exploring the power of OpenGL for data visualization, this book is for you. While familiarity with C/C++ is recommended, no previous experience with OpenGL is assumed.What You Will LearnInstall, compile, and integrate the OpenGL pipeline into your own projectCreate interactive applications using GLFW to handle user inputs and the Android Sensor framework to detect gestures and motions on mobile devicesUse OpenGL primitives to plot 2-D datasets such as time series dynamicallyRender complex 3D volumetric datasets with techniques such as data slicers and multiple viewpoint projectionRender images, videos, and point cloud data from 3D range-sensing cameras using the OpenGL Shading Language (GLSL)Develop video see-through augmented reality applications on mobile devices with OpenGL ES 3.0 and OpenCVVisualize 3D models with meshes and surfaces using stereoscopic 3D technologyIn Detail
OpenGL is a great multi-platform, cross-language, and hardware-accelerated graphics interface for visualizing large 2D and 3D datasets. Data visualization has become increasingly challenging using conventional approaches as datasets become larger and larger, especially with the Big Data evolution. From a mobile device to a sophisticated high-performance computing cluster, OpenGL libraries provide developers with an easy-to-use interface to create stunning visuals in 3D in real time for a wide range of interactive applications.
This book provides a series of easy-to-follow, hands-on tutorials to create appealing OpenGL-based visualization tools with minimal development time. We will first illustrate how to quickly set up the development environment in Windows, Mac OS X, and Linux. Next, we will demonstrate how to visualize data for a wide range of applications using OpenGL, starting from simple 2D datasets to increasingly complex 3D datasets with more advanced techniques. Each chapter addresses different visualization problems encountered in real life and introduces the relevant OpenGL features and libraries in a modular fashion.
By the end of this book, you will be equipped with the essential skills to develop a wide range of impressive OpenGL-based applications for your unique data visualization needs, on platforms ranging from conventional computers to the latest mobile/wearable devices.Style and approach
This is an easy-to-follow, comprehensive Cookbook showing readers how to create an application with real-time, interactive data visualization in stereoscopic 3D. Each topic is explained in a step-by-step format. A range of hot topics is included, including data visualization on mobile and wearable platforms.