Rethinking the Internet of ThingsOver the next decade, most devices connected to the Internet will not be used by people in the familiar way that personal computers, tablets and smart phones are. Billions of interconnected devices will be monitoring the environment, transportation systems, factories, farms, forests, utilities, soil and weather conditions, oceans and resources.
Many of these sensors and actuators will be networked into autonomous sets, with much of the information being exchanged machine-to-machine directly and without human involvement. Machine-to-machine communications are typically terse. Most sensors and actuators will report or act upon small pieces of information - chirps. Burdening these devices with current network protocol stacks is inefficient, unnecessary and unduly increases their cost of ownership. ...
Python Algorithms, 2nd EditionPython Algorithms, 2nd Edition explains the Python approach to algorithm analysis and design. Written by Magnus Lie Hetland, author of Beginning Python, this book is sharply focused on classical algorithms, but it also gives a solid understanding of fundamental algorithmic problem-solving techniques.
The book deals with some of the most important and challenging areas of programming and computer science in a highly readable manner. It covers both algorithmic theory and programming practice, demonstrating how theory is reflected in real Python programs. Well-known algorithms and data structures that are built into the Python language are explained, and the user is shown how to implement and evaluate others. ...
Embedded Firmware SolutionsEmbedded Firmware Solutions is the perfect introduction and daily-use field guide--for the thousands of firmware designers, hardware engineers, architects, managers, and developers--to Intel's new firmware direction (including Quark coverage), showing how to integrate IntelĀ® Architecture designs into their plans.
Featuring hands-on examples and exercises using Open Source codebases, like Coreboot and EFI Development Kit (tianocore) and Chromebook, this is the first book that combines a timely and thorough overview of firmware solutions for the rapidly evolving embedded ecosystem with in-depth coverage of requirements and optimization. ...
Learning Material DesignGoogle's Material Design language has taken the web development and design worlds by storm. Now available on many more platforms than Android, Material Design uses color, light, and movements to not only generate beautiful interfaces, but to provide intuitive navigation for the user.
Learning Material Design will teach you the fundamental theories of Material Design using code samples to put these theories into practice.
Focusing primarily on Android Studio, you'll create mobile interfaces using the most widely used and powerful material components, such as sliding drawers and floating action buttons. Each section will introduce the relevant Java classes and APIs required to implement these components. With the rules regarding structure, layout, iconography, and typography covered, we then move into animation and transition, possibly Material Design's most powerful concept, allowing complex hierarchies to be displayed simply and stylishly. ...
Scala High Performance ProgrammingScala is a statically and strongly typed language that blends functional and object-oriented paradigms. It has experienced growing popularity as an appealing and pragmatic choice to write production-ready software in the functional paradigm. Scala and the functional programming paradigm enable you to solve problems with less code and lower maintenance costs than the alternatives. However, these gains can come at the cost of performance if you are not careful.
Scala High Performance Programming arms you with the knowledge you need to create performant Scala applications. Starting with the basics of understanding how to define performance, we explore Scala's language features and functional programming techniques while keeping a close eye on performance throughout all the topics.
We introduce you as the newest software engineer at a fictitious financial trading company, named MV Trading. As you learn new techniques and approaches to reduce latency and improve throughput, you'll app ...
Learn Java for Android Development, 3rd EditionLearn Java for Android Development, Third Edition, is an update of a strong selling book that now includes a primer on Android app development (in Chapter 1 and Appendix C, which is distributed in the book's code archive). This book teaches programmers the essential Java language skills necessary for effectively picking up and using the new Android SDK platform to build mobile, embedded, and even PC apps, especially game apps.
Android development is hot, and many programmers are interested in joining the fun. However, because this technology is based on Java, you should first obtain a solid grasp of the Java language and its APIs in order to improve your chances of succeeding as an effective Android app developer. This book helps you do that. ...
Modern JavaScript ApplicationsOver the years, JavaScript has become vital to the development of a wide range of applications with different architectures. But JS moves lightning fast, and it's easy to fall behind. Modern JavaScript Applications is designed to get you exploring the latest features of JavaScript and how they can be applied to develop high-quality applications with different architectures.
Begin by creating a single page application that builds on the innovative MVC approach using AngularJS, then move forward to develop an enterprise-level application with the microservices architecture using Node to build web services. After that, shift your focus to network programming concepts as you build a real-time web application with websockets. Learn to build responsive, declarative UIs with React and Bootstrap, and see how the performance of web applications can be enhanced using Functional Reactive Programming (FRP). Along the way, explore how the power of JavaScript can be increased multi-fold with high ...
LibGDX Cross-Platform Development BlueprintsLibGDX is a very popular open source game framework for the Java programming language. It features deployment to multiple platforms with the same code base and it is very fast. Its vast amount of features makes it very easy to learn and master game development without knowing the low-level details.
LibGDX Cross-platform Development Blueprints teaches you the concepts of game development using the LibGDX framework as you make four complete games.
You'll start with setting up the environment, then move on to advanced concepts such as collision detection, memory optimization, and more. The first game is Monty Hall, where you'll learn how to set up LibGDX and use simple graphics. Then, you'll get to know more about concepts such as animation, game sounds, and scoring by developing a Whack a Mole game. This will set up the base for a Bounce the Ball game, where you'll get to grips with advanced concepts such as movements and collisions based on physics. Finally, the Dungeon Bob game w ...
Learning ElixirElixir, based on Erlang's virtual machine and ecosystem, makes it easier to achieve scalability, concurrency, fault tolerance, and high availability goals that are pursued by developers using any programming language or programming paradigm. Elixir is a modern programming language that utilizes the benefits offered by Erlang VM without really incorporating the complex syntaxes of Erlang.
Learning to program using Elixir will teach many things that are very beneficial to programming as a craft, even if at the end of the day, the programmer isn't using Elixir. This book will teach you concepts and principles important to any complex, scalable, and resilient application. Mostly, applications are historically difficult to reason about, but using the concepts in this book, they will become easy and enjoyable. It will teach you the functional programing ropes, to enable them to create better and more scalable applications, and you will explore how Elixir can help you achieve new programmi ...
Ubuntu Server EssentialsUbuntu is a Debian-based Linux operating system built on top of the Debian architecture. It is used to make operating systems for multiple platforms, including phones, desktops, TVs and mobiles. It has made some serious progress in the realms of efficiency and user friendliness.
With evolving technology trends, demands on software have changed, with more and more skilled users. Over the past few years, services such as Facebook, Twitter, and push notifications on smartphones mean that users are used to being up to date with everything that happens all the time. With SignalR, the applications stay connected and will generate notifications when something happens either from the system or by other users. This provides new opportunities for the system administrators, to enter this new and exciting world of real-time application development.
This is a concise and a cost-friendly guide, packed with up-to-date essentials on Ubuntu Server fundamentals. ...