Web programming Books
O'Reilly Media Learning Go
Book Synopsis
£42.39
O'Reilly Media Fluent React
Book SynopsisWhen it comes to building user interfaces on the web, React enables web developers to unlock a new world of possibilities. This practical book helps you take a deep dive into fundamental concepts of this JavaScript library, including JSX syntax and advanced patterns, the virtual DOM, React reconciliation, and advanced optimization techniques.
£39.74
Manning Publications ASP.NET Core in Action, Third Edition
Book SynopsisBuild professional-grade full-stack web applications using C# and ASP.NET Core. ASP.NET Core in Action, 3rd edition by Microsoft MVP Andrew Lock, is a fully updated edition, ideal for intermediate C# developers, and teaches you how to use your C# and .NET skills to build amazing cross-platform web applications. This revised bestseller reveals the latest .NET patterns, including minimal APIs and minimal hosting. Even if you have never worked with ASP.NET, you will soon start creating productive cross-platform web apps. Features include: Build minimal APIs for serving JSON to client-side applications Create dynamic, server-side rendered applications using Razor Pages User authentication and authorisation Store data using Entity Framework Core Unit and integration tests for ASP.NET Core applications Write custom middleware and components About the technology Developers love ASP.NET Core for its libraries and pre-built components that maximize productivity. This awesome web framework empowers you to build web applications using HTTP APIs, server-side rendered HTML, and long-running server processes - all by using the same familiar structure and components. Version 7.0 takes full advantage of new C# features, easy-to-build minimal APIs, and big performance upgrades.
£38.99
O'Reilly Media Generative AI on Aws
Book SynopsisWith this book, Chris Fregly, Antje Barth, and Shelbee Eigenbrode from AWS help CTOs, ML practitioners, application developers, business analysts, data engineers, and data scientists find practical ways to use this exciting new technology.
£47.99
John Wiley & Sons Inc JavaScript AllinOne For Dummies
Book SynopsisTable of ContentsIntroduction 1 Book 1: JavaScript Fundamentals 7 Chapter 1: Jumping into JavaScript 9 Chapter 2: Filling Your JavaScript Toolbox 41 Chapter 3: Using Data 63 Chapter 4: Working with Operators and Expressions 81 Chapter 5: Controlling Flow 91 Chapter 6: Using Arrays 105 Chapter 7: Making and Using Objects 125 Chapter 8: Writing and Running Functions 139 Chapter 9: Getting Oriented with Classes 167 Chapter 10: Making Things Happen with Events 181 Chapter 11: Writing Asynchronous JavaScript 197 Chapter 12: Using JavaScript Modules 223 Book 2: Meet Your Web Browser 231 Chapter 1: What a Web Browser Does 233 Chapter 2: Programming the Browser 241 Book 3: React 261 Chapter 1: Getting Started with React 263 Chapter 2: Writing JSX 281 Chapter 3: Building React Components 297 Chapter 4: Using Data and Events in React 327 Book 4: Vue 341 Chapter 1: Getting an Overview of Vue 343 Chapter 2: Introducing Vue Components 357 Chapter 3: Making Vue Templates 369 Chapter 4: Using Data and Reactivity 395 Chapter 5: Responding to Events 411 Book 5: Svelte 421 Chapter 1: Getting Started with Svelte 423 Chapter 2: Building with Components 437 Chapter 3: Designing Templates 451 Chapter 4: Using Directives 463 Chapter 5: Using the Component Lifecycle 471 Chapter 6: Advanced Svelte Reactivity 483 Book 6: Sharpening Your Tools 493 Chapter 1: Building from Scratch 495 Chapter 2: Optimizing and Bundling 513 Chapter 3: Testing Your JavaScript 535 Book 7: Node.js 557 Chapter 1: Node.js Fundamentals 559 Chapter 2: Streaming 587 Chapter 3: Working with Buffers 603 Chapter 4: Accessing the File System 613 Chapter 5: Networking with Node 627 Chapter 6: Using Events 639 Chapter 7: Error Handling and Debugging 651 Chapter 8: Accessing Databases 673 Chapter 9: Riding on the Express Train 697 Chapter 10: Registration and Authentication 721 Index 755
£22.39
Rosenfeld Media Managing Chaos: Digital Governance by Design
Book Synopsis
£33.29
The Pragmatic Programmers Concurrent Data Processing in Elixir: Fast,
Book SynopsisLearn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or fault-tolerance. Most projects benefit from running background tasks and processing data concurrently, but the world of OTP and various libraries can be challenging. Which Supervisor and what strategy to use? What about GenServer? Maybe you need back-pressure, but is GenStage, Flow, or Broadway a better choice? You will learn everything you need to know to answer these questions, start building highly concurrent applications in no time, and write code that's not only fast, but also resilient to errors and easy to scale. Whether you are building a high-frequency stock trading application or a consumer web app, you need to know how to leverage concurrency to build applications that are fast and efficient. Elixir and the OTP offer a range of powerful tools, and this guide will show you how to choose the best tool for each job, and use it effectively to quickly start building highly concurrent applications. Learn about Tasks, supervision trees, and the different types of Supervisors available to you. Understand why processes and process linking are the building blocks of concurrency in Elixir. Get comfortable with the OTP and use the GenServer behaviour to maintain process state for long-running jobs. Easily scale the number of running processes using the Registry. Handle large volumes of data and traffic spikes with GenStage, using back-pressure to your advantage. Create your first multi-stage data processing pipeline using producer, consumer, and producer-consumer stages. Process large collections with Flow, using MapReduce and more in parallel. Thanks to Broadway, you will see how easy it is to integrate with popular message broker systems, or even existing GenStage producers. Start building the high-performance and fault-tolerant applications Elixir is famous for today. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.
£30.35
No Starch Press,US Eloquent Javascript, 3rd Edition: A Modern
Book SynopsisJavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications. This much anticipated and thoroughly revised third edition of Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code.Trade Review“Eloquent Javascript 3rd Edition is a worthy and much-needed update to the popular programming book. The fact that the book covers ES6 is worth a re-read, but the new edition goes above and beyond with new illustrations, a new exercise, and tighter writing. The 3rd edition of the book is substantially improved from its predecessors and worthy of the hype.”—Books on Code"It’s a smart, lean JavaScript tutorial that exists as an in-print book from No Starch Press, and a free, nicely formatted web version . . . easily the most enjoyable read in this list. And there are so many useful insights that you won’t be bored."—Matthew MacDonald, Medium's Young Coder“This is all the JavaScript knowledge you’ll need to hit the ground running in a JavaScript project . . . it’s a book I will be frequently revisiting as it has put JavaScript back on my radar.”—GeekTeckStuff“This book would make a great addition to any developer's reference books . . . I really like the author's style of writing and clarity of explanations. The sample code and exercises also work, which can be a rare feature in tech-related books”—Gary Woodfine, Software Developer“I think this is one of the most enjoyable programming books I’ve read. It covers the core features of the language concisely but then goes on to illustrate how to use those features.”—Ian Hopkinson, IanHopkinson.org“If you’re at all interested in learning JavaScript, making this your first guide could mean the difference between getting discouraged and giving up and really getting into programming as a lifelong venture.”—Joshua Johnson, Design Shack“Marijn Haverbeke is a software philosopher and all-round genius. He also has a terrific sense of humor and writes both prose and code in a friendly and un-intimidating fashion. In common with the very best teachers he dispenses his wisdom with disarming simplicity. I became a better architect, author, mentor and developer because of this book. It deserves to share shelf space with Flannagan and Crockford.”—Angus Croll, Javascript We Blog"A tour de force that takes you from the fundamentals to the heights of JavaScript mastery. Marijn Haverbeke’s conversational prose breathes life into JavaScript, making it accessible and engaging."—Alex Maher, .NET C# dev"The author, Marijn Haverbeke, has a great voice."—Abu Sayed, Sayed.Cyou Blog"One of the things that makes [Eloquent JavaScript, 3rd Edition] so good is that it doesn’t shy away from complexity . . . Haverbeke is a talented teacher, and he seems to have an intuitive understanding of how difficult concepts can be explained without oversimplifying them."—Neil Abad, Book Review Buffs
£28.49
O'Reilly Media Head First HTML5
Book SynopsisHead First HTML5 Programming introduces the key features -- including improved text elements, audio and video tags, geolocation, and the Canvas drawing surface -- and uses concrete examples and exercises to apply and reinforce these concepts.
£35.99
O'Reilly Media Applied Text Analysis with Python
Book SynopsisThis practical book presents a data scientist's approach to building language-aware products with applied machine learning.
£39.74
Manning Publications Learn Kubernetes in a Month of Lunches
Book SynopsisIn Learn Kubernetes in a Month of Lunches you'll go from "what's a Pod?" to automatically scaling clusters of containers and components in just 22 hands-on lessons, each short enough to fit into a lunch break. Every lesson is task-focused and covers an essential skill on the road to Kubernetes mastery. You'll learn how to smooth container management with Kubernetes, including securing your clusters, and upgrades and rollbacks with zero downtime. No development stack, platform, or background is assumed. Author Elton Stoneman describes all patterns generically, so you can easily apply them to your applications and port them to other projects! about the technologyCreate apps that perform identically on your laptop, data center, and cloud! Kubernetes provides a consistent method for deploying applications on any platform, making it easy to grow. By efficiently orchestrating Docker containers, Kubernetes simplifies tasks like rolling upgrades, scaling, and self-healing. about the book Learn Kubernetes in a Month of Lunches is your guide to getting up and running with Kubernetes. You'll progress from Kubernetes basics to essential skills, learning to model, deploy, and manage applications in production. Exercises demonstrate how Kubernetes works with multiple languages and frameworks. You'll also practice with new apps, legacy code, and serverless functions. what's inside Deploying applications on Kubernetes clusters Understanding the Kubernetes app lifecycle, from packaging to rollbacks Self-healing and scalable apps Using Kubernetes as a platform for new technologies about the readerFor readers familiar with Docker and containerization. about the author Elton Stoneman is a Docker Captain, a 11-time Microsoft MVP, and the author of Learn Docker in a Month of Lunches.
£43.19
Cambridge University Press Python Programming for Biology
Book SynopsisThis book presents core concepts in computational biology in an accessible, jargon-free manner and offers a complete foundation course in the Python language, with entry points for novices and experienced programmers alike. Material covers traditional bioinformatics and many topics beyond, with practical examples for Python versions 2 and 3.Trade Review'As a long-time advocate of Python as the language of choice for both the bulk of biological data analysis and for teaching computer programming to molecular life scientists, I am delighted to see this book. [It] provides a well-focused introduction to Python programming but then goes on to use the clarity of the Python language to demystify a wide range of commonly applied data processing and analysis techniques that arise in modern cell and molecular biology. The integration of straightforward introductions to sequence analysis, image processing and statistical analysis (amongst others) into a book on Python is inspired. The clarity of the Python language helps to show that often 'yes it really is that simple', in a way that staring at a mathematical expression often fails to, and the programming element allows the reader to become actively involved.' Jeremy Craven, University of Sheffield'Python Programming for Biology is an excellent introduction to the challenges that biologists and biophysicists face. The choice of Python is appropriate; we use it in most research in our laboratories at the interface between biology, biochemistry and bioinformatics. The book takes us through programming principles for a beginner with a biological background, introducing the basics. It has useful tips for improving code and some specific examples, for example in sequence analysis, macromolecular structures, image processing and databases. I was pleased to see that there is a substantive section on machine learning which in the era of 'big data' is becoming central to much of the software developed for biomedical and agri-biotech research.' Tom Blundell, University of Cambridge'Stevens and Boucher tear down barriers to programming and bioinformatics, for biologists and medics alike … this is the book that I wish I could have read years ago. Serving as both a straightforward tutorial and plain-English reference, the key programming, biology and bioinformatics concepts necessary to build programs for practical, real-world applications are explained in a logical and easy-to-follow order, helping the reader to get from zero to results faster. Unlike many programming books and resources, information is presented in the right amount of detail and jargon is demystified, giving a gentle but thorough and practical introduction to programming with Python, while providing useful tips and encouraging good practices. This introduction is built on with 'from the ground up' explanations of basic, intermediate and advanced computational biology methodologies through Python implementations, resulting in a well-rounded text for programming to solve biological challenges.' Harry Jubb, University of Cambridge'As an increasingly valuable and important skill, programming can be daunting for those new to it. Python Programming for Biology provides the perfect introduction into the world of coding. Stevens and Boucher gently guide the reader through the basics and into practical examples that will aid the reader into incorporating Python into their research activities. I would not hesitate to recommend it as a valuable teaching aide or to people keen to expand their horizons into bioinformatics.' David Ascher, University of Cambridge'Python has become a programming and scripting language of utmost importance in scientific computing, in particular in biology. Major, widely used software packages make use of Python, and libraries offering powerful functionalities are available. Many if not most research projects in biology benefit from computational techniques. Although it is incredibly simple to write small scripts in Python, for a novice in programming, the first steps may seem daunting. In contrast to many other books on Python, this book is specifically aimed at an audience that has little or no experience with programming. After a step-by-step introduction to programming in Python, it describes concrete examples from different areas in biology, with code examples from data analysis to modelling. [It] is a highly valuable addition to the literature on Python, and recommended to any biologist who is interested in using computers in his research.' Michael Nilges, Institut Pasteur, France'[Stevens and Boucher's] understanding of the needs of the target audience for this book (primarily bench scientists with minimal programming experience) is complete. They have accurately customized the book, to meet those specific requirements which are so distinct from those of students aspiring to be specialist programmers. They have achieved this difficult objective without 'dumbing down' the content or omitting any relevant aspect of Python. The book provides an easy and comprehensive introduction for the complete novice as well as offering plenty to engage the more experienced reader. This work is exactly what is required for us to build new training events upon.' David Judge, University of CambridgeTable of ContentsPreface; Acknowledgements; 1. Prologue; 2. Beginners' guide; 3. Python basics; 4. Program control and logic; 5. Functions; 6. Files; 7. Object orientation; 8. Object data modelling; 9. Mathematics; 10. Coding tips; 11. Biological sequences; 12. Pairwise sequence alignments; 13. Multiple sequence alignments; 14. Sequence variation and evolution; 15. Macromolecular structures; 16. Array data; 17. High-throughput sequence analyses; 18. Images; 19. Signal processing; 20. Databases; 21. Probability; 22. Statistics; 23. Clustering and discrimination; 24. Machine learning; 25. Hard problems; 26. Graphical interfaces; 27. Improving speed; Appendix 1: simplified language reference; Appendix 2: selected standard type methods and operations; Appendix 3: standard module highlights; Appendix 4: string formatting; Appendix 5: regular expressions; Appendix 6: further statistics; Glossary; Index.
£56.99
Pearson Education (US) Learning Angular
Book Synopsis
£22.12
Pearson Education (US) Effective Python
Book SynopsisBrett Slatkin is a principal software engineer at Google. He is the technical co-founder of Google Surveys, the co-creator of the PubSubHubbub protocol, and he launched Google's first cloud computing product (App Engine). Fourteen years ago, he cut his teeth using Python to manage Google's enormous fleet of servers. Outside of his day job, he likes to play piano and surf (both poorly). He also enjoys writing about programming-related topics on his personal website (https://onebigfluke.com). He earned his B.S. in computer engineering from Columbia University in the City of New York. He lives in San Francisco.Trade Review“I have been recommending this book enthusiastically since the first edition appeared in 2015. This new edition, updated and expanded for Python 3, is a treasure trove of practical Python programming wisdom that can benefit programmers of all experience levels.” –Wes McKinney, Creator of Python Pandas project, Director of Ursa Labs “If you’re coming from another language, this is your definitive guide to taking full advantage of the unique features Python has to offer. I’ve been working with Python for nearly twenty years and I still learned a bunch of useful tricks, especially around newer features introduced by Python 3. Effective Python is crammed with actionable advice, and really helps define what our community means when they talk about Pythonic code.” –Simon Willison, Co-creator of Django “I’ve been programming in Python for years and thought I knew it pretty well. Thanks to this treasure trove of tips and techniques, I’ve discovered many ways to improve my Python code to make it faster (e.g., using bisect to search sorted lists), easier to read (e.g., enforcing keyword-only arguments), less prone to error (e.g., unpacking with starred expressions), and more Pythonic (e.g., using zip to iterate over lists in parallel). Plus, the second edition is a great way to quickly get up to speed on Python 3 features, such as the walrus operator, f-strings, and the typing module.” –Pamela Fox, Creator of Khan Academy programming courses “Now that Python 3 has finally become the standard version of Python, it’s already gone through eight minor releases and a lot of new features have been added throughout. Brett Slatkin returns with a second edition of Effective Python with a huge new list of Python idioms and straightforward recommendations, catching up with everything that’s introduced in version 3 all the way through 3.8 that we’ll all want to use as we finally leave Python 2 behind. Early sections lay out an enormous list of tips regarding new Python 3 syntaxes and concepts like string and byte objects, f-strings, assignment expressions (and their special nickname you might not know), and catch-all unpacking of tuples. Later sections take on bigger subjects, all of which are packed with things I either didn’t know or which I’m always trying to teach to others, including ‘Metaclasses and Attributes’ (good advice includes ‘Prefer Class Decorators over Metaclasses’ and also introduces a new magic method ‘__init_subclass__()’ I wasn’t familiar with), ‘Concurrency’ (favorite advice: ‘Use Threads for Blocking I/O, but not Parallelism,’ but it also covers asyncio and coroutines correctly) and ‘Robustness and Performance’ (advice given: ‘Profile before Optimizing’). It’s a joy to go through each section as everything I read is terrific best practice information smartly stated, and I’m considering quoting from this book in the future as it has such great advice all throughout. This is the definite winner for the ‘if you only read one Python book this year...’ contest.” –Mike Bayer, Creator of SQLAlchemy “This is a great book for both novice and experienced programmers. The code examples and explanations are well thought out and explained concisely and thoroughly. The second edition updates the advice for Python 3, and it’s fantastic! I’ve been using Python for almost 20 years, and I learned something new every few pages. The advice given in this book will serve anyone well.” –Titus Brown, Associate Professor at UC Davis “Once again, Brett Slatkin has managed to condense a wide range of solid practices from the community into a single volume. From exotic topics like metaclasses and concurrency to crucial basics like robustness, testing, and collaboration, the updated Effective Python makes a consensus view of what’s ‘Pythonic’ available to a wide audience.” –Brandon Rhodes, Author of python-patterns.guideTable of ContentsPrefaceChapter 1 Pythonic ThinkingChapter 2 Lists and DictionariesChapter 3 FunctionsChapter 4 Comprehensions and GeneratorsChapter 5 Classes and InterfacesChapter 6 Metaclasses and AttributesChapter 7 Concurrency and ParallelismChapter 8 Robustness and PerformanceChapter 9 Testing and DebuggingChapter 10 CollaborationIndex
£39.89
Pearson Education (US) Deep Learning Illustrated
Book Synopsis Jon Krohn is the chief data scientist at untapt, a machine learning startup in New York. He leads a flourishing Deep Learning Study Group, presents the acclaimed Deep Learning with TensorFlow LiveLessons in Safari, and teaches his Deep Learning curriculum at the NYC Data Science Academy. Jon holds a doctorate in neuroscience from Oxford University and has been publishing on machine learning in leading academic journals since 2010. Grant Beyleveld is a doctoral candidate at the Icahn School of Medicine at New York's Mount Sinai hospital, researching the relationship between viruses and their hosts. A founding member of the Deep Learning Study Group, he holds a masters in molecular medicine and medical biochemistry from the University of Witwatersrand. Aglaé Bassens is a Belgian artist based in Brooklyn. She studied fine arts at The Ruskin School of Drawing and Fine Art, Oxford University, and University College London's SlaTrade Review“Over the next few decades, artificial intelligence is poised to dramatically change almost every aspect of our lives, in large part due to today’s breakthroughs in deep learning. The authors’ clear visual style provides a comprehensive look at what’s currently possible with artificial neural networks as well as a glimpse of the magic that’s to come.” —Tim Urban, writer and illustrator of Wait But Why “This book is an approachable, practical, and broad introduction to deep learning, and the most beautifully illustrated machine learning book on the market.” —Dr. Michael Osborne, Dyson Associate Professor in Machine Learning, University of Oxford “This book should be the first stop for deep learning beginners, as it contains lots of concrete, easy-to-follow examples with corresponding tutorial videos and code notebooks. Strongly recommended.” —Dr. Chong Li, cofounder, Nakamoto & Turing Labs; adjunct professor, Columbia University “It’s hard to imagine developing new products today without thinking about enriching them with capabilities using machine learning. Deep learning in particular has many practical applications, and this book’s intelligible clear and visual approach is helpful to anyone who would like to understand what deep learning is and how it could impact your business and life for years to come.” —Helen Altshuler, engineering leader, Google “This book leverages beautiful illustrations and amusing analogies to make the theory behind deep learning uniquely accessible. Its straightforward example code and best-practice tips empower readers to immediately apply the transformative technique to their particular niche of interest.” –Dr. Rasmus Rothe, founder, Merantix “This is an invaluable resource for anyone looking to understand what deep learning is and why it powers almost every automated application today, from chatbots and voice recognition tools to self-driving cars. The illustrations and biological explanations help bring to life a complex topic and make it easier to grasp fundamental concepts.” –Joshua March, CEO and cofounder, Conversocial; author of Message Me “Deep learning is regularly redefining the state of the art across machine vision, natural language, and sequential decision-making tasks. If you too would like to pass data through deep neural networks in order to build high-performance models, then this book–with its innovative, highly visual approach–is the ideal place to begin.” –Dr. Alex Flint, roboticist and entrepreneur Table of ContentsFigures xixTables xxviiExamples xxixForeword xxxiiiPreface xxxvAcknowledgments xxxixAbout the Authors xliPart I: Introducing Deep Learning 1Chapter 1: Biological and Machine Vision 3Biological Vision 3Machine Vision 8TensorFlow Playground 17Quick, Draw! 19Summary 19Chapter 2: Human and Machine Language 21Deep Learning for Natural LanguageProcessing 21Computational Representations of Language 25Elements of Natural Human Language 33Google Duplex 35Summary 37Chapter 3: Machine Art 39A Boozy All-Nighter 39Arithmetic on Fake Human Faces 41Style Transfer: Converting Photos into Monet (and Vice Versa) 44Make Your Own Sketches Photorealistic 45Creating Photorealistic Images from Text 45Image Processing Using Deep Learning 46Summary 48Chapter 4: Game-Playing Machines 49Deep Learning, AI, and Other Beasts 49Three Categories of Machine Learning Problems 53Deep Reinforcement Learning 56Video Games 57Board Games 59Manipulation of Objects 67Popular Deep Reinforcement Learning Environments 68Three Categories of AI 71Summary 72Part II: Essential Theory Illustrated 73Chapter 5: The (Code) Cart Ahead of the (Theory)Horse 75Prerequisites 75Installation 76A Shallow Network in Keras 76Summary 84Chapter 6: Artificial Neurons Detecting Hot Dogs 85Biological Neuroanatomy 101 85The Perceptron 86Modern Neurons and Activation Functions 91Choosing a Neuron 96Summary 96Key Concepts 97Chapter 7: Artificial Neural Networks 99The Input Layer 99Dense Layers 99A Hot Dog-Detecting Dense Network 101The Softmax Layer of a Fast Food-Classifying Network 106Revisiting Our Shallow Network 108Summary 110Key Concepts 110Chapter 8: Training Deep Networks 111Cost Functions 111Optimization: Learning to Minimize Cost 115Backpropagation 124Tuning Hidden-Layer Count and NeuronCount 125An Intermediate Net in Keras 127Summary 129Key Concepts 130Chapter 9: Improving Deep Networks 131Weight Initialization 131Unstable Gradients 137Model Generalization (Avoiding Overfitting) 140Fancy Optimizers 145A Deep Neural Network inKeras 147Regression 149TensorBoard 152Summary 154Key Concepts 155Part III: Interactive Applications of Deep Learning 157Chapter 10: Machine Vision 159Convolutional Neural Networks 159Pooling Layers 169LeNet-5 in Keras 171AlexNet and VGGNet in Keras 176Residual Networks 179Applications of Machine Vision 182Summary 193Key Concepts 193Chapter 11: Natural Language Processing 195Preprocessing Natural Language Data 195Creating Word Embeddings with word2vec 206The Area under the ROC Curve 217Natural Language Classification with Familiar Networks 222Networks Designed for Sequential Data 240Non-sequential Architectures: The Keras Functional API 251Summary 256Key Concepts 257Chapter 12: Generative Adversarial Networks 259Essential GAN Theory 259The Quick, Draw! Dataset 263The Discriminator Network 266The Generator Network 269The Adversarial Network 272GAN Training 275Summary 281Key Concepts 282Chapter 13: Deep Reinforcement Learning 283Essential Theory of Reinforcement Learning 283Essential Theory of Deep Q-Learning Networks 290Defining a DQN Agent 293Interacting with an OpenAI Gym Environment 300Hyperparameter Optimization with SLM Lab 303Agents Beyond DQN 306Summary 308Key Concepts 309Part IV: You and AI 311Chapter 14: Moving Forward with Your Own Deep Learning Projects 313Ideas for Deep Learning Projects 313Resources for Further Projects 317The Modeling Process, Including Hyperparameter Tuning 318Deep Learning Libraries 321Software 2.0 324Approaching Artificial General Intelligence 326Summary 328Part V: Appendices 331Appendix A: Formal Neural Network Notation 333Appendix B: Backpropagation 335Appendix C: PyTorch 339PyTorch Features 339PyTorch in Practice 341Index 345
£37.79
Pearson Education (US) Supercharged Python
Book SynopsisTable of Contents Chapter 1: Review of the Fundamentals Chapter 2: Advanced String Capabilities Chapter 3: Advanced List Capabilities Chapter 4: Shortcuts, Command Line, and Packages Chapter 5: Formatting Text Precisely Chapter 6: Regular Expressions, Part I Chapter 7: Regular Expressions, Part II Chapter 8: Text and Binary Files Chapter 9: Classes and Magic Methods Chapter 10: Decimal, Money, and Other Classes Chapter 11: The Random and Math Packages Chapter 12: The “numpy” (Numeric Python) Package Chapter 13: Advanced Uses of “numpy” Chapter 14: Multiple Modules and the RPN Example Chapter 15: Getting Financial Data off the Internet Appendix A Python Operator Precedence Table Appendix B Built-In Python Functions Appendix C Set Methods Appendix D Dictionary Methods Appendix E Statement Reference
£30.59
Pearson Education Introduction to JavaScript Programming
Book SynopsisAbout our author Eric Roberts is the Charles Simonyi Professor of Computer Science, emeritus, at Stanford University. Throughout his career, Roberts was a widely acknowledged leader in computer science education and received numerous national and international awards, including the Outstanding Contribution to Computer Science Education Award from the Association for Computing Machinery's Special Interest Group in Computer Science Education (ACM SIGCSE), the Karl V. Karlstrom Outstanding Educator Award from the ACM, and the Taylor Booth Education Award from the Institute for Electrical and Electronic Engineers Computer Society (IEEE-CS).Table of ContentsTable of Contents A Gentle Introduction 1.1 Introducing Karel 1.2 Teaching Karel to solve problems 1.3 Control statements 1.4 Stepwise refinement 1.5 Algorithms in Karel’s world Summary Review questions Exercises Introducing JavaScript 2.1 Data and types 2.2 Numeric data 2.3 Variables 2.4 Functions 2.5 String data 2.6 Running JavaScript in the browser 2.7 Testing and debugging 2.8 Software maintenance Summary Review questions Exercises Control Statements 3.1 Boolean Data 3.2 The if statement 3.3 The switch statement 3.4 The while statement 3.5 The for statement 3.6 Algorithmic programming 3.7 Avoiding fuzzy standards of truth Summary Review questions Exercises Simple Graphics 4.1 A graphical version of “Hello World” 4.2 Classes, objects, and methods 4.3 Graphical objects 4.4 The graphics window 4.5 Creating graphical applications Summary Review questions Exercises Functions 5.1 A quick review of functions 5.2 Libraries 5.3 A library to support randomness 5.4 The mechanics of function calls 5.5 Recursive functions Summary Review questions Exercises Writing Interactive Programs 6.1 First-class functions 6.2 A simple interactive example 6.3 Controlling properties of objects 6.4 Responding to mouse events 6.5 Timer-based animation 6.6 Expanding the graphics library Summary Review questions Exercises Strings 7.1 Binary representation 7.2 String operations 7.3 Classifying characters 7.4 Common string patterns 7.5 String applications 7.6 Reading from the console Summary Review questions Exercises Arrays 8.1 Introduction to arrays 8.2 Array operations 8.3 Using arrays for tabulation 8.4 Reading text from files 8.5 Multidimensional arrays 8.6 Image processing Summary Review questions Exercises Objects 9.1 Objects in JavaScript 9.2 Using objects as maps 9.3 Representing points 9.4 Rational numbers 9.5 Linking objects together Summary Review questions Exercises Designing Data Structures 10.1 Abstract data types 10.2 Implementing a token scanner 10.3 Efficiency and representation 10.4 Representing real-world data Summary Review questions Exercises Inheritance 11.1 Class hierarchies 11.2 Defining an employee hierarchy 11.3 Extending graphical classes 11.4 Decomposition and inheritance 11.5 Alternatives to inheritance Summary Review questions Exercises JavaScript and the Web 12.1 A simple interactive example 12.2 An expanded look at HTML 12.3 Controlling style using CSS 12.4 Connecting JavaScript and HTML 12.5 Storing data in the index.html file Summary Review questions Exercises
£103.70
Pearson Education (US) HTML and CSS
Book SynopsisTable of Contents Chapter 1 What Are HTML and CSS? Chapter 2 Creating a Website on Your Computer Chapter 3 HTML Syntax Chapter 4 Basic HTML Elements Chapter 5 Links Chapter 6 Structure and Layout with HTML Chapter 7 Media Chapter 8 Tables and Other Structured Data Elements Chapter 9 Web Forms Chapter 10 Advanced and Experimental Features Chapter 11 Introduction to CSS Chapter 12 Targeting Elements Chapter 13 Styling Text Chapter 14 Color in CSS Chapter 15 Using CSS for Page Layout Chapter 16 Layouts with CSS Grid and Flexbox Chapter 17 Responsive Design and Media Queries Chapter 18 CSS Transformations and Animations Chapter 19 CSS Variables Chapter 20 CSS Preprocessors Chapter 21 Getting Your Website Online Chapter 22 Testing Your Website Chapter 23 Improving Website Performance Chapter 24 Web Accessibility Chapter 25 Going Beyond HTML & CSS
£26.99
Pearson Education (US) Begin to Code with JavaScript
Book SynopsisRob Miles spent more than 30 years teaching programming at the University of Hull in the United Kingdom. He now runs a company promoting community uptake of computer technology. He's a Microsoft MVP with a passion for programming and creating new things. If he had any spare time, he'd spend it writing even more code. He loves building devices and then switching them on to see what they do. He reckons that programming is the most creative thing you can learn how to do. He claims to know a lot of really good jokes, but nobody has ever heard him tell one. If you want an insight into the Wacky WorldTM of Rob Miles, you can read his blog at www.robmiles. com and follow him on Twitter via @RobMiles.Table of ContentsPart 1: The world of JavaScript Chapter 1 Running JavaScript Chapter 2 Hypertext Markup Language (HTML) Chapter 3 Cascading Style Sheets (CSS) Part 2: Coding with JavaScript Chapter 4 Working with data Chapter 5 Making decisions in programs Chapter 6 Repeating actions in programs Chapter 7 Creating functions Chapter 8 Storing data Chapter 9 Objects Part 3: Useful JavaScript Chapter 10 Advanced JavaScript Chapter 11 Creating applications Chapter 12 Creating games
£28.49
Pearson Education (US) Learn Enough HTML CSS and Layout to Be Dangerous
Book Synopsis Lee Donahoe is cofounder of Learn Enough and is an entrepreneur, designer, and front-end developer. At the age of 16 his late father handed him a tutorial on HTML, and for more than 25 years since then he has been creating things for the Web. In addition to doing the design and front-end development for Learn Enough, Softcover, and the Ruby on Rails Tutorial, he is also a cofounder and front-end developer for Coveralls, a leading test coverage analysis service, and is tech cofounder and front-end developer for Buck Mason, a Los Angeles based clothing company once featured on ABC's Shark Tank. Lee is a graduate of USC, where he studied economics as well as multimedia and creative technologies. Michael Hartl created the legendary Ruby on Rails Tutorial that helped jumpstart thousands of web development careers. A cofounder and principal author at Learn Enough, Hartl previously earned a Ph.D. in physics at the CTable of ContentsPreface xvii About the Authors xxiii Part I: Hypertext Markup Language 1 Chapter 1: Basic HTML 3 1.1 Introduction 6 1.2 HTML Tags 8 1.3 Starting the Project 12 1.4 The First Tag 17 1.5 An HTML Skeleton 20 Chapter 2: Filling in the Index Page 29 2.1 Headings 29 2.2 Text Formatting 31 2.3 Links 35 2.4 Adding Images 41 Chapter 3: More Pages, More Tags 51 3.1 An HTML Page About HTML 51 3.2 Tables 54 3.3 Divs and Spans 62 3.4 Lists 66 3.5 A Navigation Menu 68 Chapter 4: Inline Styling 73 4.1 Text Styling 74 4.2 Floats 79 4.3 Applying a Margin 82 4.4 More Margin Tricks 85 4.5 Box Styling 88 4.6 Navigation Styling 90 4.7 A Taste of CSS 93 4.8 Conclusion 98 Part II: Cascading Style Sheets and Page Layout 101 Chapter 5: Introduction to CSS 103 5.1 You're a Front-End Developer 106 5.2 CSS Overview and History 109 5.3 Sample Site Setup 116 5.4 Start Stylin' 121 5.5 CSS Selectors 128 Chapter 6: The Style of Style 133 6.1 Naming Things 134 6.2 When and Why 137 6.3 Priority and Specificity 140 6.4 How to Be a Good Styling Citizen 145 Chapter 7: CSS Values: Color and Sizing 157 7.1 CSS Color 157 7.2 Introduction to Sizing 163 7.3 Pixels (and Their Less-Used Cousin, the Point) 164 7.3.1 Exercise 168 7.4 Percentages 169 7.4.1 Percentage Fonts 174 7.4.2 Exercises 174 7.5 em 175 7.6 rem Isn't Just for Dreaming 181 7.7 vh, vw: The New(er) Kids on the Block 184 7.8 Just Make It Look Nice 190 Chapter 8: The Box Model 193 8.1 Inline vs. Block 193 8.2 Margins, Padding, and Borders 199 8.3 Floats 206 8.4 A Little More About the overflow Style 214 8.5 Inline Block 219 8.6 Margins for Boxes 223 8.7 Padding . . . Not Just for Chairs 234 8.8 Fun with Borders 235 Chapter 9: Laying It All Out 251 9.1 Layout Basics 251 9.2 Jekyll 253 9.3 Layouts, Includes, and Pages (Oh My!) 259 9.4 The Layout File 261 9.5 CSS File and Reset 264 9.6 Includes Intro: Head and Header 275 9.7 Advanced Selectors 284 9.8 Positioning 291 9.9 Fixed Header 309 9.10 A Footer, and Includes in Includes 312 Chapter 10: Page Templates and Frontmatter 327 10.1 Template Content 327 10.2 There's No Place Like Home 330 10.3 More Advanced Selectors 342 10.4 Other Pages, Other Folders 356 Chapter 11: Specialty Page Layouts with Flexbox 361 11.1 Having Content Fill a Container 363 11.2 Vertical Flex Centering 371 11.3 Flexbox Style Options and Shorthand 375 11.4 Three-Column Page Layout 381 11.5 A Gallery Stub 386 Chapter 12: Adding a Blog 397 12.1 Adding Blog Posts 398 12.2 Blog Index Content Loop 412 12.3 A Blog Post Page 419 Chapter 13: Mobile Media Queries 429 13.1 Getting Started with Mobile Designs 429 13.2 Mobile Adaptation 438 13.3 Mobile Viewport 449 13.4 Dropdown Menu 453 13.5 Mobile Dropdown Menu 463 Chapter 14: Adding More Little Touches 475 14.1 Custom Fonts 475 14.2 Favicons 488 14.3 Custom Title and Meta Description 490 14.4 Next Steps 497 Chapter 15: CSS Grid 499 15.1 CSS Grid at a High Level 501 15.2 A Simple Grid of Content 504 15.3 minmax, auto-fit, and auto-fill 515 15.4 Grid Lines, Areas, and Layouts 527 15.5 Grid on the Inside 556 15.6 Conclusion 589 Part III: Custom Domains 591 Chapter 16: A Name of Our Own 593 16.1 Custom Domain Registration 594 16.2 Cloudflare Setup 599 16.3 Custom Domains at GitHub Pages 606 Chapter 17: Custom Email 619 17.1 Google Mail 619 17.2 MX Records 622 17.3 Site Analytics 626 17.4 Conclusion 630 Index 635
£28.49
Pearson Education (US) Learn Enough JavaScript to Be Dangerous
Book SynopsisMichael Hartl created the legendary Ruby on Rails Tutorial that helped jumpstart thousands of web development careers. A cofounder and principal author at Learn Enough, Hartl previously earned a Ph.D. in physics at the California Institute of Technology (Caltech), where he received a Lifetime Achievement Award for Excellence in Teaching. He is also an alumnus of Harvard University and the world-renowned Y Combinator entrepreneur program.Trade ReviewPraise for Learn Enough Tutorials "I have nothing but fantastic things to say about @LearnEnough courses. I am just about finished with the #javascript course. I must say, the videos are mandatory because @mhartl will play the novice and share in the joy of having something you wrote actually work!" --Claudia Vizena "I must say, this Learn Enough series is a masterpiece of education. Thank you for this incredible work!" --Michael King "I want to thank you for the amazing job you have done with the tutorials. They are likely the best tutorials I have ever read." --Pedro IatzkyTable of ContentsPreface xiii About the Author xvii Chapter 1: Hello, World! 1 1.1 Introduction to JavaScript 5 1.2 JS in a Web Browser 7 1.3 JS in a REPL 14 1.4 JS in a File 21 1.5 JS in a Shell Script 22 Chapter 2: Strings 25 2.1 String Basics 25 2.2 Concatenation and Interpolation 27 2.3 Printing 33 2.4 Properties, Booleans, and Control Flow 35 2.5 Methods 44 2.6 String Iteration 50 Chapter 3: Arrays 55 3.1 Splitting 55 3.2 Array Access 56 3.3 Array Slicing 58 3.4 More Array Methods 59 3.5 Array Iteration 62 Chapter 4: Other Native Objects 65 4.1 Math and Number 65 4.2 Dates 69 4.3 Regular Expressions 73 4.4 Plain Objects 81 4.5 Application: Unique Words 83 Chapter 5: Functions 91 5.1 Function Definitions 91 5.2 Functions in a File 95 5.3 Method Chaining 104 5.4 Iteration for Each 110 Chapter 6: Functional Programming 115 6.1 Map 116 6.2 Filter 122 6.3 Reduce 126 Chapter 7: Objects and Prototypes 135 7.1 Defining Objects 135 7.2 Prototypes 139 7.3 Modifying Native Objects 147 Chapter 8: Testing and Test-Driven Development 153 8.1 Testing Setup 154 8.2 Initial Test Coverage 159 8.3 Red 164 8.4 Green 172 8.5 Refactor 177 Chapter 9: Events and DOM Manipulation 187 9.1 A Working Palindrome Page 187 9.2 Event Listeners 192 9.3 Dynamic HTML 202 9.4 Form Handling 205 Chapter 10: Shell Scripts with Node.js 215 10.1 Reading from Files 216 10.2 Reading from URLs 218 10.3 DOM Manipulation at the Command Line 224 Chapter 11: Full Sample App: Image Gallery 235 11.1 Prepping the Gallery 235 11.2 Changing the Gallery Image 242 11.3 Setting an Image as Current 250 11.4 Changing the Image Info 252 11.5 Conclusion 259 Index 263
£22.49
Pearson Education (US) Design Thinking for Tech
Book SynopsisGeorge Anderson is a program director for Microsoft and an adjunct professor and guest lecturer for several universities. George holds Stanford Innovation & Entrepreneurship as well as Innovation Leadership credentials, PMI's Wicked Problem Solving and Prosci's Change Practitioner certifications, an MBA with a focus in Human Resource Management, and a PhD in Applied Management and Decision Sciences. As a program director, George assembles and leads global tech teams that help organizations transform themselves. George's architects and consultants provide the technology and business skills necessary to design and develop business-enabling technology solutions, and George and his project managers provide the leadership, governance, and communications necessary to deliver those solutions. In these ways, George's teams solve problems that drive meaningful change and measurable value. George knows first-hand the power of thinking and executing differently tTable of ContentsForeword Preface Prologue PART I: Design Thinking Basics Hour 1: Design Thinking Explained Thinking Slower to Deliver Faster A Process for Progress: Popular Design Thinking Models Our Design Thinking Model for Tech The Battle Between Perfection and Time The What: Techniques and Exercises The How: The Design Thinking Cycle for Progress The When: Ambiguity, Complexity, and Uncertainty The Why: Better Practices and Faster Outcomes The Who: Design Thinking by Technology Role Design Thinking in Action: Real-world Tech Examples What Not to Do: Lessons Learned the Hard Way Summary Workshop Hour 2: A Design Thinking Model for Tech Human-Centered Thinking Design Thinking in Four Phases What Not to Do: Exclusively Left to Right Summary Workshop Hour 3: Design Thinking for Small Audiences Design Thinking for Me Learning More Quickly Thinking and Problem Solving Coping with Ambiguity Prioritizing Next Best Steps for Uncertainty Executing More Effectively What Not to Do: This Isn't for Me Summary Workshop Hour 4: Resilient and Sustainable Teams Design Thinking for Tech Team Alignment Design Thinking for Sustainable Teams Responsibly Operating at Speed What Not to Do: The Archipelago Effect Summary Workshop Hour 5: Visible and Visual Teamwork Making Teamwork Visible and Visual Tools for Visual Collaboration Executing a Design Thinking Exercise What Not to Do: Keeping It All Inside Summary Workbook PART II: Understanding Broadly Hour 6: Understanding the Lay of the Land Listening and Understanding Assessing the Broader Environment Understanding and Articulating Value What Not to Do: Ignore the Culture Fractals Summary Workshop Hour 7: Connecting with the Right People A Framework for Finding and Prioritizing People Exercises for Stakeholder Mapping and Prioritization Exercises and Techniques for Engaging Stakeholders What Not to Do: Stick to the Happy Path Summary Workbook Hour 8: Learning and Empathizing From Stakeholders to Personas Three Types of Empathy A 360-Degree Model for Empathizing A Recipe for Empathizing What Not to Do: Ignore the 20 Percent Summary Workshop Hour 9: Identifying the Right Problem Identifying and Understanding a Problem Three Exercises for Problem Identification Techniques and Exercises for Problem Validation What Not to Do: Jump In! (to the Wrong Problem) Summary Workshop PART III: Thinking Differently Hour 10: Introduction to Thinking Differently Ideation and Thinking for Problem Solving Divergent and Convergent Thinking Warm-ups for Thinking Differently Techniques for Clearing the Mind What Not to Do: Stay Convergent! Summary Workshop Hour 11: Guardrails for Thinking Creatively Constraints and Guardrails Simple Guardrails for Thinking Differently Exercises for Thinking Through Risks Crazy Techniques for Extreme Thinking What Not to Do: Avoid the Silly-Sounding Stuff Summary Workshop Hour 12: Exercises for Increasing Creativity Creativity and Thinking Techniques and Exercises for Creative Thinking What Not to Do: Concluding Thinking Too Early Summary Workshop Hour 13: Exercises for Reducing Uncertainty Next-Step Thinking for Uncertain Situations Reducing Uncertainty and Ambiguity Working Through Uncertainty and What's Next What Not to Do: The Brute-Force Path Summary Workshop Hour 14: Thinking for Problem Solving From Ideas to Potential Solutions Visual Exercises for Problem Solving What Not to Do: Skimp on Brainstorming Summary Workshop PART IV: Delivering Value Hour 15: Cross-Teaming and Communicating for Outcomes Cross-Boundary Teaming for Collaboration Techniques for Working Across Teams Techniques for Communications Challenges What Not to Do: Using Words When a Picture Is Needed Summary Workshop Hour 16: Prototyping and Solutioning by Doing The Prototyping and Solutioning Mindset Making Progress versus Solving the Entire Problem Techniques for Making Planned Progress What Not to Do: Ignoring the Inverse Power Law Summary Workshop Hour 17: Solutioning Small and Fast The Progress Mindset: Showing Up and Starting Small Realizing Value Through Objectives and Key Results Starting Small and Delivering Fast Techniques for Delivering and Executing to Think For a Limited Time Only What Not to Do: The Forever MVP Summary Workshop Hour 18: Delivering Value at Velocity Delivery Techniques for Increasing Value Velocity Team Considerations for Velocity Change Control Considerations for Velocity What Not to Do: Shrink Sprints to Speed Up Summary Workshop PART V: Iterating for Progress Hour 19: Testing for Validation The Testing Mindset Traditional Types of Testing Testing Techniques for Learning and Validating Testing Tools for Feedback What Not to Do: Automate Everything Summary Workshop Hour 20: Feedback for Continuous Improvement Simple Feedback Techniques Strategic Feedback and Reflection Techniques What Not to Do: Wait for Late Feedback Summary Workshop Hour 21: Deploying for Progress Avoiding Perfection Traps Novel Techniques for Making Progress Edge Case Techniques for Deploying and Realizing Value What Not to Do: Deploying Too Soon Summary Workshop Hour 22: Operating at Scale Techniques and Exercises for Effective Scaling Operational Resiliency Techniques Techniques for Sustaining Systems and Value What Not to Do: The Scale versus Features Mandate Summary Workshop Hour 23: Making Change Sticky Change Management and Adoption The Four-Phase Change Process Methods for Creating Awareness Techniques for Providing Purpose Driving Readiness Through Design Thinking Four Techniques for Adopting Change Techniques for Timing Change What Not to Do: Change Management Can Wait Summary Workshop Hour 24: Design Thinking for Project Velocity Project Management Velocity Leadership and Governance Stakeholders and Expectations Development Approach Risk Management Schedule Management Managing Scope Delivery and Quality Communications and Collaboration What Not to Do: No Courage, No Future Summary Workshop Appendix A: Case Study Quiz Answers Appendix B: Summary of Design Thinking Techniques and Exercises Appendix C: Design Thinking in Action (by the Hour) References 9780137933037 TOC 10/10/2022
£30.39
Pearson Education (US) Javascript Absolute Beginners Guide Third Edition
Book SynopsisKirupa Chinnathambi has spent most of his life trying to teach others to love web development as much as he does. In 1999, before blogging was even a word, he started posting tutorials on kirupa.com. In the years since then, he has written hundreds of articles, written a few books (none as good as this one, of course!), and recorded a bunch of videos you can find on YouTube. When he isn't writing or talking about web development, he spends his waking hours helping make developers happy and productive as a Product Manager at Google. In his nonwaking hours, he is probably sleeping, joining Meena in running after their daughter Akira, protecting himself from Pixel (aka a T-rex in an unassuming cat's body)or writing about himself in the third person. You can find him on Twitter, Facebook, LinkedIn, and the interwebs at large. Just search for his name in your favorite search engine.Table of ContentsIntroduction...................1 Parlez-Vous JavaScript? 2 Contacting Me/Getting Help...................... 2 1 Hello, World!... 5 What Is JavaScript?....... 7 Hello, World!.................. 9 Statements, Expressions, and Functions..12 I The Basic Stuff 2 Values and Variables..................... 15 Using Variables............16 More Variable Stuff......18 3 Functions....... 23 What Is a Function?.....26 A Simple Function.......26 Creating a Function That Takes Arguments...........................30 Creating a Function That Returns Data...35 4 Conditional Statements: if, else, and switch............... 39 The If/Else Statement..40 Switch Statements.......49 Deciding Which to Use..............................55 5 Looping with for, while, and do…while!...................... 57 The for Loop................59 The Starting Point........62 Some for Loop Examples..........................64 The Other Loops.........67 6 Commenting Your Code…FTW!.... 71 What Are Comments?.72 Commenting Best Practices......................76 7 Timers............ 79 Delaying with setTimeout..........................80 8 Variable Scope.............................. 85 Global Scope...............86 Local Scope..................88 Miscellaneous Scoping Shenanigans.......89 9 Closures......... 95 Functions Within Functions.......................96 When the Inner Functions Aren't Self-Contained................100 10 Where Should Your Code Live?.. 109 Approach #1: All the Code Lives in Your HTML Document...................113 Approach #2: The Code Lives in a Separate File................114 So, Which Approach to Use?..................118 11 Console Logging Basics.............. 123 Meet the Console......124 Displaying the Console............................126 If You Want to Follow Along...................127 Console Logging 101..............................128 II It's an Object-Oriented World 12 Of Pizza, Types, Primitives, and Objects................... 135 Let's First Talk About Pizza.......................136 From Pizza to JavaScript!.........................139 What Are Objects?....141 The Predefined Objects Roaming Around in JavaScript....142 13 Arrays.......... 145 Creating an Array......146 Accessing Array Values............................147 Adding Items.............149 Removing Items.........151 Finding Items.............152 Merging Arrays..........152 Mapping, Filtering, and Reducing Arrays.............................153 The Old School Way.153 Modifying Each Array Item with map.....154 Getting One Value from an Array of Items...........................157 A Short Foray into Functional Programming........................160 14 Strings......... 161 The Basics...................162 String Properties and Methods...............163 15 Combining Strings and Variables 173 Our Setup...................174 16 When Primitives Behave Like Objects....................... 179 Strings Aren't the Only Problem.............180 Let's Pick on Strings Anyway...................180 Why This Matters.......182 17 Numbers...... 185 Using a Number........186 Operators...................187 Incrementing and Decrementing............188 Hexadecimal and Octal Values...............190 Special Values—Infinity and NaN...........190 The Math Object.......191 Random Numbers.....196 18 Getters and Setters.................... 201 A Tale of Two Properties..........................202 Meet Getters and Setters........................205 19 A Deeper Look at Objects.......... 211 Meet the Object........212 Creating Custom Objects........................222 The this Keyword.......226 20 Using Classes.............................. 231 The Class Syntax and Object Creation..232 Extending Objects.....240 21 Extending Built-in Objects.......... 247 Say Hello to prototype Again, Sort Of!..249 Using a Subclassing Approach................253 Extending Built-in Objects Is Controversial................255 22 Arrow Functions......................... 259 What Are Arrow Functions?.....................260 Putting It All Together..............................263 23 Making Sense of this and More.. 265 The this Keyword 101..............................266 24 Booleans and the Stricter === and !== Operators... 277 The Boolean Object..278 The Boolean Function..............................278 Strict Equality and Inequality Operators281 25 Null and Undefined.................... 283 Null..............................284 Undefined...................284 26 All About JSON (JavaScript Object Notation).......... 287 What Is JSON?...........288 Looking Inside a JSON Object...............292 Reading JSON Data..297 Writing JSON Data?..300 III Working with the DOM 27 JS, the Browser, and the DOM... 303 What HTML, CSS, and JavaScript Do....304 HTML Defines the Structure....................304 Prettify My World, CSS!...........................306 It's JavaScript Time!...307 Meet the Document Object Model........309 28 Finding Elements in the DOM.... 315 Meet the querySelector Family...............316 It Really Is the CSS Selector Syntax........318 29 Modifying DOM Elements.......... 321 DOM Elements Are Objects, Sort Of!....322 Let's Actually Modify DOM Elements.....324 30 Styling Our Content................... 337 Why Would We Set Styles Using JavaScript?..............338 A Tale of Two Styling Approaches..........338 31 Using CSS Custom Properties.... 345 What Are CSS Custom Properties/Variables?................346 Setting Complex Values Easily................348 32 Traversing the DOM................... 353 Finding Your Way Around........................354 Putting It All Together..............................358 33 Creating and Removing DOM Elements.................... 363 Creating Elements.....364 Removing Elements..372 Cloning Elements......374 34 Quickly Adding Many Elements into the DOM......... 381 General Approach.....383 Getting Started..........384 35 In-Browser Developer Tools........ 397 Meet the Developer Tools.......................398 IV Dealing with Events 36 Events.......... 417 What Are Events?......418 Events and JavaScript..............................420 A Simple Example.....423 The Event Arguments and the Event Type.............426 37 Event Bubbling and Capturing... 429 Event Goes Down, Event Goes Up........430 Meet the Phases........434 Who Cares?................437 Event, Interrupted.....438 38 Mouse Events............................. 443 Meet the Mouse Events...........................444 The MouseEvent Properties....................451 Dealing with the Mouse Wheel..............454 39 Keyboard Events........................ 457 Meet the Keyboard Events......................458 Using These Events...459 The Keyboard Event Properties..............460 Some Examples.........461 40 Page Load Events and Other Stuff............................ 467 The Things That Happen During Page Load..........468 The DOMContentLoaded and load Events................471 Scripts and Their Location in the DOM.473 Script Elements: async and defer...........477 41 Loading Script Files Dynamically 481 The Basic Technique.482 Running Our Dynamically Loaded Script First............486 Running Dependent Code After Our Script File Has Loaded........488 42 Handling Events for Multiple Elements..................... 491 How to Do All This....493 V Totally Useful Topics that Only Make Sense Now 43 Using Emojis in HTML, CSS, and JavaScript.............. 501 What Are Emojis Exactly?........................502 Emojis in HTML..........503 44 Making HTTP/Web Requests in JavaScript................ 511 The Example..............513 Meet Fetch.................514 Meet XMLHttpRequest............................520 45 Accessing the Webcam............... 529 The Example..............530 Overview of How This Works..................531 Adding the Code.......532 Examining the Code.535 46 Array and Object Destructuring. 539 Destructuring Examples...........................541 47 Storing Data Using Web Storage.............................. 549 How Web Storage Works........................550 Getting Your Code On.............................552 48 Variable and Function Hoisting.. 559 JavaScript and Compiler Behavior.........560 49 Working with Sets...................... 565 Creating a Set, Part I.566 Adding Items to a Set..............................567 How Checking for Duplicates Works......567 Creating a Set, Part 2569 Checking the Size of Our Set..................570 Deleting Items from a Set.......................571 Checking If an Item Exists.......................572 Looping Through Items in a Set.............572 Entries, Keys, and Values.........................573 50 Conclusion... 577 Glossary............................ 581 9780137959167, TOC, 10/13/2022
£25.49
Pearson Education (US) Ruby on Rails Tutorial
Book SynopsisMichael Hartl created the legendary Ruby on Rails Tutorial that helped jumpstart thousands of web development careers. A cofounder and principal author at Learn Enough, Hartl previously earned a Ph.D. in physics at the California Institute of Technology (Caltech), where he received a Lifetime Achievement Award for Excellence in Teaching. He is also an alumnus of Harvard University and the world-renowned Y Combinator entrepreneur program.Trade ReviewPraise for Michael Hartl's Books and Videos on Ruby on Rails "My former company (CD Baby) was one of the first to loudly switch to Ruby on Rails, and then even more loudly switch back to PHP. (Google me to read about the drama.) This book by Michael Hartl came so highly recommended that I had to try it, and the Ruby on RailsTM Tutorial is what I used to switch back to Rails again."--From the Foreword by Derek Sivers (sivers.org)Formerly: founder of CD Baby; Currently: founder of Thoughts Ltd. "I started working on a project but didn't quite understand some rails concepts. Needed a good tutorial and found lots of recommendations for @mhartl's rails tutorial . . . and man it's so good. The hype def matches the product."--Pratik Tamang, https://twitter.com/codingkrazy "The rails tutorial by @mhartl is the best web dev resource ever written."--Daniel Gamboa, Product Manager, Figment "My first programming book was the Ruby on Rails Tutorial from @mhartl. The best part was it taught me general skills to be an effective developer."--Jack Gray, staknine.com "Michael Hartl's Rails Tutorial book is the #1 (and only, in my opinion) place to start when it comes to books about learning Rails. . . . It's an amazing piece of work and, unusually, walks you through building a Rails app from start to finish with testing. If you want to read just one book and feel like a Rails master by the end of it, pick the Ruby on RailsTM Tutorial."--Peter Cooper, editor, Ruby Inside "Michael Hartl's Ruby on RailsTM Tutorial seamlessly taught me about not only Ruby on Rails, but also the underlying Ruby language, HTML, CSS, a bit of JavaScript, and even some SQL--but most importantly it showed me how to build a web application (Twitter) in a short amount of time."--Mattan Griffel, cofounder & CEO of One Month "Although I'm a Python/Django developer by trade, I can't stress enough how much this book has helped me. As an undergraduate, completely detached from industry, this book showed me how to use version control, how to write tests, and, most importantly--despite the steep learning curve for setting up and getting stuff running--how the end result of perseverance is extremely gratifying. It made me fall in love with technology all over again. This is the book I direct all my friends to who want to start learning programming/building stuff. Thank you, Michael!"--Prakhar Srivastav, software engineer, Xcite.com, Kuwait "It has to be the best-written book of its type I've ever seen, and I can't recommend it enough."--Daniel Hollands, administrator of Birmingham.IO "For those wanting to learn Ruby on Rails, Hartl's Ruby on RailsTM Tutorial is (in my opinion) the best way to do it."--David Young, software developer and author at deepinthecode.com "This is a great tutorial for a lot of reasons, because aside from just teaching Rails, Hartl is also teaching good development practices."--Michael Denomy, full-stack web developer "Without a doubt, the best way I learned Ruby on Rails was by building an actual working app. I used Michael Hartl's Ruby on RailsTM Tutorial, which showed me how to get a very basic Twitter-like app up and running from scratch. I cannot recommend this tutorial enough; getting something up and going fast was key; it beats memorization by a mile."--James Fend, serial entrepreneur, JamesFend.com "The book gives you the theory and practice, while the videos focus on showing you in person how it's done. Highly recommended combo."--Antonio Cangiano, software engineer, IBM "The author is clearly an expert at the Ruby language and the Rails framework, but more than that, he is a working software engineer who introduces best practices throughout the text."--Gregory Charles, principal software developer at Fairway TechnologiesTable of ContentsForeword xviiPreface xixAcknowledgments xxvAbout the Author xxvii Chapter 1: From Zero to Deploy 11.1 Up and Running 51.2 The First Application 141.3 Version Control with Git 351.4 Deploying 521.5 Conclusion 611.6 Conventions Used in This Book 62 Chapter 2: A Toy App 652.1 Planning the Application 662.2 The Users Resource 712.3 The Microposts Resource 872.4 Conclusion 104 Chapter 3: Mostly Static Pages 1073.1 Sample App Setup 1073.2 Static Pages 1153.3 Getting Started with Testing 1263.4 Slightly Dynamic Pages 1353.5 Conclusion 1523.6 Advanced Testing Setup 153 Chapter 4: Rails-Flavored Ruby 1594.1 Motivation 1594.2 Strings and Methods 1654.3 Other Data Structures 1774.4 Ruby Classes 1924.5 Conclusion 204 Chapter 5: Filling in the Layout 2075.1 Adding Some Structure 2075.2 Sass and the Asset Pipeline 2325.3 Layout Links 2425.4 User Signup: A First Step 2555.5 Conclusion 260 Chapter 6: Modeling Users 2636.1 User Model 2646.2 User Validations 2796.3 Adding a Secure Password 3036.4 Conclusion 313 Chapter 7: Sign Up 3157.1 Showing Users 3167.2 Signup Form 3377.3 Unsuccessful Signups 3467.4 Successful Signups 3617.5 Professional-Grade Deployment 3747.6 Conclusion 380 Chapter 8: Basic Login 3818.1 Sessions 3818.2 Logging In 3988.3 Logging Out 4378.4 Conclusion 443 Chapter 9: Advanced Login 4459.1 Remember Me 4459.2 "Remember Me" Checkbox 4709.3 Remember Tests 4769.4 Conclusion 489 Chapter 10: Updating, Showing, and Deleting Users 49310.1 Updating Users 49310.2 Authorization 50910.3 Showing All Users 52610.4 Deleting Users 54410.5 Conclusion 556 Chapter 11: Account Activation 55911.1 Account Activations Resource 56011.2 Account Activation Emails 56811.3 Activating the Account 58511.4 Email in Production 61011.5 Conclusion 619 Chapter 12: Password Reset 62112.1 Password Resets Resource 62312.2 Password Reset Emails 63412.3 Resetting the Password 64112.4 Email in Production (Take 2) 65812.5 Conclusion 65912.6 Proof of Expiration Comparison 661 Chapter 13: User Microposts 66313.1 A Micropost Model 66313.2 Showing Microposts 67913.3 Manipulating Microposts 69313.4 Micropost Images 72613.5 Conclusion 752 Chapter 14: Following Users 75514.1 The Relationship Model 75614.2 A Web Interface for Following Users 77414.3 The Status Feed 80514.4 Conclusion 821 Index 825
£34.19
MIT Press Ltd The Little Prover
Book SynopsisAn introduction to writing proofs about computer programs, written in an accessible question-and-answer style, complete with step-by-step examples and a simple proof assistant.The Little Prover introduces inductive proofs as a way to determine facts about computer programs. It is written in an approachable, engaging style of question-and-answer, with the characteristic humor of The Little Schemer (fourth edition, MIT Press). Sometimes the best way to learn something is to sit down and do it; the book takes readers through step-by-step examples showing how to write inductive proofs. The Little Prover assumes only knowledge of recursive programs and lists (as presented in the first three chapters of The Little Schemer) and uses only a few terms beyond what novice programmers already know. The book comes with a simple proof assistant to help readers work through the book and complete solutions to every example.
£34.20
Pearson Education Java For Students
Book SynopsisDouglas Bell and Mike Parr have many years experience teaching programming in the UK. They have written a number of programming books, including the bestselling Java for Students, Visual Basic for Students and C# for Students. They continue to teach and learn about programming with enthusiasm.Trade Review'The best book for my first year programming students'Gary Hill, The University of Northampton 'It is really hard to fault it or find a better book' Ken Chisholm, Edinburgh Napier University 'An excellent rewarding introduction to Java programming’Dr Simon Jones, University of StirlingTable of ContentsDetailed contentsIntroductionGuided tour The background to Java First programs Using graphics methods Variables and calculations Methods and parameters Using objects Selection Repetition Writing classes Inheritance Calculations Array lists Arrays Arrays - two dimensional String manipulation Exceptions Files and console applications Object-oriented design Program style Testing Debugging Threads Interfaces Programming in the large - packages Polymorphism Java in context Appendices: A. Java libraries B. The Abstract Window Toolkit C. Applets D. Glossary E. Rules for names F. Keywords G. Scope rules (visibility) H. Bibliography I. Installing and using Java Index
£78.99
Pearson Education Bulletproof Web Design
Book SynopsisNo matter how visually appealing or packed with content your Web site is, it isn't succeeding if it's not reaching the widest possible audience. If you get this guide, you can be assured it will! By deconstructing a series of real-world Web sites, author and Web designer extraordinaire Dan Cederholm outlines 10 strategies for creating standards-based designs that provide flexibility, readability, and user controlkey components of every successful Web site. Each chapter starts out with an example of what Dan refers to as an unbulletproof conceptan existing site that employs a traditional approach and its associated pitfalls. Dan then deconstructs that approach, noting its downsides and then making the site over using Cascading Style Sheets (CSS). By the end of each chapter, you'll have replaced traditional, bloated, inaccessible page components with lean markup and CSS. The guide culminates with a chapter that pieces together all of the page compone
£36.95
Pearson Education (US) Java Concurrency in Practice
Book SynopsisBrian Goetz is a software consultant with twenty years industry experience, with over 75 articles on Java development. He is one of the primary members of the Java Community Process JSR 166 Expert Group (Concurrency Utilities), and has served on numerous other JCP Expert Groups. Tim Peierls is the very model of a modern multiprocessor, with BoxPop.biz, recording arts, and goings on theatrical. He is one of the primary members of the Java Community Process JSR 166 Expert Group (Concurrency Utilities), and has served on numerous other JCP Expert Groups. Joshua Bloch is a principal engineer at Google and a Jolt Award-winner. He was previously a distinguished engineer at Sun Microsystems and a senior systems designer at Transarc. Josh led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. He holds a Ph.D. in computer science from Carnegie Mellon UniTable of ContentsListings xiiPreface xviiChapter 1: Introduction 1 1.1 A (very) brief history of concurrency 11.2 Benefits of threads 31.3 Risks of threads 51.4 Threads are everywhere 9 Part I: Fundamentals 13 Chapter 2: Thread Safety 15 2.1 What is thread safety? 172.2 Atomicity 192.3 Locking 232.4 Guarding state with locks 272.5 Liveness and performance 29 Chapter 3: Sharing Objects 33 3.1 Visibility 333.2 Publication and escape 393.3 Thread confinement 423.4 Immutability 463.5 Safepublication 49 Chapter 4: Composing Objects 55 4.1 Designing a thread-safe class 554.2 Instance confinement 584.3 Delegating thread safety 624.4 Adding functionality to existing thread-safe classes 714.5 Documenting synchronization policies 74 Chapter 5: Building Blocks 79 5.1 Synchronized collections 795.2 Concurrent collections 845.3 Blocking queues and the producer-consumer pattern 875.4 Blocking and interruptible methods 925.5 Synchronizers 945.6 Building an efficient, scalable result cache 101 Part II: Structuring Concurrent Applications 111 Chapter 6: Task Execution 113 6.1 Executing tasks in threads 1136.2 The Executor framework 1176.3 Finding exploitable parallelism 123 Chapter 7: Cancellation and Shutdown 135 7.1 Task cancellation 1357.2 Stopping a thread-based service 1507.3 Handling abnormal thread termination 1617.4 JVM shutdown 164 Chapter 8: Applying Thread Pools 167 8.1 Implicit couplings between tasks and execution policies 1678.2 Sizing thread pools 1708.3 Configuring ThreadPoolExecutor 1718.4 Extending ThreadPoolExecutor 1798.5 Parallelizing recursive algorithms 181 Chapter 9: GUI Applications 189 9.1 Why are GUIs single-threaded? 1899.2 Short-running GUI tasks 1929.3 Long-running GUI tasks 1959.4 Shared data models 1989.5 Other forms of single-threaded subsystems 202 Part III: Liveness, Performance, and Testing 203 Chapter 10: Avoiding Liveness Hazards 205 10.1 Deadlock 20510.2 Avoiding and diagnosing deadlocks 21510.3 Other liveness hazards 218 Chapter 11: Performance and Scalability 221 11.1 Thinking about performance 22111.2 Amdahl's law 22511.3 Costs introduced by threads 22911.4 Reducing lock contention 23211.5 Example: Comparing Map performance 24211.6 Reducing context switch overhead 243 Chapter 12: Testing Concurrent Programs 247 12.1 Testing for correctness 24812.2 Testing for performance 26012.3 Avoiding performance testing pitfalls 26612.4 Complementary testing approaches 270 Part IV: Advanced Topics 275 Chapter 13: Explicit Locks 277 13.1 Lock and ReentrantLock 27713.2 Performance considerations 28213.3 Fairness 28313.4 Choosing between synchronized and ReentrantLock 28513.5 Read-write locks 286 Chapter 14: Building Custom Synchronizers 291 14.1 Managing state dependence 29114.2 Using condition queues 29814.3 Explicit condition objects 30614.4 Anatomy of a synchronizer 30814.5 AbstractQueuedSynchronizer 31114.6 AQS in java.util.concurrent synchronizer classes 314 Chapter15: Atomic Variables and Nonblocking Synchronization 319 15.1 Disadvantages of locking 31915.2 Hardware support for concurrency 32115.3 Atomic variable classes 32415.4 Nonblocking algorithms 329 Chapter 16: The Java Memory Model 337 16.1 What is a memory model, and why would I want one? 33716.2 Publication 34416.3 Initialization safety 349 Appendix A: Annotations for Concurrency 353 A.1 Class annotations 353A.2 Field andmethod annotations 353 Bibliography 355Index 359
£40.04
Pearson Education (US) Eloquent Ruby
Book SynopsisRuss Olsen's career spans three decades, during which he has written everything from graphics device drivers to document management applications. These days, he diligently codes GIS, web service security, and process automation solutions. He spends much of his otherwise free time writing and speaking about programming, especially Ruby and Clojure. His first book was the highly regarded Design Patterns In Ruby (Addison-Wesley, 2007). He is also the lurking presence behind the Technology As If People Mattered blog at www.russolsen.com.Trade ReviewR>Eloquent Ruby is like programming in Ruby itself: fun, surprisingly deep, and you'll find yourself wishing it was always done this way. Wherever you are in your Ruby experience from novice to Rails developer, this book is a must read.Table of ContentsForeword xix Preface xxi Acknowledgments xxv About the Author xxvii PART I: The Basics 1 Chapter 1: Write Code That Looks Like Ruby 3 The Very Basic Basics 4 Go Easy on the Comments 6 Camels for Classes, Snakes Everywhere Else 8 Parentheses Are Optional but Are Occasionally Forbidden 9 Folding Up Those Lines 10 Folding Up Those Code Blocks 11 Staying Out of Trouble 12 In the Wild 13 Wrapping Up 15 Chapter 2: Choose the Right Control Structure 17 If, Unless, While, and Until 17 Use the Modifier Forms Where Appropriate 19 Use each, Not for 20 A Case of Programming Logic 21 Staying Out of Trouble 23 In the Wild 25 Wrapping Up 27 Chapter 3: Take Advantage of Ruby’s Smart Collections 29 Literal Shortcuts 29 Instant Arrays and Hashes from Method Calls 30 Running Through Your Collection 33 Beware the Bang! 36 Rely on the Order of Your Hashes 38 In the Wild 38 Staying Out of Trouble 40 Wrapping Up 42 Chapter 4: Take Advantage of Ruby’s Smart Strings 43 Coming Up with a String 44 Another API to Master 47 The String: A Place for Your Lines, Characters, and Bytes 49 In the Wild 50 Staying Out of Trouble 51 Wrapping Up 52 Chapter 5: Find the Right String with Regular Expressions 53 Matching One Character at a Time 54 Sets, Ranges, and Alternatives 55 The Regular Expression Star 57 Regular Expressions in Ruby 58 Beginnings and Endings 60 In the Wild 62 Staying Out of Trouble 63 Wrapping Up 64 Chapter 6: Use Symbols to Stand for Something 65 The Two Faces of Strings 65 Not Quite a String 66 Optimized to Stand for Something 67 In the Wild 69 Staying Out of Trouble 70 Wrapping Up 71 Chapter 7: Treat Everything Like an Object–Because Everything Is 73 A Quick Review of Classes, Instances, and Methods 74 Objects All the Way Down 76 The Importance of Being an Object 77 Public, Private, and Protected 79 In the Wild 81 Staying Out of Trouble 82 Wrapping Up 84 Chapter 8: Embrace Dynamic Typing 85 Shorter Programs, But Not the Way You Think 85 Extreme Decoupling 89 Required Ceremony Versus Programmer-Driven Clarity 92 Staying Out of Trouble 93 In the Wild 94 Wrapping Up 96 Chapter 9: Write Specs! 97 Test::Unit: When Your Documents Just Have to Work 98 A Plethora of Assertions 101 Don’t Test It, Spec It! 101 A Tidy Spec Is a Readable Spec 104 Easy Stubs 105 . . . And Easy Mocks 107 In the Wild 108 Staying Out of Trouble 110 Wrapping Up 113 PART II: Classes, Modules, and Blocks 115 Chapter 10: Construct Your Classes from Short, Focused Methods 117 Compressing Specifications 117 Composing Methods for Humans 121 Composing Ruby Methods 122 One Way Out? 123 Staying Out of Trouble 126 In the Wild 127 Wrapping Up 128 Chapter 11: Define Operators Respectfully 129 Defining Operators in Ruby 129 A Sampling of Operators 131 Operating Across Classes 134 Staying Out of Trouble 135 In the Wild 137 Wrapping Up 139 Chapter 12: Create Classes That Understand Equality 141 An Identifier for Your Documents 141 An Embarrassment of Equality 142 Double Equals for Everyday Use 143 Broadening the Appeal of the == Method 145 Well-Behaved Equality 146 Triple Equals for Case Statements 149 Hash Tables and the eql? Method 150 Building a Well-Behaved Hash Key 152 Staying Out of Trouble 153 In the Wild 154 Wrapping Up 156 Chapter 13: Get the Behavior You Need with Singleton and Class Methods 157 A Stubby Puzzle 158 A Hidden, but Real Class 160 Class Methods: Singletons in Plain Sight 162 In the Wild 164 Staying Out of Trouble 165 Wrapping Up 167 Chapter 14: Use Class Instance Variables 169 A Quick Review of Class Variables 169 Wandering Variables 171 Getting Control of the Data in Your Class 174 Class Instance Variables and Subclasses 175 Adding Some Convenience to Your Class Instance Variables 176 In the Wild 177 Staying Out of Trouble 179 Wrapping Up 179 Chapter 15: Use Modules as Name Spaces 181 A Place for Your Stuff, with a Name 181 A Home for Those Utility Methods 184 Building Modules a Little at a Time 185 Treat Modules Like the Objects That They Are 186 Staying Out of Trouble 189 In the Wild 190 Wrapping Up 191 Chapter 16: Use Modules as Mixins 193 Better Books with Modules 193 Mixin Modules to the Rescue 195 Extending a Module 197 Staying Out of Trouble 198 In the Wild 202 Wrapping Up 205 Chapter 17: Use Blocks to Iterate 207 A Quick Review of Code Blocks 207 One Word after Another 209 As Many Iterators as You Like 210 Iterating over the Ethereal 211 Enumerable: Your Iterator on Steroids 213 Staying Out of Trouble 215 In the Wild 217 Wrapping Up 218 Chapter 18: Execute Around with a Block 219 Add a Little Logging 219 When It Absolutely Must Happen 224 Setting Up Objects with an Initialization Block 225 Dragging Your Scope along with the Block 225 Carrying the Answers Back 227 Staying Out of Trouble 228 In the Wild 229 Wrapping Up 231 Chapter 19: Save Blocks to Execute Later 233 Explicit Blocks 233 The Call Back Problem 234 Banking Blocks 236 Saving Code Blocks for Lazy Initialization 237 Instant Block Objects 239 Staying Out of Trouble 240 In the Wild 243 Wrapping Up 244 PART III: Metaprogramming 247 Chapter 20: Use Hooks to Keep Your Program Informed 249 Waking Up to a New Subclass 250 Modules Want To Be Heard Too 253 Knowing When Your Time Is Up 255 . . . And a Cast of Thousands 256 Staying Out of Trouble 257 In the Wild 259 Wrapping Up 261 Chapter 21: Use method_missing for Flexible Error Handling 263 Meeting Those Missing Methods 264 Handling Document Errors 266 Coping with Constants 267 In the Wild 268 Staying Out of Trouble 270 Wrapping Up 271 Chapter 22: Use method_missing for Delegation 273 The Promise and Pain of Delegation 274 The Trouble with Old-Fashioned Delegation 275 The method_missing Method to the Rescue 277 More Discriminating Delegation 278 Staying Out of Trouble 279 In the Wild 281 Wrapping Up 283 Chapter 23: Use method_missing to Build Flexible APIs 285 Building Form Letters One Word at a Time 286 Magic Methods from method_missing 287 It’s the Users That Count–All of Them 289 Staying Out of Trouble 289 In the Wild 290 Wrapping Up 292 Chapter 24: Update Existing Classes with Monkey Patching 293 Wide-Open Classes 294 Fixing a Broken Class 295 Improving Existing Classes 296 Renaming Methods with alias_method 297 Do Anything to Any Class, Anytime 299 In the Wild 299 Staying Out of Trouble 303 Wrapping Up 303 Chapter 25: Create Self-Modifying Classes 305 Open Classes, Again 305 Put Programming Logic in Your Classes 308 Class Methods That Change Their Class 309 In the Wild 310 Staying Out of Trouble 314 Wrapping Up 315 Chapter 26: Create Classes That Modify Their Subclasses 317 A Document of Paragraphs 317 Subclassing Is (Sometimes) Hard to Do 319 Class Methods That Build Instance Methods 321 Better Method Creation with define_method 324 The Modification Sky Is the Limit 324 In the Wild 327 Staying Out of Trouble 330 Wrapping Up 332 PART IV: Pulling It All Together 333 Chapter 27: Invent Internal DSLs 335 Little Languages for Big Problems 335 Dealing with XML 336 Stepping Over the DSL Line 341 Pulling Out All the Stops 344 In the Wild 345 Staying Out of Trouble 347 Wrapping Up 349 Chapter 28: Build External DSLs for Flexible Syntax 351 The Trouble with the Ripper 352 Internal Is Not the Only DSL 353 Regular Expressions for Heavier Parsing 356 Treetop for Really Big Jobs 358 Staying Out of Trouble 360 In the Wild 362 Wrapping Up 364 Chapter 29: Package Your Programs as Gems 367 Consuming Gems 367 Gem Versions 368 The Nuts and Bolts of Gems 369 Building a Gem 370 Uploading Your Gem to a Repository 374 Automating Gem Creation 375 In the Wild 376 Staying Out of Trouble 377 Wrapping Up 380 Chapter 30: Know Your Ruby Implementation 381 A Fistful of Rubies 381 MRI: An Enlightening Experience for the C Programmer 382 YARV: MRI with a Byte Code Turbocharger 385 JRuby: Bending the “J” in the JVM 387 Rubinius 388 In the Wild 389 Staying Out of Trouble 389 Wrapping Up 390 Chapter 31: Keep an Open Mind to Go with Those Open Classes 391 Appendix: Going Further 393 Index 397
£37.52
Pearson Education (US) Rocket Surgery Made Easy
Book SynopsisTable of ContentsFINDING USABILITY PROBLEMS Chapter 1 You don’t see any elephants around here, do you? What do-it-yourself usability testing is, why it always works, and why so little of it gets done Chapter 2 I will now saw my [lovely] assistant in half What a do-it-yourself test looks like Chapter 3 A morning a month; that’s all we ask A plan you can actually follow Chapter 4 What do you test, and when do you test it? Why the hardest part is starting early enough Chapter 5 Recruit loosely and grade on a curve Who to test, and how to find them Chapter 6 Find some things for them to do Picking tasks to test, and creating scenarios for them Chapter 7 Some boring checklists …that will save your butt Chapter 8 Mind reading made easy Your job as test facilitator Chapter 9 Make it a spectator sport Getting everyone to watch, and telling them what to look for FIXING USABILITY PROBLEMS Chapter 10 Debriefing 101 Comparing notes and deciding what to fix Chapter 11 The least you can do™ The best ways to fix usability problems Chapter 12 The usual suspects Some problems you’re likely to find, and how to think about fixing them Chapter 13 Making sure life actually improves THE ROAD AHEAD Chapter 14 Teleportation made easy Remote Testing: Fast, cheap, and slightly out of control Chapter 15 Overachievers only Recommended reading and more Chapter 16 Happy trails / to you A few final words of encouragement
£28.79
Pearson Education (US) PHP and MySQL Web Development
Book Synopsis Laura Thomson is director of engineering at Mozilla Corporation. She was formerly a principal at both OmniTI and Tangled Web Design, and she has worked for RMIT University and the Boston Consulting Group. She holds a Bachelor of Applied Science (Computer Science) degree and a Bachelor of Engineering (Computer Systems Engineering) degree with honors. Luke Welling is a software engineer and regularly speaks on open source and web development topics at conferences such as OSCON, ZendCon, MySQLUC, PHPCon, OSDC, and LinuxTag. He has worked for OmniTI, for the web analytics company Hitwise.com, at the database vendor MySQL AB, and as an independent consultant at Tangled Web Design. He has taught computer science at RMIT University in Melbourne, Australia, and holds a Bachelor of Applied Science (Computer Science) degree. Table of ContentsPHP and MySQL Web Development, 5th Edition Part I: Using PHP 1 PHP Crash Course 2 Storing and Retrieving Data 3 Using Arrays 4 String Manipulation and Regular Expressions 5 Reusing Code and Writing Functions 6 Object-Oriented PHP 7 Error and Exception Handling Part II: Using MySQL 8 Designing Your Web Database 9 Creating Your Web Database 10 Working with Your MySQL Database 11 Accessing Your MySQL Database from the Web with PHP 12 Advanced MySQL Administration 13 Advanced MySQL Programming Part III: Web Application Security 14 Web Application Security Risks 15 Building a Secure Web Application 16 Implementing Authentication Methods with PHP Part IV: Advanced PHP Techniques 17 Interacting with the File System and the Server 18 Using Network and Protocol Functions 19 Managing the Date and Time 20 Internationalization and Localization 21 Generating Images 22 Using Session Control in PHP 23 Integrating JavaScript and PHP 24 Other Useful Features Part V: Building Practical PHP and MySQL Projects 25 Using PHP and MySQL for Large Projects 26 Debugging and Logging 27 Building User Authentication and Personalization 28 (PDFs with Product Registration) Building a Web-Based Email Client with Laravel Part I 29 (PDFs with Product Registration) Building a Web-Based Email Client with Laravel Part II 30 (PDFs with Product Registration) Social Media Integration Sharing and Authentication 31 (PDFs with Product Registration) Building a Shopping Cart Part VI: Appendix A Installing Apache, PHP, and MySQL
£35.14
Pearson Education (US) Java EE 7 Tutorial The Volume 1
Book SynopsisEric Jendrock leads the Java EE Tutorial team at Oracle and documented Java Servlet technology as well as internationalization and localization. Ricardo Cervera-Navarro documented resource injection, WebSocket, JSON-P, and JAX-RS, and contributed Java Servlet examples. Ian Evans documented Bean Validation, JAX-RS, and JAX-WS. Kim Haase documented JavaServer Faces technology and CDI. William Markito, a former member of the Platform Technology Solutions group at Oracle, created examples for several technologies.Table of ContentsPreface xxix Part I: Introduction 1 Chapter 1: Overview 3 1.1 Java EE 7 Platform Highlights 4 1.2 Java EE Application Model 5 1.3 Distributed Multitiered Applications 6 1.4 Java EE Containers 13 1.5 Web Services Support 15 1.6 Java EE Application Assembly and Deployment 17 1.7 Development Roles 17 1.8 Java EE 7 APIs 20 1.9 Java EE 7 APIs in the Java Platform, Standard Edition 7 30 1.10 GlassFish Server Tools 33 Chapter 2: Using the Tutorial Examples 35 2.1 Required Software 35 2.2 Starting and Stopping GlassFish Server 39 2.3 Starting the Administration Console. 40 2.4 Starting and Stopping the Java DB Server 40 2.5 Building the Examples 41 2.6 Tutorial Example Directory Structure 41 2.7 Java EE 7 Maven Archetypes in the Tutorial 42 2.8 Getting the Latest Updates to the Tutorial 43 2.9 Debugging Java EE Applications 44 Part II: Platform Basics 47 Chapter 3: Resource Creation 49 3.1 Resources and JNDI Naming 49 3.2 DataSource Objects and Connection Pools 50 3.3 Creating Resources Administratively 51 Chapter 4: Injection 53 4.1 Resource Injection 53 4.2 Dependency Injection 54 4.3 The Main Differences between Resource Injection and Dependency Injection 55 Chapter 5: Packaging 57 5.1 Packaging Applications 57 5.2 Packaging Enterprise Beans 59 5.3 Packaging Web Archives 61 5.4 Packaging Resource Adapter Archives 63 Part III: The Web Tier 65 Chapter 6: Getting Started with Web Applications 67 6.1 Web Applications 68 6.2 Web Application Lifecycle 69 6.3 A Web Module That Uses JavaServer Faces Technology: The hello1 Example 70 6.4 A Web Module That Uses Java Servlet Technology: The hello2 Example 77 6.5 Configuring Web Applications 81 6.6 Further Information about Web Applications 86 Chapter 7: JavaServer Faces Technology 87 7.1 What Is a JavaServer Faces Application? 88 7.2 JavaServer Faces Technology Benefits 89 7.3 A Simple JavaServer Faces Application 91 7.4 User Interface Component Model 92 7.5 Navigation Model 100 7.6 The Lifecycle of a JavaServer Faces Application 103 7.7 Partial Processing and Partial Rendering 110 7.8 Further Information about JavaServer Faces Technology 110 Chapter 8: Introduction to Facelets 111 8.1 What Is Facelets? 112 8.2 The Lifecycle of a Facelets Application 114 8.3 Developing a Simple Facelets Application: The guessnumber-jsf Example Application 115 8.4 Using Facelets Templates 121 8.5 Composite Components 124 8.6 Web Resources 127 8.7 Relocatable Resources 128 8.8 Resource Library Contracts 128 8.9 HTML5-Friendly Markup 132 Chapter 9: Expression Language 141 9.1 Overview of the EL 141 9.2 Immediate and Deferred Evaluation Syntax 142 9.3 Value and Method Expressions 144 9.4 Operations on Collection Objects 151 9.5 Operators 153 9.6 Reserved Words 154 9.7 Examples of EL Expressions 154 9.8 Further Information about the Expression Language 155 Chapter 10: Using JavaServer Faces Technology in Web Pages 157 10.1 Setting Up a Page 158 10.2 Adding Components to a Page Using HTML Tag Library Tags 159 10.3 Using Core Tags 192 Chapter 11: Using Converters, Listeners, and Validators 197 11.1 Using the Standard Converters 198 11.2 Registering Listeners on Components 203 11.3 Using the Standard Validators 207 11.4 Referencing a Managed Bean Method 209 Chapter 12: Developing with JavaServer Faces Technology 213 12.1 Managed Beans in JavaServer Faces Technology 213 12.2 Writing Bean Properties 216 12.3 Writing Managed Bean Methods 226 Chapter 13: Using Ajax with JavaServer Faces Technology 231 13.1 Overview of Ajax 232 13.2 Using Ajax Functionality with JavaServer Faces Technology 233 13.3 Using Ajax with Facelets 233 13.4 Sending an Ajax Request 236 13.5 Monitoring Events on the Client 238 13.6 Handling Errors 238 13.7 Receiving an Ajax Response 239 13.8 Ajax Request Lifecycle 240 13.9 Grouping of Components 240 13.10 Loading JavaScript as a Resource 241 13.11 The ajaxguessnumber Example Application 243 13.12 Further Information about Ajax in JavaServer Faces Technology 247 Chapter 14: Composite Components: Advanced Topics and an Example 249 14.1 Attributes of a Composite Component 249 14.2 Invoking a Managed Bean 251 14.3 Validating Composite Component Values 251 14.4 The compositecomponentexample Example Application 251 Chapter 15: Creating Custom UI Components and Other Custom Objects 257 15.1 Determining Whether You Need a Custom Component or Renderer 259 15.2 Understanding the Image Map Example 262 15.3 Steps for Creating a Custom Component 268 15.4 Creating Custom Component Classes 268 15.5 Delegating Rendering to a Renderer 278 15.6 Implementing an Event Listener 281 15.7 Handling Events for Custom Components 283 15.8 Defining the Custom Component Tag in a Tag Library Descriptor 284 15.9 Using a Custom Component 285 15.10 Creating and Using a Custom Converter 287 15.11 Creating and Using a Custom Validator 292 15.12 Binding Component Values and Instances to Managed Bean Properties 298 15.13 Binding Converters, Listeners, and Validators to Managed Bean Properties 303 Chapter 16: Configuring JavaServer Faces Applications 305 16.1 Using Annotations to Configure Managed Beans 306 16.2 Application Configuration Resource File 307 16.3 Using Faces Flows 311 16.4 Configuring Managed Beans 323 16.5 Registering Application Messages 332 16.6 Using Default Validators 335 16.7 Registering a Custom Validator 336 16.8 Registering a Custom Converter 337 16.9 Configuring Navigation Rules 337 16.10 Registering a Custom Renderer with a Render Kit 340 16.11 Registering a Custom Component 342 16.12 Basic Requirements of a JavaServer Faces Application 343 Chapter 17: Java Servlet Technology 351 17.1 What Is a Servlet? 352 17.2 Servlet Lifecycle 352 17.3 Sharing Information 354 17.4 Creating and Initializing a Servlet 356 17.5 Writing Service Methods 356 17.6 Filtering Requests and Responses 359 17.7 Invoking Other Web Resources 363 17.8 Accessing the Web Context 365 17.9 Maintaining Client State 365 17.10 Finalizing a Servlet 367 17.11 Uploading Files with Java Servlet Technology 370 17.12 Asynchronous Processing 372 17.13 Nonblocking I/O 375 17.14 Protocol Upgrade Processing 378 17.15 The mood Example Application 381 17.16 The fileupload Example Application 383 17.17 The dukeetf Example Application 388 17.18 Further Information about Java Servlet Technology 394 Chapter 18: Java API for WebSocket 395 18.1 Introduction to WebSocket 396 18.2 Creating WebSocket Applications in the Java EE Platform 397 18.3 Programmatic Endpoints 398 18.4 Annotated Endpoints 399 18.5 Sending and Receiving Messages 400 18.6 Maintaining Client State 402 18.7 Using Encoders and Decoders 403 18.8 Path Parameters 406 18.9 Handling Errors 407 18.10 Specifying an Endpoint Configurator Class 407 18.11 The dukeetf2 Example Application 408 18.12 The websocketbot Example Application 413 18.13 Further Information about WebSocket 420 Chapter 19: JSON Processing 421 19.1 Introduction to JSON 421 19.2 JSON Processing in the Java EE Platform 423 19.3 Using the Object Model API 425 19.4 Using the Streaming API 429 19.5 JSON in Java EE RESTful Web Services 431 19.6 The jsonpmodel Example Application 432 19.7 The jsonpstreaming Example Application 434 19.8 Further Information about the Java API for JSON Processing 436 Chapter 20: Internationalizing and Localizing Web Applications 437 20.1 Java Platform Localization Classes 437 20.2 Providing Localized Messages and Labels 438 20.3 Date and Number Formatting 441 20.4 Character Sets and Encodings 442 Part IV: Bean Validation 445 Chapter 21: Introduction to Bean Validation 447 21.1 Using Bean Validation Constraints 447 21.2 Validating Null and Empty Strings 450 21.3 Validating Constructors and Methods 451 21.4 Further Information about Bean Validation 454 Chapter 22: Bean Validation: Advanced Topics 455 22.1 Creating Custom Constraints 455 22.2 Customizing Validator Messages 457 22.3 Grouping Constraints 457 22.4 Using Method Constraints in Type Hierarchies 458 Part V: Contexts and Dependency Injection for Java EE 461 Chapter 23: Introduction to Contexts and Dependency Injection for Java EE 463 23.1 Getting Started 464 23.2 Overview of CDI 466 23.3 About Beans 467 23.4 About CDI Managed Beans 468 23.5 Beans as Injectable Objects 468 23.6 Using Qualifiers 469 23.7 Injecting Beans 470 23.8 Using Scopes 471 23.9 Giving Beans EL Names 473 23.10 Adding Setter and Getter Methods 473 23.11 Using a Managed Bean in a Facelets Page 474 23.12 Injecting Objects by Using Producer Methods 474 23.13 Configuring a CDI Application 475 23.14 Using the @PostConstruct and @PreDestroy Annotations with CDI Managed Bean Classes 476 23.15 Further Information about CDI 477 Chapter 24: Running the Basic Contexts and Dependency Injection Examples 479 24.1 The simplegreeting CDI Example 479 24.2 The guessnumber-cdi CDI Example 483 Chapter 25: Contexts and Dependency Injection for Java EE: Advanced Topics 493 25.1 Packaging CDI Applications 493 25.2 Using Alternatives in CDI Applications 494 25.3 Using Producer Methods, Producer Fields, and Disposer Methods in CDI Applications 497 25.4 Using Predefined Beans in CDI Applications 499 25.5 Using Events in CDI Applications 501 25.6 Using Interceptors in CDI Applications 504 25.7 Using Decorators in CDI Applications 506 25.8 Using Stereotypes in CDI Applications 507 Chapter 26: Running the Advanced Contexts and Dependency Injection Examples 511 26.1 The encoder Example: Using Alternatives 511 26.2 The producermethods Example: Using a Producer Method to Choose a Bean Implementation 517 26.3 The producerfields Example: Using Producer Fields to Generate Resources 520 26.4 The billpayment Example: Using Events and Interceptors 527 26.5 The decorators Example: Decorating a Bean 535 Part VI: Web Services 539 Chapter 27: Introduction to Web Services 541 27.1 What Are Web Services? 541 27.2 Types of Web Services 541 27.3 Deciding Which Type of Web Service to Use 544 Chapter 28: Building Web Services with JAX-WS 545 28.1 Creating a Simple Web Service and Clients with JAX-WS 546 28.2 Types Supported by JAX-WS 555 28.3 Web Services Interoperability and JAX-WS 557 28.4 Further Information about JAX-WS 558 Chapter 29: Building RESTful Web Services with JAX-RS 559 29.1 What Are RESTful Web Services? 559 29.2 Creating a RESTful Root Resource Class 561 29.3 Example Applications for JAX-RS 578 29.4 Further Information about JAX-RS 583 Chapter 30: Accessing REST Resources with the JAX-RS Client API 585 30.1 Overview of the Client API 585 30.2 Using the Client API in the JAX-RS Example Applications 589 30.3 Advanced Features of the Client API 592 Chapter 31: JAX-RS: Advanced Topics and an Example 597 31.1 Annotations for Field and Bean Properties of Resource Classes 598 31.2 Validating Resource Data with Bean Validation 601 31.3 Subresources and Runtime Resource Resolution 604 31.4 Integrating JAX-RS with EJB Technology and CDI 606 31.5 Conditional HTTP Requests 608 31.6 Runtime Content Negotiation 609 31.7 Using JAX-RS with JAXB 611 31.8 The customer Example Application 618 Index 627
£33.29
Cengage Learning, Inc Fundamentals of Python
Book SynopsisWhether you are a computer programming student, hobbyist or professional, Lambert's FUNDAMENTALS OF PYTHON: DATA STRUCTURES, 2E offers the perfect introduction to object-oriented design and data structures using the popular Python programming language. The level of instruction is ideal if you've had at least one semester of programming experience in an object-oriented language, such as Java, C++ or Python. Step-by-step explanations and focused exercises clearly explain the design of collection classes with polymorphism and inheritance and multiple implementations of collection interfaces. This edition also addresses the analysis of the space/time tradeoffs of different collection implementations and, specifically, array-based implementations and link-based implementations. You learn to work with collections, including sets, lists, stacks, queues, trees, dictionaries and graphs. Prepare for success with FUNDAMENTALS OF PYTHON: DATA STRUCTURES, 2E.Table of Contents1. Basic Python Programming. 2. An Overview of Collections. 3. Searching, Sorting, and Complexity Analysis. 4. Arrays and Linked Structures. 5. Interfaces, Implementations, and Polymorphism. 6. Inheritance and Abstract Classes. 7. Stacks. 8. Queues. 9. Lists. 10. Trees. 11. Sets and Dictionaries. 12. Graphs.
£205.85
John Wiley & Sons Inc Computer Graphics for Java Programmers
Book SynopsisThe book covers elementary concepts, from how to produce simple graphical objects using logical coordinates to producing filled regions. The book reinforces concepts with useful and simple examples, then progresses to applied geometry (vectors, polygons) and then onto how to perform rotations and other transformations of graphical objects. In a logical progression of ideas, the reader is introduced to some of the classic graphics algorithms and finally to chapters which cover particular effects such as perspective drawings and hidden-face and hidden-line elimination. The book also provides a host of ready-to-run programs and worked examples to illuminate general principles and geometric techniques for the creation of both 2D and 3D graphical objects.Table of ContentsPreface ix C H A P T E R 1 – Elementary Concepts 1 1.1 Lines, Coordinates and Pixels 2 1.2 The Boundaries of Filled Regions 7 1.3 Logical Coordinates 8 1.4 Anisotropic and Isotropic Mapping Modes 14 1.5 Defining a Polygon by Using the Mouse 21 Exercises 26 C H A P T E R 2 – Applied Geometry 31 2.1 Vectors 32 2.2 Inner Product 34 2.3 Determinants 34 2.4 Vector Product 37 2.5 The Orientation of Three Points 38 2.6 Polygons 41 2.7 The Area of a Polygon 42 2.8 Point-in-Triangle Test 44 2.9 Point-in-Polygon Test 45 2.10 Point-on-Line Test 47 2.11 Distance Between a Point and a Line 50 2.12 Projection of a Point on a Line 51 2.13 Triangulation of Polygons 53 Exercises 58 C H A P T E R 3 – Geometrical Transformations 63 3.1 Matrix Multiplication 64 3.2 Linear Transformations 65 3.3 Translations 71 3.4 Homogeneous Coordinates 71 3.5 Inverse Transformations and Matrix Inversion 72 3.6 Rotation About an Arbitrary Point 74 3.7 Changing the Coordinate System 78 3.8 Rotations About 3D Coordinate Axes 79 3.9 Rotation About an Arbitrary Axis 80 Exercises 88 C H A P T E R 4 – Some Classic Algorithms 91 4.1 Bresenham’s Algorithm for Line Drawing 92 4.2 Doubling the Line-Drawing Speed 97 4.3 Circles 102 4.4 Cohen–Sutherland Line Clipping 107 4.5 Sutherland–Hodgman Polygon Clipping 113 4.6 B´ezier Curves 120 4.7 B-Spline Curve Fitting 130 Exercises 135 C H A P T E R 5 – Perspective 139 5.1 Introduction 140 5.2 The Viewing Transformation 141 5.3 The Perspective Transformation 146 5.4 A Cube in Perspective 148 5.5 Some Useful Classes 152 5.6 A General Program for Wire-Frame Models 168 Exercises 174 C H A P T E R 6 – Hidden-Line Elimination 177 6.1 Line Segments and Triangles 178 6.2 Tests for Visibility 179 6.3 Specification and Representation of 3D Objects 190 6.4 Holes and Invisible Line Segments 192 6.5 Individual Faces and Line Segments 194 6.6 Automatic Generation of Object Specification 198 6.7 Hidden-Line Elimination with HP-GL Output 207 6.8 Implementation 209 Exercises 213 C H A P T E R 7 – Hidden-Face Elimination 219 7.1 Back-Face Culling 220 7.2 Coloring Individual Faces 225 7.3 Painter’s Algorithm 226 7.4 Z-Buffer Algorithm 234 Exercises 246 C H A P T E R 8 – Fractals 249 8.1 Introduction 249 8.2 Koch Curves 250 8.3 String Grammars 253 8.4 Mandelbrot and Julia Sets 264 Exercises 276 A P P E N D I X A – Linear Interpolation of 1/z 277 AP P ENDIX B – A Note on Event Handling 281 A P P E N D I X C – File Obj3D.java 287 A P P E N D I X D – Class CvHLines.java 293 A P P E N D I X E – Some Applications 301 E.1 Platonic Solids 301 E.2 Sphere Representations 312 E.3 A Torus 319 E.4 Beams in a Spiral 323 E.5 Functions of Two Variables 326 A P P E N D I X F – Hints and Solutions to Exercises 339 Bibliography 371 Index 373
£48.56
John Wiley & Sons Inc Concurrency
Book SynopsisConcurrency provides a thoroughly updated approach to the basic concepts and techniques behind concurrent programming. Concurrent programming is complex and demands a much more formal approach than sequential programming.Table of ContentsPreface. Acknowledgments. 1. Introduction. 1.1 Concurrent Programs. 1.2 The Modeling Approach. 1.3 Practice. 1.4 Content Overview. Summary. Notes and Further Reading. 2. Processes and Threads. 2.1 Modeling Processes. 2.2 Implementing Processes. Summary. Notes and Further Reading. Exercises. 3. Concurrent Execution. 3.1 Modeling Concurrency. 3.2 Multi-Threaded Programs. Summary. Notes and Further Reading. Exercises. 4. Shared Objects and Mutual Exclusion. 4.1 Interference. 4.2 Mutual Exclusion in Java. 4.3 Modeling Mutual Exclusion. Summary. Notes and Further Reading. Exercises. 5. Monitors and Condition Synchronization. 5.1 Condition Synchronization. 5.2 Semaphores. 5.3 Bounded Buffers. 5.4 Nested Monitors. 5.5 Monitor Invariants. Summary. Notes and Further Reading. Exercises. 6. Deadlock. 6.1 Deadlock Analysis. 6.2 Dining Philosophers Problem. Summary. Notes and Further Reading. Exercises. 7. Safety and Liveness Properties. 7.1 Safety. 7.2 Single-Lane Bridge Problem. 7.3 Liveness. 7.4 Liveness of the Single-Lane Bridge. 7.5 Readers–Writers Problem. Summary. Notes and Further Reading. Exercises. 8. Model-Based Design. 8.1 From Requirements to Models. 8.2 From Models to Implementation. Summary. Notes and Further Reading Exercises. 9. Dynamic Systems. 9.1 Golf Club Program. 9.2 Golf Club Model. 9.3 Fair Allocation. 9.4 Revised Golf Ball Allocator. 9.5 Bounded Overtaking. 9.6 Bounded Overtaking Golf Ball Allocator. 9.7 Master–Slave Program. 9.8 Master–Slave Model. Summary. Notes and Further Reading. Exercises. 10. Message Passing. 10.1 Synchronous Message Passing. 10.2 Asynchronous Message Passing. 10.3 Rendezvous. Summary. Notes and Further Reading. Exercises. 11. Concurrent Architectures. 11.1 Filter Pipeline. 11.2 Supervisor–Worker. 11.3 Announcer–Listener. Summary. Notes and Further Reading. Exercises. 12. Timed Systems. 12.1 Modeling Timed Systems. 12.2 Implementing Timed Systems. 12.3 Parcel Router Problem. 12.4 Space Invaders. Summary. Notes and Further Reading. Exercises. 13.ihl Program Verification. 13.1 Sequential Processes. 13.2 Modeling Condition Synchronization. 13.3 Modeling Variables and Synchronized Methods. 13.4 Bounded Buffer Example. 13.5 Readers–Writers Example. Summary. Notes and Further Reading. Exercises. 14. Logical Properties. 14.1 Fluent Propositions. 14.2 Temporal Propositions. 14.3 Fluent Linear Temporal Logic (FLTL). 14.4 Database Ring Problem. Summary. Notes and Further Reading. Exercises. Appendix A: FSP Quick Reference. Appendix B: FSP Language Specification. Appendix C: FSP Semantics. Appendix D: UML Class Diagrams. Bibliography. Index.
£53.96
John Wiley and Sons Ltd Java Concepts Advanced Placement Computer Science
Book Synopsis
£66.25
John Wiley & Sons Inc Programming with Objects
Book SynopsisPROGRAMMING WITH OBJECTS Your essential comparative approach to learning C++ and Java Programming with Objects: A Comparative Presentation of Object-Oriented Programming with C++ and Java, a comparative presentation of object-oriented programming with two of the most popular programming languages of today, teaches vital skills and techniques for the Internet age. Based on highly successful courses taught by the author, this book answers the need for a comprehensive educational program on the subject of object-oriented programming. In a clear and accessible format, the author compares and contrasts both languages, from basic language constructs to how both languages are used in application-level programming, such as graphics programming, network programming, and database programming. Since both C++ and Java were born out of the same language, C, learning these two languages together has several distinct advantages: Because they have much in common aTrade Review"...a wonderful volume...a very worthwhile read...essential..." (Choice, September 2003)Table of ContentsWhy OO Programming - Some Parallels with Things at Large. Baby Steps. The Notion of a Class and Some Other Key Ideas. Strings. Using the Container Classes. The Primitive Types and Their Input/Output. Declarations, Definitions, and Initializations. Object Reference and Memory Allocation. Functions and Methods. Handling Exceptions. Classes, The Rest of the Story. Overloading Operators in C++. Generics and Templates. Modeling Diagrams for OO Programs. Extending Classes. Multiple Inheritance in C++. OO for Graphical User Interfaces, A Tour of Three Toolkits. Multithreaded Object-Oriented Programming. Network Programming. Database Programming.
£99.86
John Wiley & Sons Inc A Pattern Approach to Interaction Design
Book SynopsisA much--needed guide on how to apply patterns in user interface design While the subject of design patterns for software development has been covered extensively, little has been written about the power of the pattern format in interface design.Table of ContentsPreface. Series Foreword. Acknowledgements. Introduction. Design Pattern Languages. An Interdisciplinary Pattern Framework. A Pattern Language for Interactive Music Exhibits. Evaluation and Tool Support. Summary and Further Research. Bibliography. Appendix A: Online Resources. Appendix B: WorldBeat Sample Run. List of Figures and Credits. Index.
£36.00
Cengage Learning Fundamentals of Java Ap Computer Science
Book Synopsis
£208.00
O'Reilly Media Google Advertising Tools 2e
Book SynopsisTeaches how to take advantage of Google AdWords and AdSense, the sophisticated online advertising tools used by thousands of businesses, large and small. This book helps you: learn how to create effective campaign plans for your website; and understand the PageRank algorithm, Search Engine Optimization (SEO), and Search Engine Marketing (SEM).
£20.99
O'Reilly Media CSS Cookbook 3e
Book SynopsisA cookbook that provides you with hundreds of practical examples for using CSS to format your web pages, complete with code recipes you can use in your projects right away. It helps to learn the basics, such as understanding CSS rule structure and learn techniques for formatting lists, forms, and tables.
£29.99
O'Reilly Media jQuery Cookbook
Book SynopsisjQuery has emerged as the most popular Ajax framework, outpacing options such as Dojo and the Prototype JavaScript Framework. This title helps you to learn how to add components from the jQuery library to your websites and web applications, with recipes for tasks ranging from basic integration to complex user interface development.
£20.99
O'Reilly Media Head First HTML and CSS
Book SynopsisTired of reading HTML books that only make sense after you're an expert? Then it's about time you picked up Head First HTML and really learned HTML. You want to learn HTML so you can finally create those web pages you've always wanted, so you can communicate more effectively with friends, family, fans, and fanatic customers.
£32.99
O'Reilly Media JavaScript The Good Parts
Book SynopsisOffers an explanation of the features that make JavaScript an object-oriented programming language, and warns you about the bad parts. This book defines a subset of JavaScript that's readable and maintainable than the language. It offers ideas that include functions, loose typing, dynamic objects, and an expressive object literal notation.
£20.39
O'Reilly Media RESTful Web Services Cookbook
Book SynopsisRESTful web services may be simpler, more versatile, and more scalable than web services built with SOAP or CORBA, but using the REST architecture is still no picnic. This title offers more than 50 recipes to help you solve common problems you're likely to face when designing and developing RESTful web services.
£23.99
O'Reilly Media Programming Windows Azure
Book SynopsisWindows Azure is Microsoft's cloud service platform. This title demonstrates how to use Azure's hosting capabilities and storage services to build, deploy, host and manage applications in the Microsoft cloud. It helps you learn understand how to use Windows Azure's programming model and management capabilities.
£29.99
O'Reilly Media Developing Large Web Applications
Book SynopsisPresents you with practical steps for building websites that remain effective as they add features, functions, and users. This book helps you learn the virtues of modularity, encapsulation, abstraction, and loosely coupled components; and get comprehensive coverage of issues involving HTML, CSS, PHP, JavaScript and Ajax, and database interaction.
£20.99
O'Reilly Media JavaScript Patterns
Book SynopsisNow that JavaScript plays such a key role in modern websites, programmers who once dismissed it as a language for amateurs find themselves immersed in JavaScript code. JavaScript Patterns identifies key problem areas you might face when working with the language, and provides design patterns and coding patterns as solutions.
£20.99