Search results for ""Pragmatic Bookshelf""
Pragmatic Bookshelf Build Location-Based Projects for iOS: GPS, Sensors, and Maps
Coding is awesome. So is being outside. With location-based iOS apps, you can combine the two for an enhanced outdoor experience. Use Swift to create your own apps that use GPS data, read sensor data from your iPhone, draw on maps, automate with geofences, and store augmented reality world maps. You'll have a great time without even noticing that you're learning. And even better, each of the projects is designed to be extended and eventually submitted to the App Store. Explore, share, and have fun. Location-based apps are everywhere. From mapping our jogging path to pointing us to the nearest collectible creature in a location-based game, these apps offer useful and interesting features and information related to where you are. Using real-world maps and places as the environment, they add an extra layer of adventure to exploring the outdoors. If you've ever wanted to make your own location-based apps and games, you can learn how with four simple, Swift-based projects that are easy to code and fun to use. Build four stunning apps that sense the iPhone's surroundings. Use Core Location and MapKit to draw GPS data on maps and share the results to social media. Use the sensor data from the iPhone and draw acceleration graphs using Core Graphics while on a playground swing. Build an app that measures the time you spend outside using geofences. Combine Core Location and ARKit to build an augmented reality scavenger hunt app that you can use and play with other people. Have great time building creative apps you cannot wait to try out.
£16.89
Pragmatic Bookshelf XSLT Jumpstarter
Finally, a ground-up, quick-start approach to XSLT that teaches not just the language, but XML processing solutions. XSLT Jumpstarter approaches the subject like no other book, using examples that ease you through the basic concepts while demonstrating how to solve common problems. It doesn't unload language elements on you, it shows how to create HTML output, rearrange and modify XML nodes, manipulate text, conditionalize processing, make global changes, perform grouping and sorting, and implement strategies for re-using templates and stylesheets. XSLT Jumpstarter offers a hands-on, jump-in-the-water approach that will launch you over the XSLT learning curve! Get your XML under control with XSLT Jumpstarter. XML is everywhere in data and web technology, and XSLT was created specifically to transform XML into all kinds of text output, including HTML, XML, SVG, and others. You'll start with example solutions that introduce the range of XSLT possibilities.You'll get the processing concepts behind XSLT; how to create and manipulate output; how to make global changes to XML; how to use conditional instructions, XPath, and XSLT functions for complex controls; how to sort and group your output; and techniques for large-scale stylesheet management. Using a browser-based XSLT processor, you'll immediately transform XML with no setup time. You'll set up a stand-alone XSLT processor controlled from the command line. You'll get a clear view into the basic XSLT processing model so you can put it to work. Throughout the book, you'll see elements of XSLT working together in solutions to common XML processing problems. And you'll get a thorough analysis of the solutions, giving you the understanding to modify examples or create your own XSLT from scratch. This is not another XSLT reference, but an accessible guide that gets your hands dirty with a solution-oriented approach. Filled with practical examples and detailed explanations, this book is designed to kickstart the XSLT newbie into action.
£20.30
Pragmatic Bookshelf Currently Away: How Two Disenchanted People Traveled the Great Loop for Nine Months and Returned to the Start, Energized and Optimistic
The walls were closing in on Bruce and Maggie Tate. Isolation forced on them by the pandemic, combined with America's growing political factionalism, threatened their bonds with community and family. Something had to change. Maggie's surprising answer: buy a boat, learn to pilot it, and embark on the Great Loop. For nine months Bruce and Maggie navigated rivers, coastal waters, lakes, locks, and loss. Against all odds, they conquered the Loop, and along the way found common cause across political divides with new friends while blowing the walls off their world. Bruce and Maggie Tate were spiraling downward. Normally outgoing and cheerful, Maggie was broken down by pandemic isolation. Bruce, facing asthma, heart disease and Covid-related professional issues, was sure that the virus and his comorbidities would kill him. And the plant-based diet he had just started made him wish it would hurry up. Meanwhile, their country seemed to be crumbling into warring factions. That was when Maggie made a life-changing decision. With no experience, knowing little about seafaring, inboard motors, or navigation, she and Bruce and the family dog decided to take on the Great Loop, a six-thousand-mile journey down inland rivers, around the Gulf and Atlantic coasts, and across the Great Lakes. They had to navigate canals and locks, were threatened by dangerous seas, and even had to deal with heartbreaking loss. But along the way, they made new lifelong friends and were forever changed. When, in a time of great divisiveness, two broken people took on the challenge of their lives, against all odds they found common cause across political divides and made themselves whole again.
£24.80
Pragmatic Bookshelf Pandas Brain Teasers: Exercise Your Mind
This book contains 25 short programs that will challenge your understanding of Pandas. Like any big project, the Pandas developers had to make some design decisions that at times seem surprising. This book uses those quirks as a teaching opportunity. By understanding the gaps in your knowledge, you'll become better at what you do. Some of the teasers are from the author's experience shipping bugs to production, and some from others doing the same. Teasers and puzzles are fun, and learning how to solve them can teach you to avoid programming mistakes and maybe even impress your colleagues and future employers. Working with data is central to nearly everything we do, from disease contact tracing and analyzing health records to smart meters that track utility consumption behavior. With the power of Python's pandas library, you can process and analyze this data in a highly efficient and simple-to-understand way. And with 25 brain teasers designed to turn this technology's quirks into a teaching opportunity, you'll be honing your data science skills while having fun at the same time. Following a simple format, you'll challenge yourself and your understanding of pandas. Read a short Python program that uses pandas, try to guess the output, run the code yourself, and then go to the next page for an explanation of the solution. From common pitfalls and hidden gotchas to unexpected twists and turns, you'll deepen your understanding of pandas, learn to write more efficient code, and reduce the number of bugs in the software you develop. You may even impress your colleagues and your employers, both present and future. Learn the tricks of the trade with Python's pandas, in one of the most fun and creative ways around. What You Need: To run the code you'll need Python version 3.8 or upper and Pandas version 1.0 or upper installed. We use Python version 3.8.3 and Pandas version 1.0.5; the output might change in future versions.
£12.88
Pragmatic Bookshelf Web Development with ReasonML: Type-Safe, Functional Programming for JavaScript Developers
ReasonML is a new, type-safe, functional language that compiles to efficient, readable JavaScript. ReasonML interoperates with existing JavaScript libraries and works especially well with React, one of the most popular front-end frameworks. Learn how to take advantage of the power of a functional language while keeping the flexibility of the whole JavaScript ecosystem. Move beyond theory and get things done faster and more reliably with ReasonML today. ReasonML is a new syntax for OCaml, a battle-tested programming language used in industry for over 20 years. Designed to be familiar to JavaScript programmers, ReasonML code compiles to highly readable JavaScript. With ReasonML, you get OCaml's powerful functional programming features: a strong static type system with an excellent type inference engine, pattern matching, and features for functional programming with immutable variables. ReasonML also allows flexibility with opt-in side effects, mutation, and object-oriented programming. ReasonML hits the sweet spot between the pure theoretical world and the laissez-faire approach of JavaScript. Start using ReasonML's powerful type system as you learn the essentials of the language: variables and arithmetic operations. Gain expressive power as you write functions with named parameters and currying. Define your own data types, and integrate all these capabilities into a simple web page. Take advantage of ReasonML's functional data structures with map and reduce functions. Discover new ways to write algorithms with ReasonML's recursion support. Interoperate with existing JavaScript libraries with bindings, and write reactive web applications using ReasonML in tandem with React. Reinforce concepts with examples that range from short, tightly focused functions to complete programs, and practice your new skills with exercises in each chapter. With ReasonML, harness the awesome power of a functional language while retaining the best features of JavaScript to produce concise, fast, type-safe programs. What You Need: You'll need to have node.js (version 10.0 or above) and npm (version 5.6 or above). Once you install the bs-platform package and fire up a text editor, you're ready to go. (There are plugins for many popular editors that will make editing easier.)
£26.48
Pragmatic Bookshelf Web Development Recipes 2e
Modern web development is so much more than just HTML and CSS with a little JavaScript mixed in. People want faster, more usable interfaces that work on multiple devices, and you need the latest tools and techniques to make that happen. This book gives you over 40 concise solutions to today's web development problems, and introduces new solutions that will expand your skill set---proven, practical advice from authors who use these tools and techniques every day. In this completely updated edition, you'll find innovative new techniques and workflows, as well as reworked solutions that take advantage of new developments. Web development is constantly changing, and you need to stay on top of your game. Discover a wide spectrum of web development techniques, from how to improve the way you present content, to solutions for data analysis, testing, and deployment. In this edition we introduce new tools, add new recipes, and modernize old ones. You'll use Vagrant to automate server setup, and you'll discover new ways to develop blogs and static sites. You'll learn how to use Grunt to script the deployment of your web project, and use Angular to build a single-page app. You'll learn how to make content stand out with simple cross-browser styles; create animations that work well everywhere without plugins; and create lightweight, responsive layouts. We'll show you how to use preprocessors like CoffeeScript and Sass; write tests for your code; use Git and Dropbox to collaborate; configure and secure the Apache web server; use virtualization to set up your own servers automatically; and much more. Whether you're new to front-end development, or you've got a few years of experience, you'll become a more versatile developer by finding out how---and why---to use these solutions in your next project. What You Need: Your favorite text editor, the most current version of Mozilla Firefox, Internet Explorer, Google Chrome or Safari, and a working knowledge of HTML and JavaScript. Familiarity with command-line interfaces is a plus.
£22.45
Pragmatic Bookshelf Functional Programming in Java: Harness the Power of Streams and Lambda Expressions
Imagine writing Java code that reads like the problem statement, code that's highly expressive, concise, easy to read and modify, and has reduced complexity. With the functional programming capabilities in Java, that's not a fantasy. This book will guide you from the familiar imperative style through the practical aspects of functional programming, using plenty of examples. Apply the techniques you learn to turn highly complex imperative code into elegant and easy-to-understand functional-style code. Updated to the latest version of Java, this edition has four new chapters on error handling, refactoring to functional style, transforming data, and idioms of functional programming. Don't struggle with the limitations of the imperative style; instead learn to combine object-oriented programming with the functional style to reduce the accidental complexity. Harness the functional programming capabilities of Java to create applications where the program reveals its intentions and your team can quickly understand and modify code to align with changing business requirements. Unlock the power of lambda expressions and the Streams API to turn the oft-written spaghetti code into highly concise, expressive, elegant, and maintainable code. See how Streams make the arduous task of parallelizing code as easy as flipping a switch when superior speed is necessary. Apply design patterns built around lambda expressions, safely manage resource allocations, use memoization, and learn to transform data into different forms, all while honoring immutability, and providing thread safety to leverage lazy evaluation for efficiency and parallel execution for performance. Move beyond the basics, explore the idioms for writing functional programs. Learn to think functionally by refactoring legacy code into the functional style. And, if your code runs aground due to failures, learn to properly handle errors the functional way. Don't drown in theory; instead learn the practical functional programming techniques to create superior Java code. What You Need: Java version 8 or newer.
£34.31
Pragmatic Bookshelf Exercises for Programmers
When you write software, you need to be at the top of your game. Great programmers practice to keep their skills sharp. Get sharp and stay sharp with more than fifty practice exercises rooted in real-world scenarios. If you're a new programmer, these challenges will help you learn what you need to break into the field, and if you're a seasoned pro, you can use these exercises to learn that hot new language for your next gig. One of the best ways to learn a programming language is to use it to solve problems. That's what this book is all about. Instead of questions rooted in theory, this book presents problems you'll encounter in everyday software development. These problems are designed for people learning their first programming language, and they also provide a learning path for experienced developers to learn a new language quickly. Start with simple input and output programs. Do some currency conversion and figure out how many months it takes to pay off a credit card. Calculate blood alcohol content and determine if it's safe to drive.Replace words in files and filter records, and use web services to display the weather, store data, and show how many people are in space right now. At the end you'll tackle a few larger programs that will help you bring everything together. Each problem includes constraints and challenges to push you further, but it's up to you to come up with the solutions. And next year, when you want to learn a new programming language or style of programming (perhaps OOP vs. functional), you can work through this book again, using new approaches to solve familiar problems. What You Need: You need access to a computer, a programming language reference, and the programming language you want to use.
£15.35
Pragmatic Bookshelf Data Science Essentials in Python
Go from messy, unstructured artifacts stored in SQL and NoSQL databases to a neat, well-organized dataset with this quick reference for the busy data scientist. Understand text mining, machine learning, and network analysis; process numeric data with the NumPy and Pandas modules; describe and analyze data using statistical and network-theoretical methods; and see actual examples of data analysis at work. This one-stop solution covers the essential data science you need in Python. Data science is one of the fastest-growing disciplines in terms of academic research, student enrollment, and employment. Python, with its flexibility and scalability, is quickly overtaking the R language for data-scientific projects. Keep Python data-science concepts at your fingertips with this modular, quick reference to the tools used to acquire, clean, analyze, and store data. This one-stop solution covers essential Python, databases, network analysis, natural language processing, elements of machine learning, and visualization. Access structured and unstructured text and numeric data from local files, databases, and the Internet. Arrange, rearrange, and clean the data. Work with relational and non-relational databases, data visualization, and simple predictive analysis (regressions, clustering, and decision trees). See how typical data analysis problems are handled. And try your hand at your own solutions to a variety of medium-scale projects that are fun to work on and look good on your resume. Keep this handy quick guide at your side whether you're a student, an entry-level data science professional converting from R to Python, or a seasoned Python developer who doesn't want to memorize every function and option. What You Need: You need a decent distribution of Python 3.3 or above that includes at least NLTK, Pandas, NumPy, Matplotlib, Networkx, SciKit-Learn, and BeautifulSoup. A great distribution that meets the requirements is Anaconda, available for free from www.continuum.io. If you plan to set up your own database servers, you also need MySQL (www.mysql.com) and MongoDB (www.mongodb.com). Both packages are free and run on Windows, Linux, and Mac OS.
£17.83
Pragmatic Bookshelf Build Chatbot Interactions: Responsive, Intuitive Interfaces with Ruby
The next step in the evolution of user interfaces is here. Chatbots let your users interact with your service in their own natural language. Use free and open source tools along with Ruby to build creative, useful, and unexpected interactions for users. Take advantage of the Lita framework's step-by-step implementation strategy to simplify bot development and testing. From novices to experts, chatbots are an area in which everyone can participate. Exercise your creativity by creating chatbot skills for communicating, information, and fun. Developers of all skill levels can craft user experiences that are natural, easy to use, and most of all, fun. Build chatbots using free, open source tools and launch them to popular chat platforms like Slack and Amazon's Alexa. Use the Ruby programming language and the Lita bot framework to unlock fun and powerful chat abilities such as sending text messages and emails, creating new meme images, driving a robot around the room, and talking out loud on a home speaker. Use frameworks available in Ruby and Node.js to get started quickly. Create simple chatbot skills that respond quickly to basic requests. Chain skills together for more complex interactions. Take advantage of test-driven development techniques to build your bots with confidence. Coordinate tasks with colleagues via bot. Connect with external APIs to provide users with data they need. Extract data information from web pages when an API isn't available. Expand your bot's reach with SMS and e-mail messaging. Deploy a chatbot to a host so users can interact with it on their schedule. Build a more responsive, easy-to-use interface for your users today. What You Need: You don't need much to get started with chatbots. A Mac or Linux computer with a recent version of Ruby is recommended. Windows users can keep up with a free virtual machine running Linux. You'll deploy your chatbots for free (or at least cheaply) on cloud hosting platforms like Heroku and Digital Ocean.
£21.54
Pragmatic Bookshelf Reactive Programming with RxJS
Reactive programming is revolutionary. It makes asynchronous programming clean, intuitive, and robust. Use RxJS 5 to write complex programs in a simple way, and master the Observable: a powerful data type that substitutes callbacks and promises. Think about your programs as streams of data that change and adapt to produce what you want. Manage real-world concurrency and write complex flows of events in your applications with ease. Take advantage of Schedulers to make asynchronous testing easier. The code in this new edition is completely updated for RxJS 5 and ES6. Create concurrent applications with ease using RxJS 5, a powerful event composition library. Real-world JavaScript applications require you to master asynchronous programming, and chances are that you'll spend more time coordinating asynchronous events than writing actual functionality. This book introduces concepts and tools that will greatly simplify the process of writing asynchronous programs. Find out about Observables, a unifying data type that simplifies concurrent code and eases the pain of callbacks. Learn how Schedulers change the concept of time itself, making asynchronous testing sane again. Find real-world examples for the browser and Node.js along the way: how about a real-time earthquake visualization in 20 lines of code, or a frantic shoot-'em-up space videogame? You'll also use Cycle.js - a modern, reactive, web framework - to make a new breed of web applications. By the end of the book, you'll know how to think in a reactive way, and to use RxJS 5 to build complex programs and create amazing reactive user interfaces. You'll also understand how to integrate it with your existing projects and use it with the frameworks you already know. All the code in this new edition has been thoroughly revised and updated for RxJS 5, ES6, and Cycle.js Unified.
£19.98
Pragmatic Bookshelf Quantum Computing: Program Next-Gen Computers for Hard, Real-World Applications
You've heard that quantum computing is going to change the world. Now you can check it out for yourself. Learn how quantum computing works, and write programs that run on the IBM Q quantum computer, one of the world's first functioning quantum computers. Learn a simple way to apply quantum mechanics to computer programming. Create algorithms to solve intractable problems for classical computers, and discover how to explore the entire problem space at once to determine the optimal solution. Get your hands on the future of computing today. Quantum computing overhauls computer science. Problems such as designing life-saving drugs and super-large logistics problems that have been difficult or impossible for classical computers to handle can now be solved in moments. Quantum computing makes it possible to explore all possible solutions simultaneously and determine those that work, instead of iterating through each possibility sequentially. Work with quantum computers directly, instead of talking about them theoretically. Work with qubits, the fundamental elements of quantum computing. Discover what makes them different from classical bits. Model complex problems with logic gates specific to quantum computing. Learn how quantum mechanics offers ways to write programs that explore all solutions simultaneously. Create quantum circuits to solve problems that classical computers struggle with. Dive into quantum optimization and cryptography. Use the IBM Q quantum computer to both simulate quantum effects, and actually run your programs on a real quantum machine. Get a head start on the technology that will drive computer science into the future. What You Need: Access to the IBM quantum computer, via any internet connection
£30.03
Pragmatic Bookshelf Python Testing with pytest: Simple, Rapid, Effective, and Scalable
Test applications, packages, and libraries large and small with pytest, Python's most powerful testing framework. pytest helps you write tests quickly and keep them readable and maintainable. In this fully revised edition, explore pytest's superpowers - simple asserts, fixtures, parametrization, markers, and plugins - while creating simple tests and test suites against a small database application. Using a robust yet simple fixture model, it's just as easy to write small tests with pytest as it is to scale up to complex functional testing. This book shows you how. pytest is undeniably the best choice for testing Python projects. It's a full-featured, flexible, and extensible testing framework. pytest's fixture model allows you to share test data and setup procedures across multiple layers of tests. The pytest framework gives you powerful features such as assert rewriting, parametrization, markers, plugins, parallel test execution, and clear test failure reporting - with no boilerplate code. With simple step-by-step instructions and sample code, this book gets you up to speed quickly on this easy-to-learn yet powerful tool. Write short, maintainable tests that elegantly express what you're testing. Speed up test times by distributing tests across multiple processors and running tests in parallel. Use Python's builtin assert statements instead of awkward assert helper functions to make your tests more readable. Move setup code out of tests and into fixtures to separate setup failures from test failures. Test error conditions and corner cases with expected exception testing, and use one test to run many test cases with parameterized testing. Extend pytest with plugins, connect it to continuous integration systems, and use it in tandem with tox, mock, coverage, and even existing unittest tests. Write simple, maintainable tests quickly with pytest. What You Need: The examples in this book were written using Python 3.9 and pytest 6. pytest 6 supports Python 3.5 and above.
£30.03
Pragmatic Bookshelf Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.
£34.83