Chris Crawford on Interactive Storytelling


Chris Crawford - 2004
    However, figuring out how to tell it interactively - can be challenging. This work provides examples of contemporary games that rely on different technologies - and learn the storytelling lessons to be garnered from each of the past methodologies.

Shipping Greatness: Practical lessons on building and launching outstanding software, learned on the job at Google and Amazon


Chris Vander Mey - 2012
    In this guide, Chris Vander Mey provides a simplified, no-BS approach to the entire software lifecycle, distilled from lessons he learned as a manager at Amazon and Google.In the first part of the book, you’ll learn a step-by-step shipping process used by many of the best teams at Google and Amazon. Part II shows you the techniques, best practices, and skills you need to face an array of challenges in product, program, project, and engineering management.Clearly define your product and develop your mission and strategyAssemble your team and understand enough about systems to communicate with themCreate a beautiful, intuitive, and simple user experienceTrack your team’s deliverables and closely manage the testing processCommunicate clearly to gracefully handle requests, senior-management interactions, and feedback from various sourcesBuild metrics to track progress, spot problems, and celebrate successStick to your launch checklist and plan for marketing and PR

DevOps for the Modern Enterprise: Winning Practices to Transform Legacy IT Organizations


Mirco Hering - 2018
    

Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services


Robert Daigneau - 2011
    In this time, developers and architects have encountered a number of recurring design challenges related to their usage, and have learned that certain service design approaches work better than others to solve certain problems.   In Service Design Patterns, Rob Daigneau codifies proven design solutions for web services that follow the REST architectural style or leverage the SOAP/WSDL specifications. This catalogue identifies the fundamental topics in web service design and lists the common design patterns for each topic. All patterns identify the context in which they may be used, explain the constituent design elements, and explore the relative strengths and trade-offs. Code examples are provided to help you better understand how the patterns work but are kept general so that you can see how the solutions may be applied to disparate technologies that will inevitably change in the years to come.   This book will help readers answer the following questions: How do you create a web service API, what are the common API styles, and when should a particular style be used? How can clients and web services communicate, and what are the foundations for creating complex conversations in which multiple parties exchange data over extended periods of time? What are the options for implementing web service logic, and when should a particular approach be used? How can clients become less coupled to the underlying systems used by a service? How can information about a web service be discovered? How can generic functions like authentication, validation, caching, and logging be supported on the client or service? What changes to a service cause clients to break? What are the common ways to version a service? How can web services be designed to support the continuing evolution of business logic without forcing clients to constantly upgrade?  This book is an invaluable resource for enterprise architects, solution architects, and developers who use web services to create enterprise IT applications, commercial or open source products, and Software as a Service (SaaS) products that leverage emerging Cloud platforms.

Web Scalability for Startup Engineers


Artur Ejsmont - 2015
    With a focus on core concepts and best practices rather than on individual languages, platforms, or technologies, Web Scalability for Startup Engineers describes how infrastructure and software architecture work together to support a scalable environment.You'll learn, step by step, how scalable systems work and how to solve common challenges. Helpful diagrams are included throughout, and real-world examples illustrate the concepts presented. Even if you have limited time and resources, you can successfully develop and deliver robust, scalable web applications with help from this practical guide.Learn the key principles of good software design required for scalable systemsBuild the front-end layer to sustain the highest levels of concurrency and request ratesDesign and develop web services, including REST-ful APIsEnable a horizontally scalable data layerImplement caching best practicesLeverage asynchronous processing, messaging, and event-driven architectureStructure, index, and store data for optimized searchExplore other aspects of scalability, such as automation, project management, and agile teams

Design Patterns Explained: A New Perspective on Object-Oriented Design


Alan Shalloway - 2001
    "Design Patterns Explained "complements the existing design patterns texts and may perform a very useful role, fitting between introductory texts such as UML Distilled and the more advanced patterns books." James Noble Leverage the quality and productivity benefits of patterns without the complexity! "Design Patterns Explained, Second Edition" is the field's simplest, clearest, most practical introduction to patterns. Using dozens of updated Java examples, it shows programmers and architects exactly how to use patterns to design, develop, and deliver software far more effectively. You'll start with a complete overview of the fundamental principles of patterns, and the role of object-oriented analysis and design in contemporary software development. Then, using easy-to-understand sample code, Alan Shalloway and James Trott illuminate dozens of today's most useful patterns: their underlying concepts, advantages, tradeoffs, implementation techniques, and pitfalls to avoid. Many patterns are accompanied by UML diagrams. Building on their best-selling First Edition, Shalloway and Trott have thoroughly updated this book to reflect new software design trends, patterns, and implementation techniques. Reflecting extensive reader feedback, they have deepened and clarified coverage throughout, and reorganized content for even greater ease of understanding. New and revamped coverage in this edition includesBetter ways to start "thinking in patterns"How design patterns can facilitate agile development using eXtreme Programming and other methodsHow to use commonality and variability analysis to design application architecturesThe key role of testing into a patterns-driven development processHow to use factories to instantiate and manage objects more effectivelyThe Object-Pool Pattern a new pattern not identified by the "Gang of Four"New study/practice questions at the end of every chapter Gentle yet thorough, this book assumes no patterns experience whatsoever. It's the ideal "first book" on patterns, and a perfect complement to Gamma's classic "Design Patterns." If you're a programmer or architect who wants the clearest possible understanding of design patterns or if you've struggled to make them work for you read this book.

Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices


Harry Percival - 2020
    Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.With this practical guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity. Each pattern is illustrated with concrete examples in idiomatic Python that explain how to avoid some of the unnecessary verbosity of Java and C# syntax. You'll learn how to implement each of these patterns in a Pythonic way.Architectural design patterns include:Dependency inversion, and its links to ports and adapters (hexagonal/clean architecture)Domain-driven design's distinction between entities, value objects, and aggregatesRepository and Unit of Work patterns for persistent storageEvents, commands, and the message busCommand Query Responsibility Segregation (CQRS)Event-driven architecture and reactive microservices

Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites


Matthew A. Russell - 2011
    You’ll learn how to combine social web data, analysis techniques, and visualization to find what you’ve been looking for in the social haystack—as well as useful information you didn’t know existed.Each standalone chapter introduces techniques for mining data in different areas of the social Web, including blogs and email. All you need to get started is a programming background and a willingness to learn basic Python tools.Get a straightforward synopsis of the social web landscapeUse adaptable scripts on GitHub to harvest data from social network APIs such as Twitter, Facebook, LinkedIn, and Google+Learn how to employ easy-to-use Python tools to slice and dice the data you collectExplore social connections in microformats with the XHTML Friends NetworkApply advanced mining techniques such as TF-IDF, cosine similarity, collocation analysis, document summarization, and clique detectionBuild interactive visualizations with web technologies based upon HTML5 and JavaScript toolkits"A rich, compact, useful, practical introduction to a galaxy of tools, techniques, and theories for exploring structured and unstructured data." --Alex Martelli, Senior Staff Engineer, Google

Patterns of Software: Tales from the Software Community


Richard P. Gabriel - 1996
    But while most of us today can work a computer--albeit with the help of the ever-present computer software manual--we know little about what goes on inside the box and virtually nothing about software designor the world of computer programming. In Patterns of Software, the respected software pioneer and computer scientist, Richard Gabriel, gives us an informative inside look at the world of software design and computer programming and the business that surrounds them. In this wide-ranging volume, Gabriel discusses such topics as whatmakes a successful programming language, how the rest of the world looks at and responds to the work of computer scientists, how he first became involved in computer programming and software development, what makes a successful software business, and why his own company, Lucid, failed in 1994, tenyears after its inception. Perhaps the most interesting and enlightening section of the book is Gabriel's detailed look at what he believes are the lessons that can be learned from architect Christopher Alexander, whose books--including the seminal A Pattern Language--have had a profound influence on the computer programmingcommunity. Gabriel illuminates some of Alexander's key insights--the quality without a name, pattern languages, habitability, piecemeal growth--and reveals how these influential architectural ideas apply equally well to the construction of a computer program. Gabriel explains the concept ofhabitability, for example, by comparing a program to a New England farmhouse and the surrounding structures which slowly grow and are modified according to the needs and desires of the people who live and work on the farm. Programs live and grow, and their inhabitants--the programmers--need to workwith that program the way the farmer works with the homestead. Although computer scientists and software entrepreneurs will get much out of this book, the essays are accessible to everyone and will intrigue anyone curious about Silicon Valley, computer programming, or the world of high technology.

Understanding Cryptography: A Textbook For Students And Practitioners


Christof Paar - 2009
    Today's designers need a comprehensive understanding of applied cryptography.After an introduction to cryptography and data security, the authors explain the main techniques in modern cryptography, with chapters addressing stream ciphers, the Data Encryption Standard (DES) and 3DES, the Advanced Encryption Standard (AES), block ciphers, the RSA cryptosystem, public-key cryptosystems based on the discrete logarithm problem, elliptic-curve cryptography (ECC), digital signatures, hash functions, Message Authentication Codes (MACs), and methods for key establishment, including certificates and public-key infrastructure (PKI). Throughout the book, the authors focus on communicating the essentials and keeping the mathematics to a minimum, and they move quickly from explaining the foundations to describing practical implementations, including recent topics such as lightweight ciphers for RFIDs and mobile devices, and current key-length recommendations.The authors have considerable experience teaching applied cryptography to engineering and computer science students and to professionals, and they make extensive use of examples, problems, and chapter reviews, while the book's website offers slides, projects and links to further resources. This is a suitable textbook for graduate and advanced undergraduate courses and also for self-study by engineers.

100 Things Every Designer Needs to Know about People


Susan M. Weinschenk - 2011
    We want them to buy something, read more, or take action of some kind. Designing without understanding what makes people act the way they do is like exploring a new city without a map: results will be haphazard, confusing, and inefficient. This book combines real science and research with practical examples to deliver a guide every designer needs. With it you'll be able to design more intuitive and engaging work for print, websites, applications, and products that matches the way people think, work, and play.Learn to increase the effectiveness, conversion rates, and usability of your own design projects by finding the answers to questions such as: What grabs and holds attention on a page or screen?What makes memories stick?What is more important, peripheral or central vision?How can you predict the types of errors that people will make?What is the limit to someone's social circle?How do you motivate people to continue on to (the next step?What line length for text is best?Are some fonts better than others? These are just a few of the questions that the book answers in its deep-dive exploration of what makes people tick.

Cybersexism: Sex, Gender and Power on the Internet


Laurie Penny - 2013
    Millions found their voices in this brave new online world; it gave unheard masses the space to speak to each other without limits, across borders, both physical and social. It was supposed to liberate us from gender. But as more and more of our daily lives migrated on line, it seemed it did matter if you were a boy or a girl.’It's a tough time to be a woman on the internet. Over the past two generations, the political map of human relations has been redrawn by feminism and by changes in technology. Together they pose questions about the nature and organisation of society that are deeply challenging to those in power, and in both cases, the backlash is on. In this brave new world, old-style sexism is making itself felt in new and frightening ways. In Cybersexism, Laurie Penny goes to the dark heart of the matter and asks why threats of rape and violence are being used to try to silence female voices, analyses the structure of online misogyny, and makes a case for real freedom of speech – for everyone.

On Growth and Form


D'Arcy Wentworth Thompson - 1917
    Why do living things and physical phenomena take the forms they do? Analyzing the mathematical and physical aspects of biological processes, this historic work, first published in 1917, has become renowned as well for the poetry of is descriptions.

Getting Started with Processing


Casey Reas - 2010
    Programming courses usually start with theory, but this book lets you jump right into creative and fun projects. It's ideal for anyone who wants to learn basic programming, and serves as a simple introduction to graphics for people with some programming skills.Written by the founders of Processing, this book takes you through the learning process one step at a time to help you grasp core programming concepts. You'll learn how to sketch with code -- creating a program with one a line of code, observing the result, and then adding to it. Join the thousands of hobbyists, students, and professionals who have discovered this free and educational community platform.Quickly learn programming basics, from variables to objectsUnderstand the fundamentals of computer graphicsGet acquainted with the Processing software development environmentCreate interactive graphics with easy-to-follow projectsUse the Arduino open source prototyping platform to control your Processing graphics

System Design Interview – An Insider's Guide


Alex Xu - 2020
    This book provides a step-by-step framework on how to tackle a system design question. It includes many real-world examples to illustrate the systematic approach with detailed steps that you can follow.What’s inside?- An insider’s take on what interviewers really look for and why.- A 4-step framework for solving any system design interview question.- 15 real system design interview questions with detailed solutions.- 188 diagrams to visually explain how different systems work.Table Of ContentsChapter 1: Scale From Zero To Millions Of UsersChapter 2: Back-of-the-envelope EstimationChapter 3: A Framework For System Design InterviewsChapter 4: Design A Rate LimiterChapter 5: Design Consistent HashingChapter 6: Design A Key-value StoreChapter 7: Design A Unique Id Generator In Distributed SystemsChapter 8: Design A Url ShortenerChapter 9: Design A Web CrawlerChapter 10: Design A Notification SystemChapter 11: Design A News Feed SystemChapter 12: Design A Chat SystemChapter 13: Design A Search Autocomplete SystemChapter 14: Design YoutubeChapter 15: Design Google DriveChapter 16: The Learning Continues