TCP/IP Lean: Web Servers for Embedded SystemsJeremy Bentham  
More Details

Internet programming demystified! This is a hands-on guide to TCP/IP networking that includes platform-independent source code to a simple TCP/IP stack - a lean version that is easier to present and efficient enough to use in embedded applications. Create

Implement an embedded TCP/IP stack that supports a Web server capable of providing dynamic graphics. In this new edition, the Web server is ported to the PIC16F877 and updated to work over an ethernet connection. Complete source code is provided and a fully described demonstration port is presented.

Python Recipes Handbook: A Problem-Solution ApproachJoey Bernard  
More Details

Learn the code to write algorithms, numerical computations, data analysis and much more using the Python language: look up and re-use the recipes for your own Python coding. This book is your handy code cookbook reference. Whether you're a maker, game developer, cloud computing programmer and more, this is a must-have reference for your library.

Python Recipes Handbook gives you the most common and contemporary code snippets, using pandas (Python Data Analysis Library), NumPy, and other numerical Python packages.

What You'll LearnCode with the pandas (Python Data Analysis Library)Work with the various Python algorithms useful for today's big data analytics and cloud applicationsUse NumPy and other numerical Python packages and code for doing various kinds of analysisDiscover Python's new popular modules, packages, extensions and templates library

Who This Book Is ForThis handy reference is for those with some experience with Python.

Grokking Algorithms: An illustrated guide for programmers and other curious peopleAditya Bhargava  
More Details


Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python.

Learning about algorithms doesn't have to be boring! Get a sneak peek at the fun, illustrated, and friendly examples you'll find in Grokking Algorithms on Manning Publications' YouTube channel.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology

An algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to understand them but refuse to slog through dense multipage proofs, this is the book for you. This fully illustrated and engaging guide makes it easy to learn how to use the most important algorithms effectively in your own programs.

About the Book

Grokking Algorithms is a friendly take on this core computer science topic. In it, you'll learn how to apply common algorithms to the practical programming problems you face every day. You'll start with tasks like sorting and searching. As you build up your skills, you'll tackle more complex problems like data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them.

What's InsideCovers search, sort, and graph algorithmsOver 400 pictures with detailed walkthroughsPerformance trade-offs between algorithmsPython-based code samples

About the Reader

This easy-to-read, picture-heavy introduction is suitable for self-taught programmers, engineers, or anyone who wants to brush up on algorithms.

About the Author

Aditya Bhargava is a Software Engineer with a dual background in Computer Science and Fine Arts. He blogs on programming at

Table of Contents

Introduction to algorithmsSelection sortRecursionQuicksortHash tablesBreadth-first searchDijkstra's algorithmGreedy algorithmsDynamic programmingK-nearest neighbors

Robot Operating System Cookbook: Over 70 recipes to help you master advanced ROS conceptsKumar Bipin  
More Details

Leverage the power of ROS to build exciting collaborative robots.Key Features Delve into an open source, meta-operating system for your robotGet acquainted with tools and libraries for building and running code on multiple platformsUse Gazebo to model your robot and create a virtual environmentBook Description

This book will leverage the power of ROS with an introduction to its core and advanced concepts through exciting recipes. You will get acquainted with the use of different synchronous and asynchronous communication methods, including messages, services, and actions. You will learn how to use the various debugging and visualization tools used in development and how to interface sensors and actuators with the ROS framework.

Firstly, you will get to grips with ROS simulation frameworks, such as Gazebo and RotorS for modeling and simulating any physical robot and virtual environment. You will also cover mobile robotics, micro-aerial vehicles, and robotic arms, which are the leading branches of robotic applications. Robot Operating System Cookbook will also guide you in the development of an autonomous navigation framework for both mobile robots and micro-aerial vehicles.

Finally, you will explore ROS-Industrial, an open source project that extends the advanced capabilities of ROS software to manufacturing industries. What you will learn Explore advanced concepts, such as ROS pluginlib, nodelets, and actionlibWork with ROS visualization, profiling, and debugging toolsGain experience in robot modeling and simulation using GazeboUnderstand the ROS Navigation Stack for mobile robotsConfigure a MoveIt! package for a manipulator robotDevelop an autonomous navigation framework for MAV using ORB SLAM and MoveItIntegrate sensors, actuators, and robots into the ROS ecosystemGet acquainted with the ROS-Industrial package with hardware support, capabilities, and applicationsWho This Book Is For

If you're a researcher or engineer with an interest in the problems, solutions, and future research issues that you may encounter in the development of robotic applications, this book is for you. Basic knowledge of C++ and Python programming with the GNU/Linux environment is strongly recommended to assist with understanding the key concepts covered in the book. Table of Contents Getting Started with ROSROS Architecture and Concepts-IROS Architecture and Concepts- IIROS Visualization and Debugging ToolsAccess the Sensors and Actuators through the ROSRobot Modeling and SimulationMobile Robot in ROSRobotic Arm in ROSMicro Aerial Vehicle in ROSROS-Industrial (ROS-I)

Learn Prolog Now!Patrick Blackburn, Johan Bos, Kristina Striegnitz  
More Details

Prolog is a programming language, but a rather unusual one. ``Prolog'' is short for ``Programming with Logic'', and the link with logic gives Prolog its special character. At the heart of Prolog lies a surprising idea: don't tell the computer what to do. Instead, describe situations of interest, and compute by asking questions. Prolog will logically deduce new facts about the situations and give its deductions back to us as answers. Why learn Prolog? For a start, its ``say what the problem is, rather than how to solve it'' stance, means that it is a very high level language, good for knowledge rich applications such as artificial intelligence, natural language processing, and the semantic web. So by studying Prolog, you gain insight into how sophisticated tasks can be handled computationally. Moreover, Prolog requires a different mindset. You have to learn to see problems from a new perspective, declaratively rather than procedurally. Acquiring this mindset, and learning to appreciate the links between logic and programming, makes the study of Prolog both challenging and rewarding. Learn Prolog Now! is a practical introduction to this fascinating language. Freely available as a web-book since 2002 (see Learn Prolog Now! has became one of the most popular introductions to the Prolog programming language, an introduction prized for its clarity and down-to-earth approach. It is widely used as a textbook at university departments around the world, and even more widely used for self study. College Publications is proud to present here the first hard-copy version of this online classic. Carefully revised in the light of reader's feedback, and now with answers to all the exercises, here you will find the essential material required to help you learn Prolog now.

Swift EssentialsDr Alex Blewitt  
More Details

Get up and running lightning fast with this practical guide to building applications with SwiftAbout This Book Rapidly learn how to program Apple's newest programming language, Swift, from the basics through to working applicationsCreate graphical iOS applications using Xcode and storyboardBuild a network client for GitHub repositories, with full source code on GitHubWho This Book Is For

Whether you are a seasoned Objective-C developer or new to the Xcode platform, Swift Essentials will provide you with all you need to know to get started with the language. Prior experience with iOS development is not necessary, but will be helpful to get the most out of the book. In Detail

Swift is a new and powerful programming language that represents an essential new programming tool for iOS and OSX applications and builds upon the power of Objective-C while streamlining the developer experience.

Swift Essentials is a fast-paced, practical guide showing you the quickest way to put Swift to work in the real world. It guides you concisely through the basics of syntax and development before pushing ahead to explore Swift's higher features through practical programming projects.

By the end of the book, you will be able to use Xcode's graphical interface builder, create interactive applications, and communicate with network services.

OpenGLOpenGL Architecture Review Board, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis  
More Details

OpenGL is a powerful software interface for graphics hardware that allows graphics programmers to produce high-quality color images of 3D objects. The functions in the OpenGL library enable programmers to build geometric models, view models interactively in 3D space, control color and lighting, manipulate images, and perform such tasks as alpha blending, antialiasing, depth cueing, and texture mapping.

The OpenGL Reference Manual, Second Edition, documents all OpenGL functions, including brand new features recently approved by the OpenGL Architecture Review Board (ARB) for inclusion in OpenGL, Version 1.1. The ARB is an industry consortium responsible for defining OpenGL, composed of such industry leaders as Digital Equipment Corporation, Evans & Sutherland, Hewlett-Packard, Intel, IBM, Intergraph, Microsoft, Sun Microsystems, and Silicon Graphics.

Each reference page fully describes: C specifications, relevant parameters, the effects of functions, possible errors generated by functions, associated effects, Reference pages for the OpenGL Utility Library (GLU) and the OpenGL extension to the X Window System (GLX) are included in this manual.

Practical OpenCVSamarth Brahmbhatt  
More Details

Practical OpenCV is a hands-on project book that shows you how to get the best results from OpenCV, the open-source computer vision library.

Computer vision is key to technologies like object recognition, shape detection, and depth estimation. OpenCV is an open-source library with over 2500 algorithms that you can use to do all of these, as well as track moving objects, extract 3D models, and overlay augmented reality. It's used by major companies like Google (in its autonomous car), Intel, and Sony; and it is the backbone of the Robot Operating System’s computer vision capability. In short, if you're working with computer vision at all, you need to know OpenCV.

With Practical OpenCV, you'll be able to:

Get OpenCV up and running on Windows or Linux.Use OpenCV to control the camera board and run vision algorithms on Raspberry Pi.Understand what goes on behind the scenes in computer vision applications like object detection, image stitching, filtering, stereo vision, and more.Code complex computer vision projects for your class/hobby/robot/job, many of which can execute in real time on off-the-shelf processors.Combine different modules that you develop to create your own interactive computer vision app.

What you’ll learn The ins and outs of OpenCV programming on Windows and LinuxTransforming and filtering imagesDetecting corners, edges, lines, and circles in images and videoDetecting pre-trained objects in images and videoMaking panoramas by stitching images togetherGetting depth information by using stereo camerasBasic machine learning techniquesBONUS: Learn how to run OpenCV on Raspberry PiWho this book is for

This book is for programmers and makers with little or no previous exposure to computer vision. Some proficiency with C++ is required. Table of Contents Part 1: Getting comfortable

Chapter 1: Introduction to Computer Vision and OpenCV

Chapter 2: Setting up OpenCV on your computer

Chapter 3: CV Bling – OpenCV inbuilt demos

Chapter 4: Basic operations on images and GUI windows

Part 2: Advanced computer vision problems and coding them in OpenCV

Chapter 5: Image filtering

Chapter 6: Shapes in images

Chapter 7: Image segmentation and histograms

Chapter 8: Basic machine learning and keypoint-based object detection

Chapter 9: Affine and Perspective transformations and their applications to image panoramas

Chapter 10: 3D geometry and stereo vision

Chapter 11: Embedded computer vision: Running OpenCV programs on the Raspberry Pi

Prolog Programming for Artificial IntelligenceIvan Bratko  
More Details

B> This best-selling guide to Prolog has been fully revised and extended to provide an even greater range of applications, enhancing its value as a stand-alone guide to Prolog, artificial intelligence, or AI programming. Ivan Bratko discusses natural language processing with grammar rules, planning, and machine learning. The coverage of meta-programming includes meta-interpreters and object-oriented programming in Prolog. The new edition includes coverage of: constraint logic programming; qualitative reasoning; inductive logic programming; recently developed algorithms; belief networks for handling uncertainty; and a major update on machine learning. This book is aimed at programmers who need to learn AI programming.

Embedded Controllers: 80186, 80188, and 80386EXBarry B. Brey  
More Details

This is the first book that deals with the programming and interfacing aspects of the embedded microprocessor family that has gained wide application in many areas of electronics, communications, and control systems. The book uses the Microsoft Macro assembler program (MASM) that develops many example programming applications using not only the 80186/80188 and 80386EX, but all the Intel family members from the 80486 through the Pentium Pro processor and contains hundreds of applications that can be executed on the personal computer.