Table of Contents
Chapter 1 Software Engineering of Embedded and Real-Time Systems
Chapter 2 Embedded Systems Hardware/Software Co-Development
Chapter 3 Software Modeling for Embedded Systems
Chapter 4 Software Design Architecture and Patterns for Embedded Systems
Chapter 5 Real-Time Building Blocks: Events and Triggers
Chapter 6 Hardware’s Interface to Embedded Software
Chapter 7 Embedded Software Programming and Implementation Guidelines
Chapter 8 Embedded Operating Systems
Chapter 9 Software Reuse By Design in Embedded Systems
Chapter 10 Software Performance Engineering for Embedded Systems
Chapter 11 Optimizing Embedded Software for Performance
Chapter 12 Optimizing Embedded Software for Memory
Chapter 13 Optimizing Embedded Software for Power
Chapter 14 Human Factors and User Interface Design for Embedded Systems
Chapter 15 Embedded Software Quality, Integration and Testing Techniques
Chapter 16 Software Development Tools for Embedded Systems
Chapter 17 Multicore Software Development for Embedded Systems
Chapter 18 Safety-Critical Software Development
Chapter 19 Intellectual Property
Chapter 20 Managing Embedded Software Development
Chapter 21 Agile Development for Embedded Systems
Chapter 22 Embedded Software for Automotive Applications
Chapter 23 Programming for I/O and Storage
Chapter 24 Embedded Software for Networking Applications
Chapter 25 Linux for Embedded Systems
Table of Contents
Section I: Introduction to Embedded Systems
Chapter 1: A Systems Engineering Approach to Embedded Systems Design
Chapter 2: Know Your Standards
Section II: Embedded Hardware
Chapter 3: Embedded Hardware Building Blocks and the Embedded Board
Chapter 4: Embedded Processors
Chapter 5: Board Memory
Chapter 6: Board I/O (Input/Output)
Chapter 7: Board Buses
Section III: Embedded Software Introduction
Chapter 8: Device Drivers
Chapter 9: Embedded Operating Systems
Chapter 10: Middleware and Application Software
Section IV: Putting It All Together: Design and Development
Chapter 11: Defining the System-Creating the Architecture and Documenting the Design
Chapter 12: The Final Phases of Embedded Design: Implementation and Testing
Appendix A: Projects and Exercises
Appendix B: Schematic Symbols
Appendix C: Acronyms and Abbreviations
Appendix D: Glossary
Features:
Several areas of research being done in advanced DSP technology
Industry case studies on DSP systems development
DSP software development tools available for download and evaluation
DSP for Embedded and Real-Time Systems is the reference for both the beginner and experienced, covering most aspects of using today’s DSP techniques and technologies for designing and implementing an optimal embedded system.
The only complete reference which explains all aspects of using DSP in embedded systems development making it a rich resource for every day use
Covers all aspects of using today’s DSP techniques and technologies for designing and implementing an optimal embedded system
Enables the engineer to find solutions to all the problems they will face when using DSP
Table of Contents
Chapter 1 Introduction to Digital Signal Processing
Chapter 2 Overview of Embedded and Real Time Systems
Chapter 3 Overview of Embedded Systems Lifecycle Development Using DSP
Chapter 4 Programmable DSP Architectures
Chapter 5 DSP Hardware components and FPGA
Chapter 6 The Hardware/Software Continuum for DSP
Chapter 7 Overview of Digital Signal Processing Algorithms
Chapter 8 High-Level Design Tools for Complex DSP Applications
Chapter 9 Benchmarking and Profiling DSP Systems
Chapter 10 Optimizing DSP Software – High Level Languages and Programming Models
Chapter 11 Optimizing DSP Software – Code Optimization
Chapter 12 Optimizing DSP Software – Memory Optimization
Chapter 13 Optimizing DSP Software – Power Optimization
Chapter 14 Real-Time Operating Systems Using DSP
Chapter 15 Managing the DSP Software Development Effort
Chapter 16 Multicore Software Development for DSP applications
Chapter 17 Developing and Debugging DSP Systems
Chapter 18 DSP Algorithm Development, Rules and Guidelines
Since it’s creation in 2009, Node.js has grown into a powerful and increasingly popular asynchronous-development framework for creating highly-scalable network applications using JavaScript. Respected companies such as Dow Jones and LinkedIn are among the many organizations to have seen Node’s potential and adopted it into their businesses.
Pro Node.js for Developers provides a comprehensive guide to this exciting new technology. We introduce you to Node – what it is, why it matters and how to set it up – before diving deeply into the key concepts and APIs that underpin its operation.
Building upon your existing JavaScript skills you’ll be shown how to use Node.js to build both Web- and Network-based applications, to deal with data sources, capture events and deal with child processes to create robust applications that will work well in a wide range of circumstances.
Once you’ve mastered these skills we’ll go further, teaching you more advanced software engineering skills that will give your code a professional edge. You’ll learn how to create easily reusable modules that will save you time through code reuse, to log and debug your applications quickly and effectively and to write code that will scale easily and reliably as the demand for your application grows.
What youll learn
Install, configure and deploy Node.js apps effectively
Understand the Node.js asynchronous programming model in detail
Create both web and network-based Node.js applications with ease
Learn to work effectively with varied data sources and file types
Discover advanced software engineering concepts that will will save you time and promote code reuse
Who this book is for
This book is for developers who already have a working knowledge of JavaScript and are interested in adopting Node.js into their projects. All other concepts will be introduced from first-principals.
Table of Contents
Chapter 1. Getting Started
Chapter 2. The Node Module System
Chapter 3. The Node Programming Model
Chapter 4. Events and Timers
Chapter 5. The Command Line Interface
Chapter 6. The File System
Chapter 7. Streams
Chapter 8. Binary Data
Chapter 9. Executing Code
Chapter 10. Network Programming
Chapter 11. HTTP
Chapter 12. The Express Framework
Chapter 13. The Real-Time Web
Chapter 14. Databases
Chapter 15. Logging, Debugging, and Testing
Chapter 16. Application Scaling
Appendix A. JavaScript Object Notation
Boost libraries are developed by professionals, tested on multiple platforms and processor architectures, and contain reliable solutions for a wide range of tasks. This Cookbook takes you on a journey of simplifying the process of application development and guides you through writing perfect applications fast.
“Boost C++ Application Development Cookbook” provides you with a number of clear step-by-step recipes that will help you take advantage of the real power of Boost and C++, while giving you a good grounding in using it in any project.
“Boost C++ Application Development Cookbook” looks at the Boost libraries, and breaks down the mystery and confusion about which library to use in which situation. It will take you through a number of clear, practical recipes that will help you to take advantage of the readily available solutions.
Boost C++ Application Development Cookbook starts with teaching the basics of Boost libraries that are now mostly part of C++11 and leave no chance for memory leaks. Managing resources will become a piece of cake. We’ll see what kind of work can be done at compile time and what Boost containers can do. Do you think multithreading is a burden? Not with Boost. Think writing portable and fast servers is impossible? You’ll be surprised! Compilers and operating systems differ too much? Not with Boost. From manipulating images to graphs, directories, timers, files, strings – everyone will find an interesting topic.
You will learn everything for the development of high quality fast and portable applications. Write a program once and then you can use it on Linux, Windows, MacOS, Android operating systems.
What you will learn from this book
Get familiar with new data types for everyday use
Use pointers to manage resources
Get to grips with compile-time computations and assertions
Use Boost libraries for multithreading
Learn about Parallel execution of different task
Perform common string-related tasks using Boost libraries
Split all the processes, computations, and interactions to tasks and process them independently
Learn the basics of working with graphs
Explore different helper macros used to detect compiler, platform and Boost features
Use selected C++11 features in C++03
Approach
This book follows a cookbook approach, with detailed and practical recipes that use Boost libraries.
Who this book is written for
This book is great for developers new to Boost, and who are looking to improve their knowledge of Boost and see some undocumented details or tricks. It’s assumed that you will have some experience in C++ already, as well being familiar with the basics of STL. A few chapters will require some previous knowledge of multithreading and networking. You are expected to have at least one good C++ compiler and compiled version of Boost (1.53.0 or later is recommended), which will be used during the exercises within this book.
Table of Contents
Chapter 1: Starting to Write Your Application
Chapter 2: Converting Data
Chapter 3: Managing Resources
Chapter 4: Compile-time Tricks
Chapter 5: Multithreading
Chapter 6: Manipulating Tasks
Chapter 7: Manipulating Strings
Chapter 8: Metaprogramming
Chapter 9: Containers
Chapter 10: Gathering Platform and Compiler Information
Chapter 11: Working with the System
Chapter 12: Scratching the Tip of the Iceberg
Learn different testing techniques and features of Visual Studio 2012 with detailed explanations and real-time samples
Overview
Using Test Manager and managing test cases and test scenarios
Exploratory testing using Visual Studio 2012
Learn unit testing features and coded user interface testing
Advancement in web performance testing and recording of user scenarios
In Detail
Testing is one of the main phases in the software development lifecycle. Managing the test scenarios, test cases, defects, and linking each one of these is bit of a challenge without using any tools. For frequently changing businesses, it is essential to address testing requirements by matching the pace of the business. This can only be achieved through automation of the possible testing scenarios to reduce the turnaround time of testing.
Software Testing Using Visual Studio 2012 is a practical, hands-on guide that provides a number of clear, step-by-step exercises, which will help you to take advantage of the new features and real power of Visual Studio 2012.
Software Testing Using Visual Studio 2012 starts with the basics of testing types and managing the tests using Test Explorer and a few other tools. Practical examples are added to help you understand the usage of various tools and features in a better way. Software Testing Using Visual Studio 2012 is written from a developer point of view and helps you take advantage of the unit testing features and customize the tests by generating the code and fine-tuning it as per your needs. The Test Manager is a standalone tool which is part of the Visual Studio tools family and takes care of test management. Software Testing Using Visual Studio 201 covers the usage of the test plan, test suite, manual testing, and exploratory testing using Test Manger and managing these aspects using these tools.
Software Testing Using Visual Studio 2012 also covers the recording of user actions and creating automated tests out of it. This book covers generating and adding parameters to the recording and replacing it at runtime, adding validation and extraction rules to the tests, running the tests using command line commands, looking at the details of test results, and configuring the running the load test out of web performance or unit tests.
This book helps you to understand the complete testing features and how to make use of automation features as well. It will appeal to both developers and testers.
What you will learn from this book
Discover different testing types as part of Visual Studio 2012
Use the test plan, test suite, manual testing ,and exploratory testing
Record user interface actions and generating code out of it to customize the test
Get to grips with unit testing features and data-driven unit tests to automate the tests for multiple scenarios
Add extraction rules, validation rules, and custom rules to the recorded requests and add parameters to the requests
Create and configure load tests with the help of a web performance test or unit test
Analyze the detailed view of test results
Execute the existing tests at the command line using the MSTest command line utility
Report on the test results and publish the test results
Approach
We will be setting up a sample test scenario, then we’ll walk through the features available to deploy tests.
Table of Contents
Chapter 1: Visual Studio 2012 Test Types
Chapter 2: Test Plan, Test Suite, and Manual Testing
Chapter 3: Automated Tests
Chapter 4: Unit Testing
Chapter 5: Web Performance Test
Chapter 6: Advanced Web Testing
Chapter 7: Load Testing
Chapter 8: Ordered and Generic Tests
Chapter 9: Managing and Configuring Tests
Chapter 10: A Command Line
Chapter 11: Working with Test Results
Chapter 12: Exploratory Testing and Reporting
Chapter 13: Test and Lab Center
Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)
Today’s Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then use the uncovered patterns to predict future data. This textbook offers a comprehensive and self-contained introduction to the field of machine learning, based on a unified, probabilistic approach. The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra as well as discussion of recent developments in the field, including conditional random fields, L1 regularization, and deep learning. The book is written in an informal, accessible style, complete with pseudo-code for the most important algorithms. All topics are copiously illustrated with color images and worked examples drawn from such application domains as biology, text processing, computer vision, and robotics. Rather than providing a cookbook of different heuristic methods, the book stresses a principled model-based approach, often using the language of graphical models to specify models in a concise and intuitive way. Almost all the models described have been implemented in a MATLAB software package–PMTK (probabilistic modeling toolkit)–that is freely available online. The book is suitable for upper-level undergraduates with an introductory-level college math background and beginning graduate students.
Ruby is the fastest growing and most exciting dynamic language out there. If you need to get working programs delivered fast, you should add Ruby to your toolbox.
This book is the only complete reference for both Ruby 1.9 and Ruby 2.0, the very latest version of Ruby.
2013 marks the 20th anniversary of the Ruby language. We’re proud that throughout its history, we’ve continued to cover the latest version of Ruby.
Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? Are you using Rails, and want to dig deeper into the underlying Ruby language? If so, then we’ve got a language and book for you!
Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. Like Smalltalk, it is dynamically typed (as opposed to Java or C++), but unlike Smalltalk, Ruby features the same conveniences found in modern scripting languages such as Perl and Python.
The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of intelligent, forward-thinking programmers.
The Pickaxe contains four major sections:
An acclaimed tutorial on using Ruby. The definitive reference to the language. Complete documentation of all built-in classes, modules, and methods. Complete descriptions of all 97 standard libraries.
This is the reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including all the new and changed methods introduced by Ruby 1.9, 1.9.2, 1.9.3, and 2.0). It also includes all the new and changed syntax and semantics introduced since Ruby 1.8. Learn about the new parameter passing rules, local variable scoping in blocks, fibers, and the new block declaration syntax, among other exciting new features.
About Ruby 2.0
Ruby 2.0 is a minor update to Ruby 1.9, unlike the more major updates from Ruby 1.8 to Ruby 1.9.
The major language changes in Ruby 2.0 are the addition of keyword arguments and the change to use UTF-8 as the default source file encoding.
There are a number of additions to the standard library, including:
@Enumerator::Lazy@, which adds support for lazy access to potentially infinite lists. Refinements allow you to encapsulate changes to third-party classes, and scope their application to individual source files, preventing your changes from polluting the global application.
You’ll also find that Ruby 2 is faster, and has memory management improvements that make it more server-friendly.
All told, there are over 110 sections of the book that have been flagged and cross-linked to indicate 2.0 content.
What You Need
This book assumes you have a basic understanding of object-oriented programming.
In general, Ruby programmers tend to favor the the command line for running their code, and they tend to use text editors rather than IDEs.
* Ruby runs on Windows, Linux, and Macs.
Visual Basic.NET (VB.NET) is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic (VB), which is implemented on the .NET Framework. Microsoft currently supplies two major implementations of Visual Basic: Microsoft Visual Studio (which is commercial software) and Microsoft Visual Studio Express (which is free of charge).
Forgoing the large amounts of programming codes found in most database programming books, Practical Database Programming with Visual Basic.NET shows students and professionals both how to develop professional and practical database programs in a Visual Basic.NET environment by using Visual Studio.NET Data Tools and Wizards related to ADO.NET 4.0, and how to apply codes that are auto-generated by solely using Wizards. The fully updated Second Edition:
Covers both fundamentals and advanced database programming techniques
Introduces three popular database systems with practical examples including MS Access, SQL Server 2008, and Oracle
Features more than fifty sample projects with detailed illustrations and explanations to help students understand key techniques and programming technologies
Includes downloadable programming codes and exercise questions
This book provides undergraduate and graduate students as well as database programmers and software engineers with the necessary tools to handle the database programming issues in the Visual Studio.NET environment.