Out of Our Minds: Learning to Be Creative


Ken Robinson - 2001
    This is a book not to be missed. Read and rejoice.' KEN BLANCHARD'If ever there was a time when creativity was necessary for the survival and growth of any organization, it is now. This book, more than any other I know, provides important insights on how leaders can evoke and sustain those creative juices.' WARREN BENNIS

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Computer Systems: A Programmer's Perspective


Randal E. Bryant - 2002
    Often, computer science and computer engineering curricula don't provide students with a concentrated and consistent introduction to the fundamental concepts that underlie all computer systems. Traditional computer organization and logic design courses cover some of this material, but they focus largely on hardware design. They provide students with little or no understanding of how important software components operate, how application programs use systems, or how system attributes affect the performance and correctness of application programs. - A more complete view of systems - Takes a broader view of systems than traditional computer organization books, covering aspects of computer design, operating systems, compilers, and networking, provides students with the understanding of how programs run on real systems. - Systems presented from a programmers perspective - Material is presented in such a way that it has clear benefit to application programmers, students learn how to use this knowledge to improve program performance and reliability. They also become more effective in program debugging, because t

Building Microservices: Designing Fine-Grained Systems


Sam Newman - 2014
    But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You'll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.Discover how microservices allow you to align your system design with your organization's goalsLearn options for integrating a service with the rest of your systemTake an incremental approach when splitting monolithic codebasesDeploy individual microservices through continuous integrationExamine the complexities of testing and monitoring distributed servicesManage security with user-to-service and service-to-service modelsUnderstand the challenges of scaling microservice architectures

Damn Good Advice (For People with Talent!): How To Unleash Your Creative Potential by America's Master Communicator, George Lois


George Lois - 2012
    Offering indispensle lessons, practical advice, facts, anecdotes and inspiration, this book is a timeless creative bible for all those looking to succeed in life, business and creativity. These are key lessons derived from the incomparle life of 'Master Communicator' George Lois, the original Mad Man of Madison Avenue. Written and compiled by the man The Wall Street Journal called "prodigy, enfant terrible, founder of agencies, creator of legends," each step is borne from a passion to succeed and a disdain for the status quo.Organised into inspirational, bite-sized pointers, each page offers fresh insight into the sources of success, from identifying your heroes to identifying yourself. The ideas, images and illustrations presented in this book are fresh, witty and in-your-face. Whether it's communicating your point in nanosecond, creating an explosive portfolio or making your presence felt, no one is better placed than George Lois to teach you the process of creativity.Poignant, punchy and to-the-point, Damn Good Advice (For People With Talent!) is a must have for anyone on a quest for success.

Structure and Interpretation of Computer Programs


Harold Abelson - 1984
    This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

The Great Mental Models: General Thinking Concepts


Shane Parrish - 2018
     The more tools you have at your disposal, the more likely you'll use the right tool for the job — and get it done right. The same is true when it comes to your thinking. The quality of your outcomes depends on the mental models in your head. And most people are going through life with little more than a hammer. Until now. The Great Mental Models: General Thinking Concepts is the first book in The Great Mental Models series designed to upgrade your thinking with the best, most useful and powerful tools so you always have the right one on hand. This volume details nine of the most versatile, all-purpose mental models you can use right away to improve your decision making, productivity, and how clearly you see the world. You will discover what forces govern the universe and how to focus your efforts so you can harness them to your advantage, rather than fight with them or worse yet— ignore them. Upgrade your mental toolbox and get the first volume today!

Hit Refresh: The Quest to Rediscover Microsoft's Soul and Imagine a Better Future for Everyone


Satya Nadella - 2017
    It’s about how people, organizations and societies can and must hit refresh—transform—in their persistent quest for new energy, new ideas, relevance and renewal. At the core, it’s about us humans and our unique qualities, like empathy, which will become ever more valuable in a world where the torrent of technology will disrupt like never before. As much a humanist as a technologist, Nadella defines his mission and that of the company he leads as empowering every person and every organization on the planet to achieve more.

Prototyping: A Practitioner's Guide


Todd Zaki Warfel - 2009
    Prototypes help you to flesh out design ideas, test assumptions, and gather real-time feedback from users. With this book, Todd Zaki Warfel shows how prototypes are more than just a design tool by demonstrating how they can help you market a product, gain internal buy-in, and test feasibility with your development team. TESTIMONIALS "When someone asks me about prototyping, I'll be pointing them to this book from now on." â��Kim Goodwin: VP Design, Cooper; author, Designing for the Digital Age "Todd's text offers a comprehensive view of prototyping--from the role of prototypes in socializing decision making and achieving organizational buy-in, to the actual pragmatics of creating interactive artifacts. This is a solid book for those 'in the trenches'--the designers doing the actual work that ends up in the actual products we use every day." â��Jon Kolko: Editor-in-Chief, interactions; Associate Creative Director, Frog "If you design applications and are stuck in the land of task flows and wireframes, you really need to pick up a copy of Prototyping: A Practitioner's Guide. Todd offers practical, hands-on advice to jump start your prototyping and make your designs truly interactive before they are built." â��Dan Saffer: Principal, Kicker Studios; author of Designing for Interaction and Designing Gestural Interfaces "Whether you're prototyping to explore ideas or to communicate them, Todd Zaki Warfel's smart, accessible guide will give you the tools you need." â��Jesse James Garrett: Author, The Elements of User Experience; President, Adaptive Path

Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made


Jason Schreier - 2017
    In Blood, Sweat, and Pixels, Jason Schreier takes readers on a fascinating odyssey behind the scenes of video game development, where the creator may be a team of 600 overworked underdogs or a solitary geek genius. Exploring the artistic challenges, technical impossibilities, marketplace demands, and Donkey Kong-sized monkey wrenches thrown into the works by corporate, Blood, Sweat, and Pixels reveals how bringing any game to completion is more than Sisyphean—it's nothing short of miraculous.Taking some of the most popular, bestselling recent games, Schreier immerses readers in the hellfire of the development process, whether it's RPG studio Bioware's challenge to beat an impossible schedule and overcome countless technical nightmares to build Dragon Age: Inquisition; indie developer Eric Barone's single-handed efforts to grow country-life RPG Stardew Valley from one man's vision into a multi-million-dollar franchise; or Bungie spinning out from their corporate overlords at Microsoft to create Destiny, a brand new universe that they hoped would become as iconic as Star Wars and Lord of the Rings—even as it nearly ripped their studio apart. Documenting the round-the-clock crunches, buggy-eyed burnout, and last-minute saves, Blood, Sweat, and Pixels is a journey through development hell—and ultimately a tribute to the dedicated diehards and unsung heroes who scale mountains of obstacles in their quests to create the best games imaginable.

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software


Scott Rosenberg - 2007
    Along the way, we encounter black holes, turtles, snakes, dragons, axe-sharpening, and yak-shaving—and take a guided tour through the theories and methods, both brilliant and misguided, that litter the history of software development, from the famous ‘mythical man-month’ to Extreme Programming. Not just for technophiles but for anyone captivated by the drama of invention, Dreaming in Code offers a window into both the information age and the workings of the human mind.

The Shape of Design


Frank Chimero - 2012
    My name's Frank Chimero. I've spent the better part of the last two years writing and speaking on design and thinking about the topics that orbit the practice: storytelling, concept, craft, and improvisation. I want to take all of the ideas I've had and connected these past few months and capture them in a book format.I've been teaching for the past 5 years, and I've always been a bit frustrated that there isn't a nice, concise book that overviews the mental state of a successful designer while they go through their creative process. For instance, many say that graphic design is visual communication. A cornerstone of communication is storytelling, and yet you'd be hard-pressed to find any discussion of how to tell stories with design in any design book. This should be remedied.There are new challenges in the world that need to be discussed, and I think design is a prime lens to consider these topics. As our world moves faster and as things become less stable, it becomes more important for individuals to embrace ambiguity, understand paradox, and realize that two things can conflict and still somehow both be true. We must realize that logic doesn't always work, and that sometimes nonsense is the best answer. These are the topics I intend to address in the book.The Shape of Design isn't going to be a text book. The project will be focused on Why instead of How. We have enough How; it's time for a thoughtful analysis of our practice and its characteristics so we can better practice our craft. After reading the book, I want you to look at what you do in a whole new light. Design is more than working for clients.But really, this book aims to look at the mindset and worldview that designing develops in order to answer one big, important question: How can we make things that help all of us live better?"

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

Designing Design


Kenya Hara - 2003
    In Designing Design, he impresses upon the reader the importance of emptiness in both the visual and philosophical traditions of Japan, and its application to design, made visible by means of numerous examples from his own work: Hara for instance designed the opening and closing ceremony programs for the Nagano Winter Olympic Games 1998. In 2001, he enrolled as a board member for the Japanese label MUJI and has considerably moulded the identity of this successful corporation as communication and design advisor ever since. Kenya Hara, alongside Naoto Fukasawa one of the leading design personalities in Japan, has also called attention to himself with exhibitions such as Re-Design: The Daily Products of the 21st Century.

Cognition in the Wild (Bradford Books)


Edwin Hutchins - 1995
    His theoretical insights are grounded in an extended analysis of ship navigation -- its computational basis, its historical roots, its social organization, and the details of its implementation in actual practice aboard large ships. The result is an unusual interdisciplinary approach to cognition in culturally constituted activities outside the laboratory -- "in the wild."Hutchins examines a set of phenomena that have fallen in the cracks between the established disciplines of psychology and anthropology, bringing to light a new set of relationships between culture and cognition. The standard view is that culture affects the cognition of individuals. Hutchins argues instead that cultural activity systems have cognitive properties of their own that are different from the cognitive properties of the individuals who participate in them. Each action for bringing a large naval vessel into port, for example, is informed by culture: the navigation team can be seen as a cognitive and computational system.Introducing Navy life and work on the bridge, Hutchins makes a clear distinction between the cognitive properties of an individual and the cognitive properties of a system. In striking contrast to the usual laboratory tasks of research in cognitive science, he applies the principal metaphor of cognitive science -- cognition as computation (adopting David Marr's paradigm) -- to the navigation task. After comparing modern Western navigation with the method practiced in Micronesia, Hutchins explores the computational and cognitive properties of systems that are larger than an individual. He then turns to an analysis of learning or change in the organization of cognitive systems at several scales. Hutchins's conclusion illustrates the costs of ignoring the cultural nature of cognition, pointing to the ways in which contemporary cognitive science can be transformed by new meanings and interpretations. A Bradford Book