Take a look at our Buyer's Guides books. Shulph carries a great selection of Buyer's Guides books, and we are always adding more.
A practical guide for developing end-to-end serverless microservices in Python for developers, DevOps, and architects. Key Features Create a secure, cost-effective, and scalable serverless data API Use identity management and authentication for a user-specific and secure web application Go beyond traditional web hosting to explore the full range of cloud hosting options Book Description Over the last few years, there has been a massive shift from monolithic architecture to microservices, thanks to their small and independent deployments that allow increased flexibility and agile delivery. Traditionally, virtual machines and containers were the principal mediums for deploying microservices, but they involved a lot of operational effort, configuration, and maintenance. More recently, serverless computing has gained popularity due to its built-in autoscaling abilities, reduced operational costs, and increased productivity. Building Serverless Microservices in Python begins by introducing you to serverless microservice structures. You will then learn how to create your first serverless data API and test your microservice. Moving on, you'll delve into data management and work with serverless patterns. Finally, the book introduces you to the importance of securing microservices. By the end of the book, you will have gained the skills you need to combine microservices with serverless computing, making their deployment much easier thanks to the cloud provider managing the servers and capacity planning. What you will learn Discover what microservices offer above and beyond other architectures Create a serverless application with AWS Gain secure access to data and resources Run tests on your configuration and code Create a highly available serverless microservice data API Build, deploy, and run your serverless configuration and code Who this book is for If you are a developer with basic knowledge of Python and want to learn how to build, test, deploy, and secure microservices, then this book is for you. No prior knowledge of building microservices is required.
A comprehensive guide with curated recipes to help you gain a deeper understanding of modern C. Key Features Learn how to make your applications swift and robust by leveraging powerful features of C Understand the workings of arrays, strings, functions, and more down to how they operate in memory Master process synchronization during multi-tasking and server-client process communication Book Description C is a high-level language that's popular among developers. It enables you to write drivers for different devices, access machine-level hardware, apply dynamic memory allocation, and much more. With self-contained tutorials, known as recipes, this book will guide you in dealing with C and its idiosyncrasies and help you benefit from its latest features. Beginning with common tasks, each recipe addresses a specific problem followed by explaining the solution to get you acquainted with what goes on under the hood. You will explore core concepts of the programming language, including how to work with strings, pointers, and single and multi-dimensional arrays. You will also learn how to break a large application into small modules by creating functions, handling files, and using a database. Finally, the book will take you through advanced concepts such as concurrency and interprocess communication. By the end of this book, you'll have a clear understanding and deeper knowledge of C programming, which will help you become a better developer. What you will learn Manipulate single and multi-dimensional arrays Perform complex operations on strings Understand how to use pointers and memory optimally Discover how to use arrays, functions, and strings to make large applications Implement multitasking using threads and process synchronization Establish communication between two or more processes using different techniques Store simple text in files and store data in a database Who this book is for If you're a programmer with basic experience in C and want to leverage its features through modern programming practices, then this book is for you.
A fast-paced guide to putting your GeoServer-based application into fast, user-friendly, and secure production Key Features Resolve bottlenecks, optimize data stores, and cluster server resources Use identity management and authentication for a user-specific, secure web application Go beyond traditional web hosting to explore the full range of hosting options in the cloud Book Description GeoServer is open source, server-side software written in Java that allows users to share and edit geospatial data. In this book, you'll start by learning how to develop a spatial analysis platform with web processing services. Then you'll see how to develop an algorithm by chaining together geospatial analysis processes, which you can share with anyone in the world. Next you'll delve into a very important technique to improve the speed of your map application—tile caching. Here, you'll understand how tile caching works, how to develop an effective tile cache-supported web service, and how to leverage tile caching in your OpenLayers web application. Further on, you'll explore important tweaks to produce a performant GeoServer-backed web mapping application. Moving on, you'll enable authentication on the frontend and backend to protect sensitive map data, and deliver sensitive data to your end user. Finally, you'll see how to put your web application into production in a secure and user-friendly way. You'll go beyond traditional web hosting to explore the full range of hosting options in the cloud, and maintain a reliable server instance. What you will learn Develop a WPS-processing service to allow web-based geospatial data processing Get to know important techniques to improve the speed of your web map application—tile caching, raster data optimization, and server clustering Find out which GeoServer settings resolve bottlenecks Develop an algorithm by chaining geospatial analysis processes together Put your application into production with hosting, monitoring, and automated backup and recovery Understand how to develop an effective tile cache-supported web service Master techniques that ensure resilient server deployment Who this book is for This book is for anyone who wants to learn about advanced interfaces, security, and troubleshooting techniques in GeoServer. A basic understanding of GeoServer is required
Detect potentials bugs in your code or program and develop your own tools using the Ghidra reverse engineering framework developed by the NSA projectKey FeaturesMake the most of Ghidra on different platforms such as Linux, Windows, and macOSLeverage a variety of plug-ins and extensions to perform disassembly, assembly, decompilation, and scriptingDiscover how you can meet your cybersecurity needs by creating custom patches and toolsBook DescriptionGhidra, an open source software reverse engineering (SRE) framework created by the NSA research directorate, enables users to analyze compiled code on any platform, whether Linux, Windows, or macOS. This book is a starting point for developers interested in leveraging Ghidra to create patches and extend tool capabilities to meet their cybersecurity needs.You'll begin by installing Ghidra and exploring its features, and gradually learn how to automate reverse engineering tasks using Ghidra plug-ins. You'll then see how to set up an environment to perform malware analysis using Ghidra and how to use it in the headless mode. As you progress, you'll use Ghidra scripting to automate the task of identifying vulnerabilities in executable binaries. The book also covers advanced topics such as developing Ghidra plug-ins, developing your own GUI, incorporating new process architectures if needed, and contributing to the Ghidra project.By the end of this Ghidra book, you'll have developed the skills you need to harness the power of Ghidra for analyzing and avoiding potential vulnerabilities in code and networks.What you will learnGet to grips with using Ghidra's features, plug-ins, and extensionsUnderstand how you can contribute to GhidraFocus on reverse engineering malware and perform binary auditingAutomate reverse engineering tasks with Ghidra plug-insBecome well-versed with developing your own Ghidra extensions, scripts, and featuresAutomate the task of looking for vulnerabilities in executable binaries using Ghidra scriptingFind out how to use Ghidra in the headless modeWho this book is forThis SRE book is for developers, software engineers, or any IT professional with some understanding of cybersecurity essentials. Prior knowledge of Java or Python, along with experience in programming or developing applications, is required before getting started with this book.
Understand basic to advanced deep learning algorithms, the mathematical principles behind them, and their practical applications. Key Features Get up-to-speed with building your own neural networks from scratch Gain insights into the mathematical principles behind deep learning algorithms Implement popular deep learning algorithms such as CNNs, RNNs, and more using TensorFlow Book Description Deep learning is one of the most popular domains in the AI space, allowing you to develop multi-layered models of varying complexities. This book introduces you to popular deep learning algorithms—from basic to advanced—and shows you how to implement them from scratch using TensorFlow. Throughout the book, you will gain insights into each algorithm, the mathematical principles behind it, and how to implement it in the best possible manner. The book starts by explaining how you can build your own neural networks, followed by introducing you to TensorFlow, the powerful Python-based library for machine learning and deep learning. Moving on, you will get up to speed with gradient descent variants, such as NAG, AMSGrad, AdaDelta, Adam, and Nadam. The book will then provide you with insights into RNNs and LSTM and how to generate song lyrics with RNN. Next, you will master the math for convolutional and capsule networks, widely used for image recognition tasks. Then you learn how machines understand the semantics of words and documents using CBOW, skip-gram, and PV-DM. Afterward, you will explore various GANs, including InfoGAN and LSGAN, and autoencoders, such as contractive autoencoders and VAE. By the end of this book, you will be equipped with all the skills you need to implement deep learning in your own projects. What you will learn Implement basic-to-advanced deep learning algorithms Master the mathematics behind deep learning algorithms Become familiar with gradient descent and its variants, such as AMSGrad, AdaDelta, Adam, and Nadam Implement recurrent networks, such as RNN, LSTM, GRU, and seq2seq models Understand how machines interpret images using CNN and capsule networks Implement different types of generative adversarial network, such as CGAN, CycleGAN, and StackGAN Explore various types of autoencoder, such as Sparse autoencoders, DAE, CAE, and VAE Who this book is for If you are a machine learning engineer, data scientist, AI developer, or simply want to focus on neural networks and deep learning, this book is for you. Those who are completely new to deep learning, but have some experience in machine learning and Python programming, will also find the book very helpful.
A comprehensive guide that will get you up and running with embedded software development using Qt5 Key Features Learn to create fluid, cross-platform applications for embedded devices Achieve optimum performance in your applications with QT Lite project Explore the implementation of Qt with IoT using QtMqtt, QtKNX, and QtWebSockets Book Description Qt is an open-source toolkit suitable for cross-platform and embedded application development. This book uses inductive teaching to help you learn how to create applications for embedded and Internet of Things (IoT) devices with Qt 5. You'll start by learning to develop your very first application with Qt. Next, you'll build on the first application by understanding new concepts through hands-on projects and written text. Each project will introduce new features that will help you transform your basic first project into a connected IoT application running on embedded hardware. In addition to practical experience in developing an embedded Qt project, you will also gain valuable insights into best practices for Qt development, along with exploring advanced techniques for testing, debugging, and monitoring the performance of Qt applications. Through the course of the book, the examples and projects are demonstrated in a way so that they can be run both locally and on an embedded platform. By the end of this book, you will have the skills you need to use Qt 5 to confidently develop modern embedded applications. What you will learn Understand how to develop Qt applications using Qt Creator under Linux Explore various Qt GUI technologies to build resourceful and interactive applications Understand Qt's threading model to maintain a responsive UI Get to grips with remote target load and debug under Qt Creator Become adept at writing IoT code using Qt Learn a variety of software best practices to ensure that your code is efficient Who this book is for This book is for software and hardware professionals with experience in different domains who are seeking new career opportunities in embedded systems and IoT. Working knowledge of the C++ Linux command line will be useful to get the most out of this book.
Build efficient and fast Qt applications, target performance problems, and discover solutions to refine your code Key Features Build efficient and concurrent applications in Qt to create cross-platform applications Identify performance bottlenecks and apply the correct algorithm to improve application performance Delve into parallel programming and memory management to optimize your code Book Description Achieving efficient code through performance tuning is one of the key challenges faced by many programmers. This book looks at Qt programming from a performance perspective. You'll explore the performance problems encountered when using the Qt framework and means and ways to resolve them and optimize performance. The book highlights performance improvements and new features released in Qt 5.9, Qt 5.11, and 5.12 (LTE). You'll master general computer performance best practices and tools, which can help you identify the reasons behind low performance, and the most common performance pitfalls experienced when using the Qt framework. In the following chapters, you'll explore multithreading and asynchronous programming with C++ and Qt and learn the importance and efficient use of data structures. You'll also get the opportunity to work through techniques such as memory management and design guidelines, which are essential to improve application performance. Comprehensive sections that cover all these concepts will prepare you for gaining hands-on experience of some of Qt's most exciting application fields - the mobile and embedded development domains. By the end of this book, you'll be ready to build Qt applications that are more efficient, concurrent, and performance-oriented in nature What you will learn Understand classic performance best practices Get to grips with modern hardware architecture and its performance impact Implement tools and procedures used in performance optimization Grasp Qt-specific work techniques for graphical user interface (GUI) and platform programming Make Transmission Control Protocol (TCP) and Hypertext Transfer Protocol (HTTP) performant and use the relevant Qt classes Discover the improvements Qt 5.9 (and the upcoming versions) holds in store Explore Qt's graphic engine architecture, strengths, and weaknesses Who this book is for This book is designed for Qt developers who wish to build highly performance applications for desktop and embedded devices. Programming Experience with C++ is required.
Learn how to use RxClojure to deal with stateful computations Key Features Leverage the features of Functional Reactive Programming using Clojure Create dataflow-based systems that are the building blocks of Reactive Programming Use different Functional Reactive Programming frameworks, techniques, and patterns to solve real-world problems Book Description Reactive Programming is central to many concurrent systems, and can help make the process of developing highly concurrent, event-driven, and asynchronous applications simpler and less error-prone. This book will allow you to explore Reactive Programming in Clojure 1.9 and help you get to grips with some of its new features such as transducers, reader conditionals, additional string functions, direct linking, and socket servers. Hands-On Reactive Programming with Clojure starts by introducing you to Functional Reactive Programming (FRP) and its formulations, as well as showing you how it inspired Compositional Event Systems (CES). It then guides you in understanding Reactive Programming as well as learning how to develop your ability to work with time-varying values thanks to examples of reactive applications implemented in different frameworks. You'll also gain insight into some interesting Reactive design patterns such as the simple component, circuit breaker, request-response, and multiple-master replication. Finally, the book introduces microservices-based architecture in Clojure and closes with examples of unit testing frameworks. By the end of the book, you will have gained all the knowledge you need to create applications using different Reactive Programming approaches. What you will learn Understand how to think in terms of time-varying values and event streams Create, compose, and transform observable sequences using Reactive extensions Build a CES framework from scratch using core.async as its foundation Develop a simple ClojureScript game using Reagi Integrate Om and RxJS in a web application Implement a reactive API in Amazon Web Services (AWS) Discover helpful approaches to backpressure and error handling Get to grips with futures and their applications Who this book is for If you're interested in using Reactive Programming to build asynchronous and concurrent applications, this is the book for you. Basic knowledge of Clojure programming is necessary to understand the concepts covered in this book.
A step-by-step guide that will help you design, develop, scale, and deploy RESTful APIs with TypeScript 3 and Node.js Key Features Gain in-depth knowledge of OpenAPI and Swagger to build scalable web services Explore a variety of test frameworks and test runners such as Stryker, Mocha, and Chai Create a pipeline by Dockerizing your environment using Travis CI, Google Cloud Platform, and GitHub Book Description In the world of web development, leveraging data is the key to developing comprehensive applications, and RESTful APIs help you to achieve this systematically. This book will guide you in designing and developing web services with the power of TypeScript 3 and Node.js. You'll design REST APIs using best practices for request handling, validation, authentication, and authorization. You'll also understand how to enhance the capabilities of your APIs with ODMs, databases, models and views, as well as asynchronous callbacks. This book will guide you in securing your environment by testing your services and initiating test automation with different testing approaches. Furthermore, you'll get to grips with developing secure, testable, and more efficient code, and be able to scale and deploy TypeScript 3 and Node.js-powered RESTful APIs on cloud platforms such as the Google Cloud Platform. Finally, the book will help you explore microservices and give you an overview of what GraphQL can allow you to do. By the end of this book, you will be able to use RESTful web services to create your APIs for mobile and web apps and other platforms. What you will learn Explore various methods to plan your services in a scalable way Understand how to handle different request types and the response status code Get to grips with securing web services Delve into error handling and logging your web services for improved debugging Uncover the microservices architecture and GraphQL Create automated CI/CD pipelines for release and deployment strategies Who this book is for If you're a developer who has a basic understanding of REST concepts and want to learn how to design and develop RESTful APIs, this book is for you. Prior knowledge of TypeScript will help you make the most out of this book.
Explore the fundamentals of systems programming starting from kernel API and filesystem to network programming and process communications Key Features Learn how to write Unix and Linux system code in Golang v1.12 Perform inter-process communication using pipes, message queues, shared memory, and semaphores Explore modern Go features such as goroutines and channels that facilitate systems programming Book Description System software and applications were largely created using low-level languages such as C or C++. Go is a modern language that combines simplicity, concurrency, and performance, making it a good alternative for building system applications for Linux and macOS. This Go book introduces Unix and systems programming to help you understand the components the OS has to offer, ranging from the kernel API to the filesystem, and familiarize yourself with Go and its specifications. You'll also learn how to optimize input and output operations with files and streams of data, which are useful tools in building pseudo terminal applications. You'll gain insights into how processes communicate with each other, and learn about processes and daemon control using signals, pipes, and exit codes. This book will also enable you to understand how to use network communication using various protocols, including TCP and HTTP. As you advance, you'll focus on Go's best feature-concurrency helping you handle communication with channels and goroutines, other concurrency tools to synchronize shared resources, and the context package to write elegant applications. By the end of this book, you will have learned how to build concurrent system applications using Go What you will learn Explore concepts of system programming using Go and concurrency Gain insights into Golang's internals, memory models and allocation Familiarize yourself with the filesystem and IO streams in general Handle and control processes and daemons' lifetime via signals and pipes Communicate with other applications effectively using a network Use various encoding formats to serialize complex data structures Become well-versed in concurrency with channels, goroutines, and sync Use concurrency patterns to build robust and performant system applications Who this book is for If you are a developer who wants to learn system programming with Go, this book is for you. Although no knowledge of Unix and Linux system programming is necessary, intermediate knowledge of Go will help you understand the concepts covered in the book