Computer programming / software engineering Books
No Starch Press,US The Manga Guide To Databases
Book SynopsisWant to learn about databases without the tedium? With its unique combination of Japanese-style comics and serious educational content, The Manga Guide to Databases is just the book for you. Princess Ruruna is stressed out. With the king and queen away, she has to manage the Kingdom of Kod's humongous fruit-selling empire. Overseas departments, scads of inventory, conflicting prices, and so many customers! It's all such a confusing mess. But a mysterious book and a helpful fairy promise to solve her organizational problems with the practical magic of databases. In The Manga Guide to Databases, Tico the fairy teaches the Princess how to simplify her data management. We follow along as they design a relational database, understand the entity-relationship model, perform basic database operations, and delve into more advanced topics. Once the Princess is familiar with transactions and basic SQL statements, she can keep her data timely and accurate for the entire kingdom. Finally, Tico expTable of ContentsPrefaceChapter 1: What is a Database?Chapter 2: What is a Relational Database?Chapter 3: Let's Design a DatabaseChapter 4: Let's Use a Database - Basic Operation of SQLChapter 5: Let's Operate the DatabaseChapter 6: Spread and Contribution of DatabasesAppendix: Frequently Used SQL StatementsReferencesIndex
£20.39
No Starch Press,US Javascript For Kids
Book SynopsisJavaScript is the programming language of the Internet, the secret sauce that makes the Web awesome, your favorite sites interactive, and online games fun! JavaScript for Kids is a lighthearted introduction that teaches programming essentials through patient, step-by-step examples paired with funny illustrations. You ll begin with the basics, like working with strings, arrays, and loops, and then move on to more advanced topics, like building interactivity with jQuery and drawing graphics with Canvas. Along the way, you ll write games such as Find the Buried Treasure, Hangman, and Snake. You ll also learn how to: Create functions to organize and reuse your code Write and modify HTML to create dynamic web pages Use the DOM and jQuery to make your web pages react to user input Use the Canvas element to draw and animate graphics Program real user-controlled games with collision detection and score keeping With visual examples like bouncing balls, animated bees, and racing cars, youTrade Review"Vibrant and visually engaging, with chuckle-worthy asides...instructive and kid-friendly."—School Library Journal, The Maker Issue "I'd recommend this book for anyone in middle school through to retirement who wants to see what programming is all about, but wants a gentle, fun introduction."—IT World "This exists and it looks awesome."—Khoi Vinh, Former NYTIMES.com design director"An interesting kid focused JavaScript book from No Starch."—Peter Cooper, curator of JavaScript Weekly"Has your child resolved to learn to code in 2015? Check out this new book."—Girl Develop It, Ann Arbor"We had a JS workshop for kids 9-12 last Friday and it helped very much when it came to explaining various concepts—Nick is great! "—Kathryn Barrett, Ladies Learning Code"May work well as the source material for something like Code Club."—Alex Young, Editor-in-Chief of DailyJS"I wish I had had something like this when I was 10. The book is very thorough yet accessible."—Malte Ubl, Curator of JSConfEU"Another winner from No-Starch Press."—Tim Cox, MagPi Magazine "This is the kind of book I would easily recommend for the beginning Web coder."—Bismark Tribune"Boy asks 'Dad, can we do some NEW programming?' So, we are now on Chapter 1 of JavaScript for Kids. 'Dad, JavaScript is kinda fun.'"—Kevin Stewart, Director of Engineering at Adobe"I wish I had a book like this when I was learning programming over 20 years ago."—Tim Caswell, Nodejs hacker and teacher"This book takes the mantle of the 'Dummies' series for learning complex subjects...highly recommended."—Becky Walton, MLIS, Ingram Collection Development"A fantastic primer that is both immensely educational and wildly fun."—Outright Geekery "Fantastic...one of the best and most comfortable introductions to a real and useful programming language we've seen."—Ric Getter for MacDirectory Magazine"Whether you’re 10 or 110, this book can be a fun way to start learning how to code. This book doesn’t talk down to its audience, so no matter your age, if you’re looking for a relaxed and enjoyable introduction to JavaScript, this book is for you."—DevMountain, 10 best programming booksTable of ContentsIntroductionPart I: FundamentalsChapter 1: What Is JavaScript?Chapter 2: Data Types and VariablesChapter 3: ArraysChapter 4: ObjectsChapter 5: The Basics of HTMLChapter 6: Conditionals and LoopsChapter 7: Creating a Hangman GameChapter 8: FunctionsPart II: Advanced JavaScriptChapter 9: The DOM and jQueryChapter 10: Interactive ProgrammingChapter 11: Find the Buried Treasure!Chapter 12: Object-Oriented ProgrammingPart III: CanvasChapter 13: The canvas ElementChapter 14: Making Things Move on the CanvasChapter 15: Controlling Animations with the KeyboardChapter 16: Making a Snake Game: Part 1Chapter 17: Making a Snake Game: Part 2Afterword: Where to Go from HereGlossaryIndex
£26.39
No Starch Press,US Doing Math With Python
Book SynopsisDoing Math with Python shows you how to use Python to delve into high school level math topics like statistics, geometry, probability, and calculus. You ll start with simple projects, like a factoring program and a quadratic-equation solver, and then create more complex projects once you ve gotten the hang of things. Along the way, you ll discover new ways to explore math and gain valuable programming skills that you ll use throughout your study of math and computer science. Learn how to: Describe your data with statistics, and visualize it with line graphs, bar charts, and scatter plots Explore set theory and probability with programs for coin flips, dicing, and other games of chance Solve algebra problems using Python s symbolic math functions Draw geometric shapes and explore fractals like the Barnsley fern, the Sierpinski triangle, and the Mandelbrot set Write programs to find derivatives and integrate functions Creative coding challenges and applied examples help you see howTrade Review"Saha does an excellent job providing a clear link between Python and upper-level math concepts, and demonstrates how Python can be transformed into a mathematical stage. This book deserves a spot on every geometry teacher’s bookshelf."—School Library JournalTable of ContentsIntroductionChapter 1: Working with NumbersChapter 2: Visualizing Data with GraphsChapter 3: Describing Data with StatisticsChapter 4: Algebra and Symbolic Math with SymPyChapter 5: Playing with Sets and ProbabilityChapter 6: Drawing Geometric Shapes and FractalsChapter 7: Solving Calculus ProblemsAfterwordAppendix A: Software InstallationAppendix B: Overview of Python Topics
£26.09
No Starch Press,US The Cs Detective
Book SynopsisMeet Frank Runtime. Disgraced ex-detective. Hard-boiled private eye. Search expert. When a robbery hits police headquarters, it s up to Frank Runtime and his extensive search skills to catch the culprits. In this detective story, you ll learn how to use algorithmic tools to solve the case. Runtime scours smugglers boats with binary search, tails spies with a search tree, escapes a prison with depth-first search, and picks locks with priority queues. Joined by know-it-all rookie Officer Notation and inept tag-along Socks, he follows a series of leads in a best-first search that unravels a deep conspiracy. Each chapter introduces a thrilling twist matched with a new algorithmic concept, ending with a technical recap. Perfect for computer science students and amateur sleuths alike, The CS Detective adds an entertaining twist to learning algorithms. Follow Frank s mission and learn: The algorithms behind best-first and depth-first search, iterative deepening, parallelizing, binary searcTable of ContentsAcknowledgmentsA Note to ReadersChapter 1: Search ProblemsChapter 2: Exhaustive Search for an InformantChapter 3: Arrays and Indexes on a Criminal's FarmChapter 4: Strings and Hidden MessagesChapter 5: Binary Search for a Smuggler's ShipChapter 6: Binary Search for CluesChapter 7: Adapting Algorithms for a Daring EscapeChapter 8: Socks: An Interlude and an IntroductionChapter 9: Backtracking to Keep the Search GoingChapter 10: Picking Locks with Breadth-First SearchChapter 11: Depth-First Search in an Abandoned PrisonChapter 12: Cafeteria Stacks and QueuesChapter 13: Stacks and Queues for SearchChapter 14: Let's Split Up: Parallelized SearchChapter 15: Iterative Deepening Can Save Your LifeChapter 16: Inverted Indexes: The Search NarrowsChapter 17: A Binary Search Tree TrapChapter 18: Building Binary Search LaddersChapter 19: Binary Search Trees for SuspectsChapter 20: Adding Suspects to the Search TreeChapter 21: The Binary Search Tree PropertyChapter 22: Tries for PaperworkChapter 23: Best-First Search: A Detective's Most Trusted ToolChapter 24: Priority Queues for InvestigationsChapter 25: Priority Queues for Lock PickingChapter 26: Heuristics in SearchChapter 27: Heaps in Politics and AcademiaChapter 28: Difficult Search ProblemsChapter 29: Search TerminationEpilogue
£17.09
No Starch Press,US The Secret Life Of Programs: Understand Computers
Book SynopsisComputer programming is not abstract and programs run on a machine. Knowing how computers work and how programs run on them is essential to becoming a better programmer. Foundations of Computer Programming fills in the gaps in computer education by giving readers a look under the hood of programming, at the machine. Readers learn how software behaves, how programs manipulate data in memory, how computers process languages, and how web browsers work. They'll also learn how to write efficient programs, computer security basics, and real-world considerations to have in mind when writing code.Trade Review“Amazing . . . I highly recommend it if you don't have a very 'computer science' background, like me.”—Tony Messias, tonysm.com“This book was truly a good companion to the start of my CS degree. It gave me background in the computer engineering sphere and a solid foundation in many CS topics, and I am already starting to experience many of the lessons this book gives.”—Ben Miller, Goodreads Reviewer“This book is amazing. I bought it to refresh my programming basics for courses I teach programming on industrial PLC computers, from beginner to expert. It delves into so much more. Humorous and informative. I highly recommend.”—Gil Cabrera, Amazon Reviewer“If you are just learning to code, or if you are a developer who wants a deeper understanding of how your code interacts with the machine, highly recommend!”—Carmen H. Andoh, @carmatrocity“If you are looking for a wonderfully complete tour through how a computer actually works from first principles all the way through running a piece of software, The Secret Life of Programs from @nostarch is the way to go.”—Nick Maxwell, @CodiferousCoderTable of ContentsIntroductionChapter 1: The Internal Language of ComputersChapter 2: Combinatorial LogicChapter 3: Sequential LogicChapter 4: Computer AnatomyChapter 5: Computer ArchitectureChapter 6: Communications BreakdownChapter 7: Organizing DataChapter 8: Language ProcessingChapter 9: The Web BrowserChapter 10: Application and System ProgrammingChapter 11: Shortcuts and ApproximationsChapter 12: Deadlocks and Race ConditionsChapter 13: SecurityChapter 14: Machine IntelligenceChapter 15: Real-World Considerations
£34.39
No Starch Press,US 25 Scratch Games For Kids
Book SynopsisIntroduces kids to the basics of programming with Scratch by teaching them how to program 25 games. This highly visual introduction to the language by best selling author Max Wainewright will have kids coding classic arcade games that use animation and sound, and integrate core programming fundamentals, like loops, variables, and functions. Each game tutorial includes an open-ended exercise for the reader to tackle on their own. Perfect for both beginning and more experience Scratchers, 25 Scratch Games for Kids is a surefire way to jumpstart a lifelong passion for programming.Table of ContentsIntroducing Scratch 3Chapter 1: Game On!Chapter 2: Drawing Backgrounds and SpritesChapter 3: What's the Score?Chapter 4: Math MattersChapter 5: Making Your Own Blocks
£17.09
No Starch Press,US Web Security For Developers: Real Threats,
Book SynopsisEvery website today is vulnerable to attack and a compromised website can ruin a company's reputation. Web Security Basics for Developers covers everything a web developer needs to know about web security. Readers will learn who attackers are and what they have at their disposal, how the Internet and websites operate, and various ways websites get attacked. Author Malcolm McDonald explores common attacks like SQL injection and cross-site scripting, as well as common vulnerabilities like information leakage, offering real-world examples and code samples.Trade Review"Reads easily and provides essential knowledge to aspiring web developers."—Help Net Security"You can frame the usefulness of this book several ways: It’s well suited to those who are transitioning from development to security. It’s also another great security beginner-level read, providing introductions to an array of pen testing tools that will help you do your job better. And finally, it’s a terrific resource for developers looking to build more secure applications." —Britt Kemp, Bishop Fox LabsTable of ContentsChapter 1: Let’s Hack a WebsiteChapter 2: How the Internet WorksChapter 3: How Browsers WorkChapter 4: How Web Servers WorkChapter 5: How Programmers WorkChapter 6: Injection AttacksChapter 7: Cross-Site Scripting AttacksChapter 8: Cross-Site Request Forgery AttacksChapter 9: Comprising AuthenticationChapter 10: Session HijackingChapter 11: PermissionsChapter 12: Information LeaksChapter 13: EncryptionChapter 14: Third-Party CodeChapter 15: XML AttacksChapter 16: Don’t Be an AccessoryChapter 17: Denial-of-Service Attacks
£24.64
Manning Publications Testing Java Microservices
Book SynopsisWith traditional software unit tests, there’s never a guarantee that an application will actually function correctly in the production environment. When you add microservices, testing becomes even more tricky. Testing Java Microservices teaches readers how to write tests like unit, component, integration, container, contract, chaos, and more. Along the way, it also covers technologies like the Arquillian ecosystem, Wiremock, Mockito, AssertJ, Pact or Gatling. Finally, the book demonstrates how everything fits together into the Continuous Delivery pipeline. Key Features: · Practical hands-on guide · Writing Persistence tests · Teaches test strategies · Shows how everything fits together in the Continuous Delivery Pipeline Readers should be comfortable programming in Java. Experience with testing tools like jUnit is helpful but not required. Some experience in Java EE, Spring and Docker is also helpful. About the Technology: A microservice may consist of several, several hundred, or even several thousand of lines of code. Microservices enable programmers to isolate and scale smaller pieces of an application, rather than the entire application.
£34.19
Manning Publications CSS in Depth
Book SynopsisCSS lets programmers precisely specify the visual design of a web page or web app, from the structural layout of elements on the page to their individual look and feel. CSS in Depth takes web developers from beginner to advanced. In this book, they will revisit concepts that they are likely familiar with but have not completely mastered. Key Features: · Teaches the cascade, floats, and positioning · Example-rich · Covers both beginner and advanced topics This book is for both experienced and new web developers who want to deepen their knowledge of CSS. It assumes you have some basic experience with HTML, CSS, and the web. Some familiarity with JavaScript or other C-like programming language may be beneficial, but not required. About the Technology: CSS, short for “Cascading Style Sheets”, is one of the foundational technologies that drives the Internet. It specifies the visual design of a web page or web app, from the structural layout of elements on the page to their individual look and feel.
£34.19
Manning Publications Docker in Action
Book SynopsisThe idea behind Docker is simple. Create a tiny virtual environment called a container that holds just your application and its dependencies. The Docker engine uses the host operating system to keep track of your containers. Applications running inside containers share resources, making their footprints small. They are easy to install, manage, and remove. Docker in Action, Second Edition teaches you to create, deploy, and manage applications hosted in Docker containers running on Linux. Fully updated, with four new chapters and revised best practices and examples, this second edition begins with a clear explanation of the Docker model. Then, you go hands-on with packaging applications, testing, installing, running programs securely, and deploying them across a cluster of hosts. With examples showing how Docker benefits the whole dev lifecycle, you'll discover techniques for everything from dev-and-test machines to full-scale cloud deployments.Trade Review'Jeff and Stephen took their battle-hardened experience and updated this already great book with new details and examples.' Bret Fisher, Docker Captain and Container Consultant 'Strikes the perfect balance between instructional manual and reference book. Ideal for everyone from beginner to seasoned pro.' Paul G. Brown, Diversified Services Network 'A must-have for those looking to level-up their organization's software and infrastructure virtualization.' Chris Phillips, Dell 'An excellent and detailed resource. Useful for developers, IT admins, and dev-ops engineers.' Ethan Rivett, PowerleyTable of Contentstable of contents READ IN LIVEBOOK 1WELCOME TO DOCKER 1.1What is Docker? 1.1.1“Hello, World” 1.1.2Containers 1.1.3Containers are not virtualization 1.1.4Running software in containers for isolation 1.1.5Shipping containers 1.2What problems does Docker solve? 1.2.1Getting organized 1.2.2Improving portability 1.2.3Protecting your computer 1.3Why is Docker important? 1.4Where and when to use Docker 1.5Docker in the Larger Ecosystem 1.6Getting help with the Docker command line Summary PART 1: PROCESS ISOLATION AND ENVIRONMENT-INDEPENDENT COMPUTING READ IN LIVEBOOK 2RUNNING SOFTWARE IN CONTAINERS READ IN LIVEBOOK 3SOFTWARE INSTALLATION SIMPLIFIED READ IN LIVEBOOK 4WORKING WITH STORAGE AND VOLUMES READ IN LIVEBOOK 5SINGLE-HOST NETWORKING READ IN LIVEBOOK 6LIMITING RISK WITH RESOURCE CONTROLS PART 2: PACKAGING SOFTWARE FOR DISTRIBUTION READ IN LIVEBOOK 7PACKAGING SOFTWARE IN IMAGES READ IN LIVEBOOK 8BUILDING IMAGES AUTOMATICALLY WITH DOCKERFILES READ IN LIVEBOOK 9PUBLIC AND PRIVATE SOFTWARE DISTRIBUTION READ IN LIVEBOOK 10IMAGE PIPELINES PART 3: HIGHER-LEVEL ABSTRACTIONS AND ORCHESTRATION READ IN LIVEBOOK 11SERVICES WITH DOCKER AND COMPOSE READ IN LIVEBOOK 12FIRST-CLASS CONFIGURATION ABSTRACTIONS READ IN LIVEBOOK 13ORCHESTRATING SERVICES ON A CLUSTER OF DOCKER HOSTS WITH SWARM
£36.71
O'Reilly Media Making Things Talk: Using Sensors, Networks, and
Book SynopsisThe workbenches of hobbyists, hackers, and makers have become overrun with microcontrollers, computers-on-a-chip that power homebrewed video games, robots, toys, and more. In Making Things Talk, Tom Igoe, one of the creators of Arduino, shows how to make these gadgets talk. Whether you need to connect some sensors to the Internet or create a device that can interact wirelessly with other creations, this book shows you what you need. Although they are powerful, the projects in this book are inexpensive to build: the Arduino microcontroller board itself ranges from around $25 to $40. The networking hardware covered here includes Ethernet, Wi-Fi, Bluetooth, and can be had for $25 to $50. Fully updated for the latest Arduino hardware and software, this book lets you combine microcontrollers, sensors, and networking hardware to make things... and make them talk to each other!
£25.59
Pragmatic Bookshelf Practical Microservices: Build Event-Driven
Book SynopsisMVC and CRUD make software easier to write, but harder to change. Microservice-based architectures can help even the smallest of projects remain agile in the long term, but most tutorials meander in theory or completely miss the point of what it means to be microservice-based. Roll up your sleeves with real projects and learn the most important concepts of evented architectures. You'll have your own deployable, testable project and a direction for where to go next. Much ink has been spilled on the topic of microservices, but all of this writing fails to accurately identity what makes a system a monolith, define what microservices are, or give complete, practical examples, so you're probably left thinking they have nothing to offer you. You don't have to be at Google or Facebook scale to benefit from a microservice-based architecture. Microservices will keep even small and medium teams productive by keeping the pieces of your system focused and decoupled. Discover the basics of message-based architectures, render the same state in different shapes to fit the task at hand, and learn what it is that makes something a monolith (it has nothing to do with how many machines you deploy to). Conserve resources by performing background jobs with microservices. Deploy specialized microservices for registration, authentication, payment processing, e-mail, and more. Tune your services by defining appropriate service boundaries. Deploy your services effectively for continuous integration. Master debugging techniques that work across different services. You'll finish with a deployable system and skills you can apply to your current project. Add the responsiveness and flexibility of microservices to your project, no matter what the size or complexity. What You Need: While the principles of this book transcend programming language, the code examples are in Node.js because JavaScript, for better or worse, is widely read. You'll use PostgreSQL for data storage, so familiarity with it is a plus. The books does provide Docker images to make working with PostgreSQL a bit easier, but extensive Docker knowledge is not required.
£35.14
Pragmatic Bookshelf Powerful Command-Line Applications in Go: Build
Book SynopsisWhether you want to automate tasks, analyze data, parse logs, talk to network services, or address other systems requirements, writing your own command-line tool may be the fastest - and perhaps the most fun - way to do it. The Go programming language is a great choice for developing tools that are fast, reliable, and cross-platform. Create command-line tools that work with files, connect to services, and even manage external processes, all while using tests and benchmarks to ensure your programs are fast and correct. When you want to develop cross platform command-line tools that are fast and reliable, use Go, a modern programming language that combines the reliability of compiled languages with the ease of use and flexibility of dynamic typed languages. Work through practical examples to develop elegant and efficient tools by applying Go's rich standard library, its built in support for concurrency, and its expressive syntax. Use Go's integrated testing capabilities to automatically test your tools, ensuring they work reliably even across code refactoring. Develop CLI tools that interact with your users by using common input/output patterns, including environment variables and flags. Handle files to read or persist data, and manipulate paths consistently in cross-platform scenarios. Control processes and handle signals, and use a benchmark driven approach and Go's concurrency primitives to create tools that perform well. Use powerful external libraries such as Cobra to create modern and flexible tools that handle subcommands, and develop tools that interact with databases, APIs, and network services. Finally, leverage what you learned by tackling additional challenges at the end of each chapter. What You Need: Go 1.8 or higher, an internet connection to download the example files and additional libraries, and a text editor to write your programs.
£35.14
The Pragmatic Programmers Hands-on Rust: Effective Learning through 2D Game
Book SynopsisRust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters - and what better way to learn than by making games. Each chapter in this book presents hands-on, practical projects ranging from "Hello, World" to building a full dungeon crawler game. With this book, you'll learn game development skills applicable to other engines, including Unity and Unreal. Rust is an exciting programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters. With Rust, you have a shiny new playground where your game ideas can flourish. Each chapter in this book presents hands-on, practical projects that take you on a journey from "Hello, World" to building a full dungeon crawler game. Start by setting up Rust and getting comfortable with your development environment. Learn the language basics with practical examples as you make your own version of Flappy Bird. Discover what it takes to randomly generate dungeons and populate them with monsters as you build a complete dungeon crawl game. Run game systems concurrently for high-performance and fast game-play, while retaining the ability to debug your program. Unleash your creativity with magical items, tougher monsters, and intricate dungeon design. Add layered graphics and polish your game with style. What You Need: A computer running Windows 10, Linux, or Mac OS X. A text editor, such as Visual Studio Code. A video card and drivers capable of running OpenGL 3.2.
£36.57
The Pragmatic Programmers Program Management for Open Source Projects: How
Book SynopsisEvery organization develops a bureaucracy, and open source projects are no exception. When your structure is intentional and serves the project, it can lead to a successful and predictable conclusion. But project management alone won't get you there. Take the next step to full program management. Become an expert at facilitating communication between teams, managing schedules and project lifecycle, coordinating a process for changes, and keeping meetings productive. Make decisions that get buy-in from all concerned. Learn how to guide your community-driven open source project with just the right amount of structure. Bureaucratic processes naturally develop in large organizations, and open source projects are no different. The trick is to keep the processes intentional and in service of the project. That's program management and you have probably been doing it even if you don't have that title. Make your open source projects successful, predictable, and enjoyable by applying the principles and skills of program management in this book. See how program management differs from project management. Build trust and credibility by building relationships, sharing information, and communicating effectively. Construct efficient decision-making and governance structures, with openness and clear responsibilities. Conduct more effective and enjoyable meetings. Hold the right kind of meeting for the matters to be discussed: text, phone, video, or face-to-face. Develop release lifecycles, including release planning, schedules, and go/no-go decisions, and keep on schedule. Create and manage an effective changes process. Use your bug tracker to better understand and manage the bugs and feature requests of your project. Make decisions that get buy-in from all concerned. Develop processes that serve your open source project instead of making the project serve the process.
£27.54
No Starch Press,US Natural Language Processing With Python And
Book SynopsisSmart Natural Language Processing with Python is an introduction to natural language processing (NLP). The book uses spaCy, a leading Python library for NLP, to guide readers through common NLP tasks related to generating and understanding human language with code. It addresses problems like understanding a user's intent, continuing a conversation with a human, and using syntactic dependencies. It also teaches you how to connect an NLP script to a messaging app, store user data in a database to fill in a form, and customise your own statistical models to improve text processing.Trade Review"A good resource for those programmers who want to learn to bridge the gap and write applications that anyone can use just by talking or writing to their machines and have the machine reply back." —Jon Lazar, JustJonTable of ContentsIntroductionChapter 1: How Natural Language Processing WorksChapter 2: The Text-Processing PipelineChapter 3: Working with Container Objects and Customizing spaCyChapter 4: Extracting and Using Linguistic FeaturesChapter 5: Working with Word VectorsChapter 6: Finding Patterns and Walking Dependency TreesChapter 7: VisualizationsChapter 8: Intent RecognitionChapter 9: Storing User Input in a DatabaseChapter 10: Training ModelsChapter 11: Deploying Your Own ChatbotChapter 12: Implementing Web Data and Processing ImagesLinguistic Primer
£30.39
No Starch Press,US Hardcore Programming For Mechanical Engineers:
Book SynopsisHardcore Programming for Engineers is about solving mechanical engineering problems using a computer. These problems require good programming skills and some knowledge of computer graphics, geometry, regular expressions, and other technologies that are covered in this book but which are typically hard to find in one text alone. The book covers all the essential ingredients that make up engineering applications with a focus on code quality and automated unit testing to ensure that code does what it is supposed to do, without errors.Trade Review"For mechanical engineers working with engineering drawings and statics, there’s a lot to like." —Lee Teschler, Design World
£45.59
No Starch Press,US Racket Programming The Fun Way: From Strings to
Book SynopsisRacket Programming the Fun Way couples the beginner-friendly Racket programming language with fun applications and examples that cover a wide range of computer science topics in order to demonstrate computational approaches to solving mathematical problems.Trade Review"Very cool. The book takes you through a logical series of chapters that build on one another, passing from the needed introduction to lists and all the basics of handling data of various types to arithmetic, functions, conditionals, into realms where Racket gets super interesting. Creating plots and graphs, GUIs, and working with data are done in ways unique to Lisp and its dialects and I really like how this book explains how to do so. The last few chapters of the book are super fascinating as they delve into topics like logic programming, computing machines, and even writing an algebraic calculator in Racket." —Matthew Helmke"The author does a great of highlighting the power of the language — the concision, the flow, the ability to distil a problem. At time it's impressive just how much can be achieved in a few lines of Racket code. For those of us using more verbose languages the difference is striking. . . . this is a book that gets my vote. It's hard work in places, and you'll need to put some effort in if you are get anywhere, but then that's exactly the kind of fun that the book promises from the outset." —Pan Pantziarka, TechBookReportTable of ContentsIntroductionChapter 1: Racket BasicsChapter 2: Arithmetic and Other Numerical ParaphernaliaChapter 3: Function FundamentalsChapter 4: Plotting, Drawing, and a Bit of Set TheoryChapter 5: GUI: Getting Users InterestedChapter 6: DataChapter 7: Searching for AnswersChapter 8: Logic ProgrammingChapter 9: Computing MachinesChapter 10: TRAC: The Racket Algebraic CalculatorAppendix A: Number BasesAppendix B: Special SymbolsIndex
£38.39
No Starch Press,US The Ghidra Book: A Definitive Guide
Book SynopsisThe Ghidra Book teaches readers how to use Ghidra to answer the hardest problems about software behavior. It is a tutorial about Ghidra's features that includes examples and instructions on how to use and modify the open source software to make it meet the needs of any individual or organisation.Trade Review"The Ghidra Book provides a thorough introduction for new users, using clear examples with plenty of background information . . . a valuable addition to the skill set of a malware analyst." —Max Kersten"The book takes you from the beginning of your Ghidra journey to the end. From an introduction to disassembly and working with the basics of Ghidra to scripting in Ghidra to extend its capabilities, this book covers it all. . . . a perfect 5/5 for me." —Tyler Reguly, Tripwire Book Club "I would highly recommend this book. Rather than simply being a Ghidra user guide, the authors did an exceptional job of laying out many of the fundamental concepts involved in software reverse engineering." —Craig Young, Principal Security Researcher, Tripwire "I enjoyed The Ghidra Book, and it was a good starting point for me in entering the world of reverse engineering and the many different tools that are accessible due to being open-sourced. I encourage anyone that has an interest in reverse engineering or who just wants to investigate cool open-sourced tools to give The Ghidra Book a read."—Matthew Jerzewski, Security Researcher, TripwireTable of ContentsChapter 1: Introduction to DisassemblyChapter 2: Reversing and Disassembly ToolsChapter 3: Ghidra BackgroundChapter 4: Getting Started with GhidraChapter 5: CodeBrowser and Display WindowsChapter 6: Disassembly NavigationChapter 7: Disassembly ManipulationChapter 8: Data Types and Data StructuresChapter 9: Cross-ReferencesChapter 10: GraphsChapter 11: Collaborative SRE with GhidraChapter 12: Customizing GhidraChapter 13: Extending Ghidra SignaturesChapter 14: Basic Ghidra ScriptingChapter 15: Advanced Ghidra ScriptingChapter 16: Using Ghidra in Headless ModeChapter 17: Unrecognized Binary FilesChapter 18: ProcessorsChapter 19: Compiler VariationsChapter 20: Obfuscated Code AnalysisChapter 21: Patching BinariesChapter 22: Vulnerability AnalysisChapter 23: Binar Differencing and Version TrackingAppendix A: Ghidra for IDA UsersAppendix B: C to assembly correspondence
£45.59
No Starch Press,US Hello Web Design: Design Fundamentals and
Book SynopsisThis book democratises web development for everyone. It's a fun, clever guide that covers all of the key design principles, best practices, useful shortcuts, pro tips, real-world examples, and basic coding tutorials needed to produce a beautiful website that you'll feel confident sharing with the world. Because you, too, can design for the web!Trade Review"Think of Hello Web Design as a book of cheat codes. It’s short, to the point, and tells you everything you need to know to be a perfectly competent web designer." (from the foreword)—Jeremy Keith, Author of Resilient Web Design and cofounder of Clearleft"A concise yet information-packed book . . . help[s] you better understand the basics of design and give you the gist you need to be a better designer immediately."—Michael Wong, The Designership, A Best Book Resource For Designers"It effectively teaches fundamental design skills to entrepeneurs, developers, and the rest of us." —Startups for the Rest of Us"The value of the knowledge I took away from my time with it cannot be overstated . . . Hello Web Design is a quick read coming in at about 140 pages and I highly recommend it. The book retails for about 25 dollars and is well worth the price. Its definitely changed my approach on how to handle layouts and designs for my future projects."—Ryan's Coding Journey BlogTable of ContentsIntroductionChapter 1: If You Read Only One Chapter, Make It This OneChapter 2: Theory And Design PrinciplesChapter 3: The Process And Training Your Design EyeChapter 4: ReassurancesChapter 5: Additional Resources
£20.39
No Starch Press,US Math For Security: From Graphs and Geometry to
Book SynopsisApplied Math for Security is one of the first math-based guides specifically geared for information security practitioners. Readers will learn how to use concepts from various fields of mathematics - like graph theory, computational geometry, and statistics - to create and implement ready-to-use security tools. The book is written in a lively, conversational style that engages readers from the get-go. Chapters are enriched with code examples written in Python, and feature hands-on 'proof of concept' projects that involve developing math-based applications to solve real-world problems. Readers are also able to apply the mathematical constructs that they learn to a variety of challenging scenarios, like determining the ideal location for fire stations, disrupting information flow in a social network, building facial recognition software, and designing custom tools for modern security work.Trade Review"A very practical book for security. . . . a real eye-opener."—William Gasarch, Professor, University of Maryland-Dept of Computer Science"A really nice introduction to graph theory and computational geometry for people who know a bit of Python and without a mathematical background."—Julien Voisin, Artificial Truth"The book was very easy to follow, I'd expect anyone with a technical or stats background to be able to dive right in given the step-by-step instructions and explanations provided by Daniel."—@WithSandra, tech YouTuber and security analyst"Whether you're an aspiring security professional, a social network analyst, or an innovator seeking to create cutting-edge security solutions, Math for Security will empower you to solve complex problems with precision and confidence. "—Midwest Book ReviewTable of ContentsAcknowledgments IntroductionPART I: ENVIRONMENT AND CONVENTIONSChapter 1: Setting up the EnvironmentChapter 2: Programming and Math ConventionsPART II: GRAPH THEORY AND COMPUTATIONAL GEOMETRYChapter 3: Securing Networks with Graph TheoryChapter 4: Building a Network Traffic Analysis Tool Chapter 5: Identifying Threats with Social Network AnalysisChapter 6: Analyzing Social Networks to Prevent Security IncidentsChapter 7: Using Geometry to Improve Security PracticesChapter 8: Tracking People in Physical Space with Digital InformationChapter 9: Computational Geometry for Safety Resource DistributionChapter 10: Computational Geometry for Facial RecognitionPART III: THE ART GALLERY PROBLEMChapter 11: Distributing Security Resources to Guard a SpaceChapter 12: The Minimum Viable Product Approach to Security Software DevelopmentChapter 13: Delivering Python ApplicationsNotesIndex
£35.99
No Starch Press,US Avr Workshop: A Hands-On Introduction with 60
Book SynopsisAVR Workshop is a comprehensive introduction to working with the Microchip AVR 8-bit family of microcontrollers - made famous through their use in Arduino and other compatible boards. Whether you're an absolute beginner or longtime electronics enthusiast, this book gives you the latest coding and hardware knowledge required to build over 55 projects. After the author guides you through the basic C programming skills you need to work directly with ATmega328P-PU and ATtiny85 microcontrollers, your operation will be up and running. You'll go from building blinking LEDs and handling various types of user input, to creating real-time clocks, digital thermometers, and even controlling small, motorised devices.Table of ContentsChapter 1: Getting StartedChapter 2: First StepsChapter 3: Getting InputChapter 4: Communicating with the Outside WorldChapter 5: Taking Control with Hardware InterruptsChapter 6: Timing with Hardware TimersChapter 7: PWMChapter 8: MotorsChapter 9: EEPROMChapter 10: LibrariesChapter 11: SPI BusChapter 12: I2C BusChapter 13: LCDChapter 14: Servos
£34.39
No Starch Press,US Dive Into Data Science: Use Python To Tackle Your
Book SynopsisThis beginner's book will teach you how to apply the principles of data science to improve your business strategies - no math proficiency required! Easy-to-follow chapters take the reader through concepts like A/B testing, supervised and unsupervised machine learning, web scraping, and more. Each concept is illustrated using real-world business applications, real-world data, and useful Python code examples. The tone is conversational, and the author avoids the dense mathematical theories associated with data science in favour of simple explanations and practical applications. By the end of the book, readers should be comfortable working with data, applying data to business problems, and using best practices to analyse data using Python.Trade Review"Strikes a nice balance of explaining fundamental data science concepts and theories, while also equipping readers with hands-on practice with Python. . . . definitely a good place to start data science."—Ben Dickson, TechTalks"Dive Into Data Science is a book every budding data analyst will want. Tuckfield covers the field with nuance and insight to show you what you can do and lead you to new ground. . . . If you have any interest in data science you’ll find this book a welcomed joy and refer to it for years to come."—David S. Mazel, Principal/Manager Systems Engineer, Regulus-Group"Another nice learning resource for newbie data scientists."—Daniel D. Gutierrez, Editor-in-Chief, insideBIGDATA"I highly recommend this book . . . The trick to writing an introductory Data Science book is to land on the right balance between 'now watch what this magical line of Python code does' and 'here’s what’s happening and what this approach is good for'. I think Dr. Tuckfield has done it."—Dr. Daniel Zingaro, author of Algorithmic Thinking and Learn to Code by Solving Problems"Dive Into Data Science is a concise, accessible guide that demystifies the essential tools and techniques used by data scientists, allowing anyone with a basic understanding of programming to explore and analyze data like a pro."—Allen B. Downey, Staff Producer at Brilliant and author of Elements of Data Science and Modeling and Simulation in Python"Comprehensive and thoroughly 'user friendly' in in organization and presentation, [Dive Into Data Science] is the ideal instructional reference guide to utilizing Python as a basic and essential part of doing business in today's increasing complex, competitive, and digital world . . . . a highly recommended addition to personal, professional, community, corporate, college, and university library Computer Programming & Business Management collections and supplemental MBA curriculum studies lists."—Midwest Book ReviewTable of ContentsAcknowledgmentsIntroductionChapter 1: Exploratory Data AnalysisChapter 2: ForecastingChapter 3: Group ComparisonsChapter 4: A/B TestingChapter 5: Binary ClassificationChapter 6: Supervised LearningChapter 7: Unsupervised LearningChapter 8: Web ScrapingChapter 9: Recommendation SystemsChapter 10: Natural Language ProcessingChapter 11: Data Science in Other LanguagesIndex
£28.49
No Starch Press,US R for the Rest of Us
Book Synopsis
£45.59
In Easy Steps Limited Cool Scratch Projects in Easy Steps
Book SynopsisMillions of children and young people worldwide are using Scratch to make their own games and animations.Following on from the success of Scratch Programming in easy steps, 2nd edition, Cool Scratch Projects in easy steps gives you great ideas to create computer games and other projects that'll impress your friends and family and you'll have endless fun creating and playing them! The book provides step-by-step instructions for building projects that show off some of the cool things you can do with Scratch. It starts with two simple projects to get you started. Find out how to: Make a game with animated cartoon characters Build a drum machine and make random music Use anaglyph glasses for 3D effects and 3D Art Design amazing mazes in a 3D environment Create your own stop motion films Use the ScratchJr app to create games and interactive stories anywhere using your iPad or Android tablet Cool Scratch Projects in easy steps has projects for Scratch 2.0 on a PC/Mac and Scratch 1.4 on the Raspberry Pi, and includes a Raspberry Pi Camera Module project. Each project includes suggestions for customizing it, so you can make it your own!
£10.44
The Pragmatic Programmers The Passionate Programmer
Book SynopsisSuccess in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself; don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical 'Act on It' sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
£18.99
The Pragmatic Programmers Definitive ANTLR 4 Reference
Book SynopsisProgrammers run into parsing problems all the time. Whether it's a data format like JSON, a network protocol like SMTP, a server configuration file for Apache, a PostScript/PDF file, or a simple spreadsheet macro language--ANTLR v4 and this book will demystify the process. ANTLR v4 has been rewritten from scratch to make it easier than ever to build parsers and the language applications built on top. This completely rewritten new edition of the bestselling Definitive ANTLR Reference shows you how to take advantage of these new features. Build your own languages with ANTLR v4, using ANTLR's new advanced parsing technology. In this book, you'll learn how ANTLR automatically builds a data structure representing the input (parse tree) and generates code that can walk the tree (visitor). You can use that combination to implement data readers, language interpreters, and translators. You'll start by learning how to identify grammar patterns in language reference manuals and then slowly start building increasingly complex grammars. Next, you'll build applications based upon those grammars by walking the automatically generated parse trees. Then you'll tackle some nasty language problems by parsing files containing more than one language (such as XML, Java, and Javadoc). You'll also see how to take absolute control over parsing by embedding Java actions into the grammar. You'll learn directly from well-known parsing expert Terence Parr, the ANTLR creator and project lead. You'll master ANTLR grammar construction and learn how to build language tools using the built-in parse tree visitor mechanism. The book teaches using real-world examples and shows you how to use ANTLR to build such things as a data file reader, a JSON to XML translator, an R parser, and a Java class->interface extractor. This book is your ticket to becoming a parsing guru! What You Need: ANTLR 4.0 and above. Java development tools. Ant build system optional (needed for building ANTLR from source)
£28.02
Springer The Python Workbook
Book SynopsisPart I: Exercises.- Introduction to Programming.- Decision Making.- Repetition.- Functions.- Lists.- Dictionaries.- Files and Exceptions.- Recursion.- Part II: Solutions.- Solutions to the Introduction to Programming Exercises.- Solutions to the Decision Making Exercises.- Solutions to the Repetition Exercises.- Solutions to the Function Exercises.- Solutions to the List Exercises.- Solutions to the Dictionary Exercises.- Solutions to the File and Exception Exercises.- Solutions to the Recursion Exercises.
£49.49
Springer Concurrent and Realtime Programming
Book Synopsis1. Introduction to Concurrent Programming.- 2. Algorithms and Process Synchronization Mechanisms Based on Shared Memory.- 3. Message-Based Systems.- 4. Real-Time Systems.
£44.99
De Gruyter AutomationML: A Practical Guide
Book SynopsisThis book is a beginner's guide to AutomationML Edition 2, written for students, engineers, lecturers, developers and those interested. In guides through the basics of AutomationML Edition 2, CAEX and the AutomationML Editor. AutomationML stands for digitisation of engineering data and engineering workflows. AutomationML achieves both human readability and machine-readability. It is a method for converting data into digital information, and it supports the special needs of iterative engineering data exchange. AutomationML is in the hot spot of the digitisation of automation engineering data. It enables the modelling and transport of engineering data in a vendor neutral and machine-readable models, a valuable source of digital innovation. Machine readable engineering data makes the data accessible and interpretable by software, enabling a plethora of opportunities. This book carefully introduces AutomationML, its goals, values and innovations. It teaches the architecture of AutomationML and explains the language elements with a multitude of examples and step-by-step instructions. Additional material to the book and more information about AutomationML on the website: https://www.automationml.org/about-automationml/publications/amlbook/
£38.00
Wiley-VCH Verlag GmbH C programmieren lernen für Dummies
Book SynopsisFür dieses Buch müssen Sie kein Vorwissen mitbringen. Trotzdem werden auch fortgeschrittene C-Themen wie Zeiger und verkettete Listen behandelt - und das alles im aktuellen C11-Standard. Der besondere Clou ist die Verwendung der Programmierumgebung Code::Blocks, die es für Windows-, Mac- und Linux-Betriebssysteme gibt. Zahlreiche Beispiele, viele, viele Übungen und die Programmtexte zum Herunterladen sorgen dafür, dass Sie nach dem Durcharbeiten dieses Buchs über solide Programmiertechniken verfügen. Dann sind Sie bereit für noch mehr: eigene Projekte und das Lernen weiterer Programmiersprachen.Table of ContentsEinführung 23 TEIL I: Mit der Programmierung in C beginnen 29 Kapitel 1: Ein schneller Start für die Ungeduldigen 31 Kapitel 2: Die Sache mit dem Programmieren 43 Kapitel 3: Die Anatomie von C 51 TEIL II: Das kleine Einmaleins der C-Programmierung 65 Kapitel 4: Versuch und Irrtum 67 Kapitel 5: Werte und Konstanten 79 Kapitel 6: Ein Abstellplatz 89 Kapitel 7: Eingabe und Ausgabe 99 Kapitel 8: Entscheidungsfindung 111 Kapitel 9: Schleifen, Schleifen, Schleifen 125 Kapitel 10: Mit Funktionen Spaß haben 141 TEIL III: Auf dem vorhandenen Wissen aufbauen 155 Kapitel 11: Das unvermeidliche Mathematikkapitel 157 Kapitel 12: Her mit den Arrays 173 Kapitel 13: Mit Text Spaß haben 191 Kapitel 14: Die multivariablen Strukturen 207 Kapitel 15: Das Leben in der Kommandoeingabezeile 217 Kapitel 16: Variabler Blödsinn 225 Kapitel 17: Binärer Wahnsinn 237 TEIL IV: Für Fortgeschrittene 255 Kapitel 18: Einführung in Pointer 257 Kapitel 19: Tief im Pointer-Land 271 Kapitel 20: Verkettete Listen 289 Kapitel 21: Es wird Zeit 309 TEIL V: Und der ganze Rest 317 Kapitel 22: Dauerhafte Speicherfunktionen 319 Kapitel 23: Verwaltung von Dateien 335 Kapitel 24: Projekte für Fortgeschrittene und Hartgesottene 345 Kapitel 25: Programmfehler raus! 355 TEIL VI: Der Top-Ten-Teil 367 Kapitel 26: Zehn gängige Schnitzer 369 Anhänge 377 Stichwortverzeichnis 390
£13.29
Wiley-VCH Verlag GmbH Android-Apps programmieren lernen für Dummies
Book SynopsisSie wollen programmieren lernen, um eigene Apps für Ihr Android-Gerät zu entwickeln? Dann sind Sie hier richtig. Dieses Buch ist drei Bücher in einem: Sie lernen Java, begreifen die objektorientierte Programmierung und erhalten eine Einführung in die Android-App-Entwicklung. Wichtige Themen wie die Ansteuerung des Displays oder der Umgang mit der Grafik, den Sensoren und GPS werden Ihnen an kleinen Apps vorgeführt. Nebenher erfahren Sie noch so einiges über die Spieleprogrammierung und sogar, wie Sie JSON-Daten aus dem Internet in eine App einbinden. Freuen Sie sich auf die spannende Reise, die vor Ihnen liegt!Table of ContentsÜber den Autor 9 Einleitung 23 Teil I: Werkzeugbeschaffung und Einrichtung 27 Kapitel 1: Entwicklungsumgebung 29 Kapitel 2: Das »leere« Projekt von Android Studio 37 Teil II: Wir programmieren 55 Kapitel 3: Eine Mini-App für die ersten Programmierschritte 57 Kapitel 4: BMI: Abfragen und Schleifen 85 Kapitel 5: Lotto: Zufall, Arrays und Schleifen 115 Kapitel 6: Brüche in Klassen 129 Teil III: Ein eigenes grafisches Spiel 147 Kapitel 7: Das Spiel Minesweeper als View 149 Kapitel 8: Die Highscore-Liste 199 Teil IV: Wechselnde Displays und ihre Daten 231 Kapitel 9: Wechselspiel der Bildschirme 233 Kapitel 10: Fragmente einer Activity 279 Kapitel 11: Zugriff auf Dateien und das Internet 297 Teil V: Ortskenntnis und Sensoren 317 Kapitel 12: Wo bin ich? 319 Kapitel 13: Sensoren 345 Kapitel 14: Multimedia: Video und Audio 355 Teil VI: Der Top-Ten-Teil 369 Kapitel 15: Die Top 10 der Emulator-Gemeinheiten 371 Kapitel 16: Die Top-10-Strategie für benutzbare Apps 375 Abbildungsverzeichnis 379 Stichwortverzeichnis 383
£17.99
BPB Publications Data Analysis with Python: Introducing NumPy,
Book Synopsis
£25.64
Unknown Quantum Computing for Beginners
£29.44
Pearson Education Reliability Engineering in the Cloud
Book SynopsisMariya Breyter is a technology executive, professor, and author of the business bestseller Agile Product and Project Management. With over two decades of leadership experience, she has transformed multi-billion-dollar enterprises through innovative cloud strategies, digital transformation, and AI-powered solutions that consistently drive operational excellence and delight customers. Carlos Rojas is a technology executive with global experience, a former AWS engineering leader, AI advisor, seasoned expert in resilience and reliability engineering, and operational excellence. His insights stem from decades of experience across finance, telecom, government, and healthcare IT, transforming teams into industry leaders.
£28.79
Pearson Education (US) The Scrum AntiPatterns Guide
Book SynopsisStefan Wolpers is a Professional Scrum Trainer at Scrum.org, Agile Coach, and Scrum Master, specializing in guiding agile transformations through practices like Scrum, LeSS, Kanban, Lean Startup, and professional product management. He's a licensed Agile Fluency Team Diagnostic facilitator with a history of senior leadership roles. His agile coaching focuses on scaling product delivery for fast-growing, venture-capital-backed startups as well as transitioning existing teams in established enterprises. Stefan curates the widely-followed Food for Agile Thought newsletter, engaging 50,000+ global Agile enthusiasts. He shares insights on Age-of-Product.com, hosts a vibrant Slack community of 18,000+ agile practitioners, and has authored e-books on agile themes, garnering over 100,000 downloads.Table of ContentsForeword by Dave West xv Foreword by Janna Bastow xvii Preface xix Introduction xxv Chapter 1. Scrum Master Anti-Patterns 1 Introduction 1 The Scrum Master According to the Scrum Guide 2 Possible Reasons Why Scrum Masters Leave the Path 2 Anti-Patterns from Acting as an Agile (Line) Manager 5 Scrum Master Anti-Patterns by Scrum Events 15 The Sprint Planning 15 The Sprint 17 The Daily Scrum 20 The Retrospective 22 Food for Thought 26 Conclusion 26 Chapter 2. Product Owner Anti-Patterns 29 Introduction 29 The Role of the Product Owner According to the Scrum Guide 30 Product Backlog and Refinement Anti-Patterns 31 Sprint Planning Anti-Patterns 40 Sprint Anti-Patterns 42 Product Owner Anti-Patterns during the Daily Scrum 46 Sprint Review Anti-Patterns 50 Food for Thought 52 Conclusion 52 Chapter 3. Scrum Developer Anti-Patterns 55 Introduction 55 The Role of the Developers in Scrum 56 Developer Anti-Patterns by Scrum Events 56 Sprint Anti-Patterns 56 Sprint Planning Anti-Patterns of the Developers 66 Anti-Patterns during the Daily Scrum 68 Developer Anti-Patterns Concerning the Sprint Review 75 Sprint Retrospective Anti-Patterns of Developers 76 Anti-Patterns at the Product Backlog Level 77 Food for Thought 81 Conclusion 81 Chapter 4. Scrum Stakeholder Anti-Patterns 83 Introduction 83 Common Scrum Stakeholder Anti-Patterns 84 Scrum Stakeholder Anti-Patterns at the Organizational Level 84 Sprint Anti-Patterns of the IT Management 96 Incentivized Scrum Stakeholder Anti-Patterns 98 Stakeholder Anti-Patterns at Scrum Event Level 104 Product Backlog and Refinement Anti-Patterns 105 The Daily Scrum 105 Sprint Planning Anti-Patterns of Stakeholders 106 The Sprint Review 106 The Sprint Retrospective 107 Food for Thought 108 Conclusion 108 Chapter 5. Sprint Anti-Patterns 109 Introduction 109 The Purpose of the Sprint 109 Sprint Anti-Patterns 111 Sprint Anti-Patterns of the Product Owner 111 Sprint Anti-Patterns of the Developers 112 Sprint Anti-Patterns of the Scrum Master 113 Sprint Anti-Patterns of the Scrum Team 113 Sprint Anti-Patterns of the IT Management 118 Sprint Review Anti-Patterns of Stakeholders 121 Food for Thought 123 Conclusion 124 Chapter 6. Sprint Planning Anti-Patterns 125 Introduction 125 Preparing the Sprint Planning 127 Sprint Planning Anti-Patterns 127 Sprint Planning Anti-Patterns of the Developers 127 Sprint Planning Anti-Patterns of the Product Owner 132 Sprint Planning Anti-Patterns of the Scrum Team 134 Sprint Planning Anti-Patterns of the Scrum Master 138 Food for Thought 139 Conclusion 140 Chapter 7. Daily Scrum Anti-Patterns 141 Introduction 141 The Purpose of the Daily Scrum According to the Scrum Guide 142 Daily Scrum Anti-Patterns 143 Daily Scrum Anti-Patterns of the Scrum Team 143 Daily Scrum Anti-Patterns of the Developers 146 Daily Scrum Anti-Patterns of the Product Owner 150 Daily Scrum Anti-Patterns of the Scrum Master 150 Daily Scrum Anti-Patterns of the Stakeholders 151 Food for Thought 154 Conclusion 155 Chapter 8. Sprint Review Anti-Patterns 157 Introduction 157 The Scrum Guide on the Sprint Review 158 Sprint Review Anti-Patterns 159 Sprint Review Anti-Patterns of the Scrum Team 159 Sprint Review Anti-Patterns of the Product Owner 162 Sprint Review Anti-Patterns of the Developers 165 Sprint Review Anti-Patterns of the Stakeholders 167 Food for Thought 174 Conclusion 175 Chapter 9. Sprint Retrospective Anti-Patterns 177 Introduction 177 The Scrum Guide on the Sprint Retrospective 178 Sprint Retrospective Anti-Patterns 179 Sprint Retrospective Anti-Patterns of the Scrum Team 179 Sprint Retrospective Anti-Patterns of the Scrum Master 187 Sprint Retrospective Anti-Patterns of the Organization 191 Food for Thought 194 Conclusion 195 Chapter 10. Product Backlog and Refinement Anti-Patterns 197 Introduction 197 The Product Backlog According to the Scrum Guide 198 Common Product Backlog Anti-Patterns 200 General Product Backlog Anti-Patterns 200 Product Backlog Anti-Patterns of the Product Owner 207 Product Backlog Anti-Patterns of the Developers 209 Product Backlog Anti-Patterns of the Scrum Team 211 Food for Thought 212 Conclusion 213 Chapter 11. Sprint Backlog Anti-Patterns 215 Introduction 215 Sprint Backlog Anti-Patterns 216 Sprint Backlog Anti-Patterns of the Scrum Team 217 Sprint Backlog Anti-Patterns of the Developers 220 Sprint Backlog Anti-Patterns of the Product Owner 225 Food for Thought 228 Conclusion 228 Chapter 12. Increment Anti-Patterns 229 Introduction 229 The Purpose of the Increment According to the Scrum Guide 230 Increment Anti-Patterns 231 Increment Anti-Patterns by the Scrum Team 231 Increment Anti-Patterns of the Stakeholders or the Organization 240 Food for Thought 242 Conclusion 242 Chapter 13. Product Goal Anti-Patterns 245 Introduction 245 The Purpose of the Product Goal According to the Scrum Guide 246 Product Goal Anti-Patterns 247 Product Goal Anti-Patterns of the Product Owner 247 Product Goal Anti-Patterns of the Scrum Team 251 Product Goal Anti-Patterns of the Organization 254 Food for Thought 257 Conclusion 257 Chapter 14. Sprint Goal Anti-Patterns 259 Introduction 259 How to Create Sprint Goals 260 Sprint Goal Anti-Patterns 261 Sprint Goal Anti-Patterns of the Scrum Team 262 Sprint Goal Anti-Patterns Induced by the Organization 267 Sprint Goal Anti-Patterns by the Developers 269 Sprint Goal Anti-Patterns by the Product Owner 271 Food for Thought 272 Conclusion 272 Chapter 15. Definition of Done Anti-Patterns 273 Introduction 273 Creating a Successful Definition of Done 275 Definition of Done Anti-Patterns 277 Definition of Done Anti-Patterns of the Developers 278 Definition of Done Anti-Patterns of the Scrum Team 281 Definition of Done Anti-Patterns of the Organization 289 Definition of Done Anti-Patterns of the Product Owner 290 Food for Thought 291 Conclusion 291 Appendix A. How to Sabotage Scrum Masters and Product Owners at an Organizational Level 293 Appendix B. Toolbox 305 Index 369
£22.09
APress The Absolute Beginners Guide to HTML and CSS
Book SynopsisWritten as an illustrated, step-by-step guide for beginners, this book will introduce you to HTML and CSS with lab exercises and examples of code. You''ll begin by setting up the development environment such as local web server and html editor. The next few chapters cover web servers, the basics of HTML such as language syntax, tags, and how to write a program. Next, you''ll learn how to put together simple web pages demonstrating how the code works and how to use various HTML tags and CSS to style the pages. Finally, the use of CMS to build websites such as Drupal and WordPress and how HTML and CSS fits in. At the end there are reference libraries for both HTML tags and CSS.The Absolute Beginners Guide to HTML and CSS provides you with the tools, confidence, and inspiration to start building web pages and websites. If you are a programmer, developer or a student, or just someone who wants to learn on their own, this book is for you.What You''ll Learn<Table of Contents1) What is HTML? Structure of an HTML File HTML Element Structure Hypertext Where are the HTML Files Stored? HTML 5 What is CSS? What is a URL? Web Servers Development Tools 2) Getting Started with HTML Setting Up Tags for Formatting Text Headings Paragraphs Bold Text Italic Text Adding Images Understanding Images Dimensions Image Alignment Adding Tables Adding Links Using Images as Links Adding Lists Unordered List Ordered List Creating Forms Input Types Text Fields Text Area Radio Buttons Select Lists Labels Submission Method 3) Adding Multimedia Adding Video Adding Audio Adding Image Maps 4) Inline HTML Styles Adding Color Background Color Text Color Fonts 5) Cascading Style Sheets CSS Files CSS Syntax Type/Element Selector Class Selector ID Selector Styling Text Styling Layouts Block vs Inline Elements Floating & Cleared Elements 6) Adding Structure Designing a Layout Styling the Structure with CSS Styles Building your Text Styles Building the HTML Page 7) CMS Systems What are they How do they work Connecting to Databases WordPress 8) HTML Color Codes 9) HTML Tag Reference Library Basic Structure Text Formatting Links Lists Multimedia Tables Forms 10) CSS Property Reference Library 11) Common Web Fonts Web Safe Fonts Google Fonts 12) Common Web Measurements Relative Lengths Absolute Lengths
£20.99
BCS Learning & Development Limited Computational Thinking: A beginner's guide to
Book SynopsisComputational thinking (CT) is a timeless, transferable skill that enables you to think more clearly and logically, as well as a way to solve specific problems. With this book you'll learn to apply computational thinking in the context of software development to give you a head start on the road to becoming an experienced and effective programmer. Beginning with the core ideas of computational thinking, with this book you'll build up an understanding of the practical problem-solving approach and explore how computational thinking aids good practice in programming, complete with a full guided example.Trade Review'A ‘must-read’ for students embarking on their first major projects, and any teacher stepping up to the challenge of teaching Computing at school. This is not just a book about programming, more a template for teaching. Karl Beecher speaks in plain English. Incisive insight and practical advice, standing independent of the Python exemplars used, predicated as it is on a holistic understanding of the subject terrain.' -- Roger Davies * and Editor, Computing At School, Tenderfoot Training Project *'I really enjoyed this book - it bridges the gap between the very practical, but perhaps narrow, field of computer programming with the real world problems that computer scientists might need to solve. The issue with encouraging young people to learn 'coding' is that they often struggle to understand how and when to use specific concepts and ideas. The underlying principles and real world applications are essential, and much harder to put across, than remembering the syntax for an IF statement. The discussions are presented in a readable format that would be suitable for bright GCSE students and should be essential reading for all A Level computer scientists. With the shift in focus at GCSE and A Level alike, from 'programming' to 'computational thinking', explanations and examples of abstraction, decomposition and generalisation, along with modelling, logic and efficiency are both engaging and useful.' -- Mark Clarkson * Subject Leader and CAS Master Teacher *'Computational Thinking is a sprint through the theoretical underpinnings of computation through to their application and the creation of software. The thirteen chapters start with an explanation of what is computational thinking, move through logical and algorithmic thinking, abstraction and modelling, to then focus on how to apply these concepts. The middle set of chapters cover how to create software with a focus on object-oriented solutions with a relatively short discussion on testing. Python is used as the programming language to demonstrate the use of the various techniques introduced in the early chapters but it would be straight forward to convert the examples to other similar languages such as Java, C#, etc. The final chapter provides a guided example based on the creation of a computer-controlled home automation system. Each chapter has a set of exercises to work through and model answers for these are supplied in an appendix. This is a very good overview of a very large field. While all of the topics are deserving of their own book the strength of this book is the explanation and demonstration of their close relationships. This book is an excellent complement to the many books on the Raspberry Pi and Python programming because it starts to explain some of the theoretical underpinnings. The seasoned software developer should not be discouraged by the beginner’s guide sub-title as this is also a good refresher on some of the basics.' -- Colin Smythe * Principal Consultant *'A scholarly book albeit written from a pragmatic perspective distilling the knowledge and expertise of an experienced software developer into a form that is accessible for beginners. It's engaging exercises and comprehensive references make it an invaluable learning resource. I would recommend it to anyone who wishes to gain an understanding of computational thinking and best practice in modern software development.' -- Professor Cornelia Boldyreff'This book will prove an excellent companion to more general texts on Computing, especially for teachers who are new to the subject. And with exercises at the end of each chapter, there is much to challenge students also. Highly recommended.' -- Terry Freedman * independent education technology writer and consultant, and publisher of the ICT and Computing in Education website at www.ictineducation.org *Table of ContentsPreface Part 1: Computational Thinking 1. What is Computational Thinking? 2. Logical and Algorithmic Thinking 3. Problem Solving and Decomposition 4. Abstraction and Modelling 5. Anticipating and Dealing with Errors 6. Evaluating a Solution Part 2: Computational Thinking in Software Development 7. Tutorial for Python Beginners 8. Effective Building Blocks 9. Organising Your Code 10 . Using Abstractions and Patterns 11. Effective Modelling 12. Testing and Evaluating Programs 13. A Guided Example Appendix
£22.49
Mike Murach & Associates Inc. Murach's ASP.NET Core MVC (2nd Edition)
Book Synopsis
£51.84
BPB Publications Building Modelbased Enterprise Architecture
a huge range and FREE tracked UK delivery on ALL orders.
£29.99
Pearson Education (US) Network Security
Book SynopsisTable of ContentsChapter 1 Introduction 1.1 Opinions, Products 1.2 Roadmap to the Book 1.3 Terminology 1.4 Notation 1.5 Cryptographically Protected Sessions 1.6 Active and Passive Attacks 1.7 Legal Issues 1.7.1 Patents 1.7.2 Government Regulations 1.8 Some Network Basics 1.8.1 Network Layers 1.8.2 TCP and UDP Ports 1.8.3 DNS (Domain Name System) 1.8.4 HTTP and URLs 1.8.5 Web Cookies 1.9 Names for Humans 1.10 Authentication and Authorization 1.10.1 ACL (Access Control List) 1.10.2 Central Administration/Capabilities 1.10.3 Groups 1.10.4 Cross-Organizational and Nested Groups 1.10.5 Roles 1.11 Malware: Viruses, Worms, Trojan Horses 1.11.1 Where Does Malware Come From? 1.11.2 Virus Checkers 1.12 Security Gateway 1.12.1 Firewall 1.12.2 Application-Level Gateway/Proxy 1.12.3 Secure Tunnels 1.12.4 Why Firewalls Don't Work 1.13 Denial-of-Service (DoS) Attacks 1.14 NAT (Network Address Translation) 1.14.1 Summary Chapter 2 Introduction to Cryptography 2.1 Introduction 2.1.1 The Fundamental Tenet of Cryptography 2.1.2 Keys 2.1.3 Computational Difficulty 2.1.4 To Publish or Not to Publish 2.1.5 Earliest Encryption 2.1.6 One-Time Pad (OTP) 2.2 Secret Key Cryptography 2.2.1 Transmitting Over an Insecure Channel 2.2.2 Secure Storage on Insecure Media 2.2.3 Authentication 2.2.4 Integrity Check 2.3 Public Key Cryptography 2.3.1 Transmitting Over an Insecure Channel 2.3.2 Secure Storage on Insecure Media 2.3.3 Authentication 2.3.4 Digital Signatures 2.4 Hash Algorithms 2.4.1 Password Hashing 2.4.2 Message Integrity 2.4.3 Message Fingerprint 2.4.4 Efficient Digital Signatures 2.5 Breaking an Encryption Scheme 2.5.1 Ciphertext Only 2.5.2 Known Plaintext 2.5.3 Chosen Plaintext 2.5.4 Chosen Ciphertext 2.5.5 Side-Channel Attacks 2.6 Random Numbers 2.6.1 Gathering Entropy 2.6.2 Generating Random Seeds 2.6.3 Calculating a Pseudorandom Stream from the Seed 2.6.4 Periodic Reseeding 2.6.5 Types of Random Numbers 2.6.6 Noteworthy Mistakes 2.7 Numbers 2.7.1 Finite Fields 2.7.2 Exponentiation 2.7.3 Avoiding a Side-Channel Attack 2.7.4 Types of Elements used in Cryptography 2.7.5 Euclidean Algorithm 2.7.6 Chinese Remainder Theorem 2.8 Homework Chapter 3 Secret Key Cryptography 3.1 Introduction 3.2 Generic Block Cipher Issues 3.2.1 Blocksize, Keysize 3.2.2 Completely General Mapping 3.2.3 Looking Random 3.3 Constructing a Practical Block Cipher 3.3.1 Per-Round Keys 3.3.2 S-boxes and Bit Shuffles 3.3.3 Feistel Ciphers 3.4 Choosing Constants 3.5 Data Encryption Standard (DES) 3.5.1 DES Overview 3.5.2 The Mangler Function 3.5.3 Undesirable Symmetries 3.5.4 What's So Special About DES? 3.6 3DES (Multiple Encryption DES) 3.6.1 How Many Encryptions? 3.6.1.1 Encrypting Twice with the Same Key 3.6.1.2 Encrypting Twice with Two Keys 3.6.1.3 Triple Encryption with Only Two Keys 3.6.2 Why EDE Rather Than EEE? 3.7 Advanced Encryption Standard (AES) 3.7.1 Origins of AES 3.7.2 Broad Overview 3.7.3 AES Overview 3.7.4 Key Expansion 3.7.5 Inverse Rounds 3.7.6 Software Implementations of AES 3.8 RC4 3.9 Homework Chapter 4 Modes of Operation 4.1 Introduction 4.2 Encrypting a Large Message 4.2.1 ECB (Electronic Code Book) 4.2.2 CBC (Cipher Block Chaining) 4.2.2.1 Randomized ECB 4.2.2.2 CBC 4.2.2.3 CBC Threat—Modifying Ciphertext Blocks 4.2.3 CTR (Counter Mode) 4.2.3.1 Choosing IVs for CTR Mode 4.2.4 XEX (XOR Encrypt XOR) 4.2.5 XTS (XEX with Ciphertext Stealing) 4.3 Generating MACs 4.3.1 CBC-MAC 4.3.1.1 CBC Forgery Attack 4.3.2 CMAC 4.3.3 GMAC 4.3.3.1 GHASH 4.3.3.2 Transforming GHASH into GMAC 4.4 Ensuring Privacy and Integrity Together 4.4.1 CCM (Counter with CBC-MAC) 4.4.2 GCM (Galois/Counter Mode) 4.5 Performance Issues 4.6 Homework Chapter 5 Cryptographic Hashes 5.1 Introduction 5.2 The Birthday Problem 5.3 A Brief History of Hash Functions 5.4 Nifty Things to Do with a Hash 5.4.1 Digital Signatures 5.4.2 Password Database 5.4.3 Secure Shorthand of Larger Piece of Data 5.4.4 Hash Chains 5.4.5 Blockchain 5.4.6 Puzzles 5.4.7 Bit Commitment 5.4.8 Hash Trees 5.4.9 Authentication 5.4.10 Computing a MAC with a Hash 5.4.11 HMAC 5.4.12 Encryption with a Secret and a Hash Algorithm 5.5 Creating a Hash Using a Block Cipher 5.6 Construction of Hash Functions 5.6.1 Construction of MD4, MD5, SHA-1 and SHA-2 5.6.2 Construction of SHA-3 5.7 Padding 5.7.1 MD4, MD5, SHA-1, and SHA2-256 Message Padding 5.7.2 SHA-3 Padding Rule 5.8 The Internal Encryption Algorithms 5.8.1 SHA-1 Internal Encryption Algorithm 5.8.2 SHA-2 Internal Encryption Algorithm 5.9 SHA-3 f Function (Also Known as KECCAK-f) 5.10 Homework Chapter 6 First-Generation Public Key Algorithms 6.1 Introduction 6.2 Modular Arithmetic 6.2.1 Modular Addition 6.2.2 Modular Multiplication 6.2.3 Modular Exponentiation 6.2.4 Fermat's Theorem and Euler's Theorem 6.3 RSA 6.3.1 RSA Algorithm 6.3.2 Why Does RSA Work? 6.3.3 Why Is RSA Secure? 6.3.4 How Efficient Are the RSA Operations? 6.3.4.1 Exponentiating with Big Numbers 6.3.4.2 Generating RSA Keys 6.3.4.3 Why a Non-Prime Has Multiple Square Roots of One 6.3.4.4 Having a Small Constant e 6.3.4.5 Optimizing RSA Private Key Operations 6.3.5 Arcane RSA Threats 6.3.5.1 Smooth Numbers 6.3.5.2 The Cube Root Problem 6.3.6 Public-Key Cryptography Standard (PKCS) 6.3.6.1 Encryption 6.3.6.2 The Million-Message Attack 6.3.6.3 Signing 6.4 Diffie-Hellman 6.4.1 MITM (Meddler-in-the-Middle) Attack 6.4.2 Defenses Against MITM Attack 6.4.3 Safe Primes and the Small-Subgroup Attack 6.4.4 ElGamal Signatures 6.5 Digital Signature Algorithm (DSA) 6.5.1 The DSA Algorithm 6.5.2 Why Is This Secure? 6.5.3 Per-Message Secret Number 6.6 How Secure Are RSA and Diffie-Hellman? 6.7 Elliptic Curve Cryptography (ECC) 6.7.1 Elliptic Curve Diffie-Hellman (ECDH) 6.7.2 Elliptic Curve Digital Signature Algorithm (ECDSA) 6.8 Homework Chapter 7 Quantum Computing 7.1 What Is a Quantum Computer? 7.1.1 A Preview of the Conclusions 7.1.2 First, What Is a Classical Computer? 7.1.3 Qubits and Superposition 7.1.3.1 Example of a Qubit 7.1.3.2 Multi-Qubit States and Entanglement 7.1.4 States and Gates as Vectors and Matrices 7.1.5 Becoming Superposed and Entangled 7.1.6 Linearity 7.1.6.1 No Cloning Theorem 7.1.7 Operating on Entangled Qubits 7.1.8 Unitarity 7.1.9 Doing Irreversible Operations by Measurement 7.1.10 Making Irreversible Classical Operations Reversible 7.1.11 Universal Gate Sets 7.2 Grover's Algorithm 7.2.1 Geometric Description 7.2.2 How to Negate the Amplitude of |k⟩ 7.2.3 How to Reflect All the Amplitudes Across the Mean 7.2.4 Parallelizing Grover's Algorithm 7.3 Shor's Algorithm 7.3.1 Why Exponentiation mod n Is a Periodic Function 7.3.2 How Finding the Period of ax mod n Lets You Factor n 7.3.3 Overview of Shor's Algorithm 7.3.4 Converting to the Frequency Graph—Introduction 7.3.5 The Mechanics of Converting to the Frequency Graph 7.3.6 Calculating the Period 7.3.7 Quantum Fourier Transform 7.4 Quantum Key Distribution (QKD) 7.4.1 Why It's Sometimes Called Quantum Encryption 7.4.2 Is Quantum Key Distribution Important? 7.5 How Hard Are Quantum Computers to Build? 7.6 Quantum Error Correction 7.7 Homework Chapter 8 Post-Quantum Cryptography 8.1 Signature and/or Encryption Schemes 8.1.1 NIST Criteria for Security Levels 8.1.2 Authentication 8.1.3 Defense Against Dishonest Ciphertext 8.2 Hash-based Signatures 8.2.1 Simplest Scheme – Signing a Single Bit 8.2.2 Signing an Arbitrary-sized Message 8.2.3 Signing Lots of Messages 8.2.4 Deterministic Tree Generation 8.2.5 Short Hashes 8.2.6 Hash Chains 8.2.7 Standardized Schemes 8.2.7.1 Stateless Schemes 8.3 Lattice-Based Cryptography 8.3.1 A Lattice Problem 8.3.2 Optimization: Matrices with Structure 8.3.3 NTRU-Encryption Family of Lattice Encryption Schemes 8.3.3.1 Bob Computes a (Public, Private) Key Pair 8.3.3.2 How Bob Decrypts to Find m 8.3.3.3 How Does this Relate to Lattices? 8.3.4 Lattice-Based Signatures 8.3.4.1 Basic Idea 8.3.4.2 Insecure Scheme 8.3.4.3 Fixing the Scheme 8.3.5 Learning with Errors (LWE) 8.3.5.1 LWE Optimizations 8.3.5.2 LWE-based NIST Submissions 8.4 Code-based Schemes 8.4.1 Non-cryptographic Error-correcting Codes 8.4.1.1 Invention Step 8.4.1.2 Codeword Creation Step 8.4.1.3 Misfortune Step 8.4.1.4 Diagnosis Step 8.4.2 The Parity-Check Matrix 8.4.3 Cryptographic Public Key Code-based Scheme 8.4.3.1 Neiderreiter Optimization 8.4.3.2 Generating a Public Key Pair 8.4.3.3 Using Circulant Matrices 8.5 Multivariate Cryptography 8.5.1 Solving Linear Equations 8.5.2 Quadratic Polynomials 8.5.3 Polynomial Systems 8.5.4 Multivariate Signature Systems 8.5.4.1 Multivariate Public Key Signatures 8.6 Homework Chapter 9 Authentication of People 9.1 Password-based Authentication 9.1.1 Challenge-Response Based on Password 9.1.2 Verifying Passwords 9.2 Address-based Authentication 9.2.1 Network Address Impersonation 9.3 Biometrics 9.4 Cryptographic Authentication Protocols 9.5 Who Is Being Authenticated? 9.6 Passwords as Cryptographic Keys 9.7 On-Line Password Guessing 9.8 Off-Line Password Guessing 9.9 Using the Same Password in Multiple Places 9.10 Requiring Frequent Password Changes 9.11 Tricking Users into Divulging Passwords 9.12 Lamport's Hash 9.13 Password Managers 9.14 Web Cookies 9.15 Identity Providers (IDPs) 9.16 Authentication Tokens 9.16.1 Disconnected Tokens 9.16.2 Public Key Tokens 9.17 Strong Password Protocols 9.17.1 Subtle Details 9.17.2 Augmented Strong Password Protocols 9.17.3 SRP (Secure Remote Password) 9.18 Credentials Download Protocols 9.19 Homework Chapter 10 Trusted Intermediaries 10.1 Introduction 10.2 Functional Comparison 10.3 Kerberos 10.3.1 KDC Introduces Alice to Bob 10.3.2 Alice Contacts Bob 10.3.3 Ticket Granting Ticket (TGT) 10.3.4 Interrealm Authentication 10.3.5 Making Password-Guessing Attacks Difficult 10.3.6 Double TGT Protocol 10.3.7 Authorization Information 10.3.8 Delegation 10.4 PKI 10.4.1 Some Terminology 10.4.2 Names in Certificates 10.5 Website Gets a DNS Name and Certificate 10.6 PKI Trust Models 10.6.1 Monopoly Model 10.6.2 Monopoly plus Registration Authorities (RAs) 10.6.3 Delegated CAs 10.6.4 Oligarchy 10.6.5 Anarchy Model 10.6.6 Name Constraints 10.6.7 Top-Down with Name Constraints 10.6.8 Multiple CAs for Any Namespace Node 10.6.9 Bottom-Up with Name Constraints 10.6.9.1 Functionality of Up-Links 10.6.9.2 Functionality of Cross-Links 10.6.10 Name Constraints in PKIX Certificates 10.7 Building Certificate Chains 10.8 Revocation 10.8.1 CRL (Certificate Revocation list 10.8.2 Online Certificate Status Protocol (OCSP) 10.8.3 Good-Lists vs. Bad-Lists 10.9 Other Information in a PKIX Certificate 10.10 Issues with Expired Certificates 10.11 DNSSEC (DNS Security Extensions) 10.12 Homework Chapter 11 Communication Session Establishment 11.1 One-way Authentication of Alice 11.1.1 Timestamps vs. Challenges 11.1.2 One-Way Authentication of Alice using a Public Key 11.2 Mutual Authentication 11.2.1 Reflection Attack 11.2.2 Timestamps for Mutual Authentication 11.3 Integrity/Encryption for Data 11.3.1 Session Key Based on Shared Secret Credentials 11.3.2 Session Key Based on Public Key Credentials 11.3.3 Session Key Based on One-Party Public Keys 11.4 Nonce Types 11.5 Intentional MITM 11.6 Detecting MITM 11.7 What Layer? 11.8 Perfect Forward Secrecy 11.9 Preventing Forged Source Addresses 11.9.1 Allowing Bob to Be Stateless in TCP 11.9.2 Allowing Bob to Be Stateless in IPsec 11.10 Endpoint Identifier Hiding 11.11 Live Partner Reassurance 11.12 Arranging for Parallel Computation 11.13 Session Resumption/Multiple Sessions 11.14 Plausible Deniability 11.15 Negotiating Crypto Parameters 11.15.1 Suites vs. à la Carte 11.15.2 Downgrade Attack 11.16 Homework Chapter 12 IPsec 12.1 IPsec Security Associations 12.1.1 Security Association Database 12.1.2 Security Policy Database 12.1.3 IKE-SAs and Child-SAs 12.2 IKE (Internet Key Exchange Protocol) 12.3 Creating a Child-SA 12.4 AH and ESP 12.4.1 ESP Integrity Protection 12.4.2 Why Protect the IP Header? 12.4.3 Tunnel, Transport Mode 12.4.4 IPv4 Header 12.4.5 IPv6 Header 12.5 AH (Authentication Header) 12.6 ESP (Encapsulating Security Payload) 12.7 Comparison of Encodings 12.8 Homework Chapter 13 SSL/TLS and SSH 13.1 Using TCP 13.2 StartTLS 13.3 Functions in the TLS Handshake 13.4 TLS 1.2 (and Earlier) Basic Protocol 13.5 TLS 1.3 13.6 Session Resumption 13.7 PKI as Deployed by TLS 13.8 SSH (Secure Shell) 13.8.1 SSH Authentication 13.8.2 SSH Port Forwarding 13.9 Homework Chapter 14 Electronic Mail Security 14.1 Distribution Lists 14.2 Store and Forward 14.3 Disguising Binary as Text 14.4 HTML-Formatted Email 14.5 Attachments 14.6 Non-cryptographic Security Features 14.6.1 Spam Defenses 14.7 Malicious Links in Email 14.8 Data Loss Prevention (DLP) 14.9 Knowing Bob's Email Address 14.10 Self-Destruct, Do-Not-Forward, 14.11 Preventing Spoofing of From Field 14.12 In-Flight Encryption 14.13 End-to-End Signed and Encrypted Email 14.14 Encryption by a Server 14.15 Message Integrity 14.16 Non-Repudiation 14.17 Plausible Deniability 14.18 Message Flow Confidentiality 14.19 Anonymity 14.20 Homework Chapter 15 Electronic Money 15.1 ECASH 15.2 Offline eCash 15.2.1 Practical Attacks 15.3 Bitcoin 15.3.1 Transactions 15.3.2 Bitcoin Addresses 15.3.3 Blockchain 15.3.4 The Ledger 15.3.5 Mining 15.3.6 Blockchain Forks 15.3.7 Why Is Bitcoin So Energy-Intensive? 15.3.8 Integrity Checks: Proof of Work vs. Digital Signatures 15.3.9 Concerns 15.4 Wallets for Electronic Currency 15.5 Homework Chapter 16 Cryptographic Tricks 16.1 Secret Sharing 16.2 Blind Signature 16.3 Blind Decryption 16.4 Zero-Knowledge Proofs 16.4.1 Graph Isomorphism ZKP 16.4.2 Proving Knowledge of a Square Root 16.4.3 Noninteractive ZKP 16.5 Group Signatures 16.5.1 Trivial Group Signature Schemes 16.5.1.1 Single Shared Key 16.5.1.2 Group Membership Certificate 16.5.1.3 Multiple Group Membership Certificates 16.5.1.4 Blindly Signed Multiple Group Membership Certificates 16.5.2 Ring Signatures 16.5.3 DAA (Direct Anonymous Attestation) 16.5.4 EPID (Enhanced Privacy ID) 16.6 Circuit Model 16.7 Secure Multiparty Computation (MPC) 16.8 Fully Homomorphic Encryption (FHE) 16.8.1 Bootstrapping 16.8.2 Easy-to-Understand Scheme 16.9 Homework Chapter 17 Folklore 17.1 Misconceptions 17.2 Perfect Forward Secrecy 17.3 Change Encryption Keys Periodically 17.4 Don't Encrypt without Integrity Protection 17.5 Multiplexing Flows over One Secure Session 17.5.1 The Splicing Attack 17.5.2 Service Classes 17.5.3 Different Cryptographic Algorithms 17.6 Using Different Secret Keys 17.6.1 For Initiator and Responder in Handshake 17.6.2 For Encryption and Integrity 17.6.3 In Each Direction of a Secure Session 17.7 Using Different Public Keys 17.7.1 Use Different Keys for Different Purposes 17.7.2 Different Keys for Signing and Encryption 17.8 Establishing Session Keys 17.8.1 Have Both Sides Contribute to the Master Key 17.8.2 Don't Let One Side Determine the Key 17.9 Hash in a Constant When Hashing a Password 17.10 HMAC Rather than Simple Keyed Hash 17.11 Key Derivation 17.12 Use of Nonces in Protocols 17.13 Creating an Unpredictable Nonce 17.14 Compression 17.15 Minimal vs. Redundant Designs 17.16 Overestimate the Size of Key 17.17 Hardware Random Number Generators 17.18 Put Checksums at the End of Data 17.19 Forward Compatibility 17.19.1 Options 17.19.2 Version Numbers 17.19.2.1 Version Number Field Must Not Move 17.19.2.2 Negotiating Highest Version Supported 17.19.2.3 Minor Version Number Field Glossary Math M.1 Introduction M.2 Some definitions and notation M.3 Arithmetic M.4 Abstract Algebra M.5 Modular Arithmetic M.5.1 How Do Computers Do Arithmetic? M.5.2 Computing Inverses in Modular Arithmetic M.5.2.1 The Euclidean Algorithm M.5.2.2 The Chinese Remainder Theorem M.5.3 How Fast Can We Do Arithmetic? M.6 Groups M.7 Fields M.7.1 Polynomials M.7.2 Finite Fields M.7.2.1 What Sizes Can Finite Fields Be? M.7.2.2 Representing a Field M.8 Mathematics of Rijndael M.8.1 A Rijndael Round M.9 Elliptic Curve Cryptography M.10 Rings M.11 Linear Transformations M.12 Matrix Arithmetic M.12.1 Permutations M.12.2 Matrix Inverses M.12.2.1 Gaussian Elimination M.13 Determinants M.13.1 Properties of Determinants M.13.1.1 Adjugate of a Matrix M.13.2 Proof: Determinant of Product is Product of Determinants M.14 Homework Bibliography 9780136643609 TOC 8/2/2022
£60.29
Pearson Education (US) Java for Programmers
Book Synopsis
£40.49
MIT Press Ltd Software Design Decoded
Book SynopsisAn engaging, illustrated collection of insights revealing the practices and principles that expert software designers use to create great software.
£15.29
No Starch Press,US Python Flash Cards: Syntax, Concepts, and
Book SynopsisKeep your coding skills sharp on the go! Eric Matthes, author of the best-selling Python Crash Course, distils essential Python programming knowledge into this 75-card deck you can use anywhere. Work through the deck in order or shuffle it up for a new study session every time. You can brush up foundational programming principles and vocabulary like data structures, logical control, and program flow, quiz yourself on Python syntax, and test your skills against exercises and challenges designed to keep you on your toes, all in one sitting.Trade Review"I like the teaching approach of the author . . . A great resource."—makes sense, YouTuberTable of Contents 1. Concepts and Vocabulary 2. Simple Data Types 3. Lists and Tuples 4. Dictionaries 5. Conditional Statements 6. Functions 7. Classes 8. Testing 9. Packages
£28.79
No Starch Press,US Micro:bit For Mad Scientists: 30 Clever Coding
Book SynopsisThe BBC micro:bit is a tiny electronics board developed to teach kids and beginners about coding and hardware. This book will show you how to code in MicroPython and JavaScript Blocks, simplified versions of the popular Python and JavaScript programming languages, through building some dastardly and eccentric electronics projects with the micro:bit.Trade Review“Packed with projects and experiments for young, mad scientists . . . an excellent resource to take curious kids on a journey into physical computing.”—Andrew Gregory, HackSpace“Simon Monk has been teaching folks how to learn to code and make for many years, so he knows exactly the kinds of projects that any beginner can make, and all the trouble spots to avoid. . . . It’s a STEAM adventure for students of all backgrounds!”—Limor Fried, Adafruit“Fun for all Ages. Great book with very fun experiments. . . . Colorful pictures and instructions will help you create many interesting projects and the rest is up to your imagination.”—Marco, Amazon reviewerTable of ContentsIntroductionChapter 1: Getting StartedChapter 2: Super SonicChapter 3: Luminous LightChapter 4: Magical MagnetismChapter 5: Amazing AccelerationChapter 6: Mad MovementChapter 7: Time TravelChapter 8: Mad Scientist Mind GamesChapter 9: Environmental MadnessChapter 10: Radio ActivityAppendix: Get the Parts
£20.39
Manning Publications Nim in Action
Book SynopsisDESCRIPTION Nim is a new general-purpose programming language that offers support for systems programming, object oriented programming, procedural programming, functional programming, and more. Nim combines the speed of C with the expressiveness of Python and the flexibility of Lisp and it compiles to C as well as C++, Objective C, and even JavaScript. Nim's features make it perfect for developing anything from web applications to operating systems. Nim in Action introduces the Nim programming language and teaches readers how to write native software applications and libraries, web applications, embedded device software, and programs that communicate over the internet. This book is full of hands-on examples that teach how to test, debug, document, and package Nim applications. It also reveals how to interface with foreign languages such as C and C++ and how to use metaprogramming features to write domain specific languages. This book demonstrates how to implement a fully-functioning chat server, a Twitter clone, and many other software projects. It provides readers with a solid knowledge of Nim and the ability to use it to write powerful, portable and efficient applications. KEY FEATURES • Teaches how to write portable and efficient applications in Nim • Written by one of the main contributors to the Nim language • Lots of practical, real world examples • Full of hands on code samples and projects • Compile to C, C++, Objective C, and even JavaScript AUDIENCE This book assumes you’re a working developer proficient with another language like Java, Ruby, Python, C#, or C++. ABOUT THE TECHNOLOGY Nim is a new programming language that allows developers to write efficient software using a compiler, which produces native binaries with zero dependencies via compilation to the C programming language. It is the only programming language which combines the speed of C with the expressiveness of Python and the flexibility of Lisp.
£37.99
Manning Publications Haskell in Depth
Book SynopsisTurn the corner from “Haskell student” to “Haskell developer.” Haskell in Depth explores the important language features and programming skills you’ll need to build production-quality software using Haskell. And along the way, you’ll pick up some interesting insights into why Haskell looks and works the way it does. Get ready to go deep! Haskell in Depth is the perfect second book on Haskell. After a quick refresher on Haskell basics, this hands-on guide dives into examples and application scenarios designed to teach how Haskell works and how to apply it correctly. You’ll learn about managing projects with Cabal and Stack, tackle error-handling and testing, and package programs and libraries for production deployment. Key Features · Organizing your projects with Cabal and Stack · Testing and profiling · Working with data · Building web services and networking apps · Using the sophisticated libraries like lens, vinyl, and servant Written for developers familiar with Haskell basics. About the technology As software becomes more complex, it’s essential to program efficiently using tools and techniques that guarantee your applications will run correctly, grow easily, and last a long time. Haskell is a functional programming language that blends a mathematically-rigorous approach to software design with a tested ecosystem of tools and libraries you can use to build deployable applications. Since 2008, Vitaly Bragilevsky has been teaching Haskell and functional programming to undergraduate students at the Southern Federal University located in Rostov-on-Don, Russia. He is a member of the Haskell 2020 Committee, and has worked on the source code of the Glasgow Haskell Compiler (GHC) and the Idris compiler, both of which are implemented in Haskell.
£45.59
Manning Publications Data Science at Scale with Python and Dask
Book SynopsisLarge datasets tend to be distributed, non-uniform, and prone to change. Dask simplifies the process of ingesting, filtering, and transforming data, reducing or eliminating the need for a heavyweight framework like Spark. Data Science at Scale with Python and Dask teaches readers how to build distributed data projects that can handle huge amounts of data. The book introduces Dask Data Frames and teaches helpful code patterns to streamline the reader’s analysis. Key Features Working with large structured datasets Writing DataFrames Cleaningand visualizing DataFrames Machine learning with Dask-ML Working with Bags and Arrays Written for data engineers and scientists with experience using Python. Knowledge of the PyData stack (Pandas, NumPy, and Scikit-learn) will be helpful. No experience with low-level parallelism is required. About the technology Dask is a self-contained, easily extendible library designed to query, stream, filter, and consolidate huge datasets. Jesse Daniel has five years of experience writing applications in Python, including three years working with in the PyData stack (Pandas, NumPy, SciPy, Scikit-Learn). Jesse joined the faculty of the University of Denver in 2016 as an adjunct professor of business information and analytics, where he currently teaches a Python for Data Science course.
£37.99