Infinite City: A San Francisco Atlas


Rebecca Solnit - 2010
    Aided by artists, writers, cartographers, and twenty-two gorgeous color maps, each of which illuminates the city and its surroundings as experienced by different inhabitants, Solnit takes us on a tour that will forever change the way we think about place. She explores the area thematically—connecting, for example, Eadweard Muybridge’s foundation of motion-picture technology with Alfred Hitchcock’s filming of Vertigo. Across an urban grid of just seven by seven miles, she finds seemingly unlimited landmarks and treasures—butterfly habitats, queer sites, murders, World War II shipyards, blues clubs, Zen Buddhist centers. She roams the political terrain, both progressive and conservative, and details the cultural geographies of the Mission District, the culture wars of the Fillmore, the South of Market world being devoured by redevelopment, and much, much more. Breathtakingly original, this atlas of the imagination invites us to search out the layers of San Francisco that carry meaning for us—or to discover our own infinite city, be it Cleveland, Toulouse, or Shanghai.CONTRIBUTORS:Cartographers: Ben Pease and Shizue SeigelDesigner: Lia TjandraArtists: Sandow Birk, Mona Caron, Jaime Cortez, Hugh D'Andrade, Robert Dawson, Paz de la Calzada, Jim Herrington, Ira Nowinski, Alison Pebworth, Michael Rauner, Gent Sturgeon, Sunaura TaylorWriters and researchers: Summer Brenner, Adriana Camarena, Chris Carlsson, Lisa Conrad, Guillermo Gómez-Peña, Joshua Jelly-Schapiro, Paul La Farge, Genine Lentine, Stella Lochman, Aaron Shurin, Heather Smith, Richard WalkerAdditional cartography: Darin Jensen; Robin Grossinger and Ruth Askevold, San Francisco Estuary Institute

Think Python


Allen B. Downey - 2002
    It covers the basics of computer programming, including variables and values, functions, conditionals and control flow, program development and debugging. Later chapters cover basic algorithms and data structures.

You Are Not a Gadget


Jaron Lanier - 2010
    Now, in his first book, written more than two decades after the web was created, Lanier offers this provocative and cautionary look at the way it is transforming our lives for better and for worse.The current design and function of the web have become so familiar that it is easy to forget that they grew out of programming decisions made decades ago. The web’s first designers made crucial choices (such as making one’s presence anonymous) that have had enormous—and often unintended—consequences. What’s more, these designs quickly became “locked in,” a permanent part of the web’s very structure. Lanier discusses the technical and cultural problems that can grow out of poorly considered digital design and warns that our financial markets and sites like Wikipedia, Facebook, and Twitter are elevating the “wisdom” of mobs and computer algorithms over the intelligence and judgment of individuals. Lanier also shows:How 1960s antigovernment paranoia influenced the design of the online world and enabled trolling and trivialization in online discourseHow file sharing is killing the artistic middle class;How a belief in a technological “rapture” motivates some of the most influential technologistsWhy a new humanistic technology is necessary. Controversial and fascinating, You Are Not a Gadget is a deeply felt defense of the individual from an author uniquely qualified to comment on the way technology interacts with our culture.

Flow: The Psychology of Optimal Experience


Mihaly Csikszentmihalyi - 1990
    During flow, people typically experience deep enjoyment, creativity, and a total involvement with life. Csikszentmihalyi demonstrates the ways this positive state can be controlled, not just left to chance. Flow: The Psychology of Optimal Experience teaches how, by ordering the information that enters our consciousness, we can discover true happiness, unlock our potential, and greatly improve the quality of our lives.

Management 3.0: Leading Agile Developers, Developing Agile Leaders


Jurgen Appelo - 2010
    Unfortunately, reliable guidance on Agile management has been scarce indeed. Now, leading Agile manager Jurgen Appelo fills that gap, introducing a realistic approach to leading, managing, and growing your Agile team or organization. Writing for current managers and developers moving into management, Appelo shares insights that are grounded in modern complex systems theory, reflecting the intense complexity of modern software development. Appelo's Management 3.0 model recognizes that today's organizations are living, networked systems; and that management is primarily about people and relationships. Management 3.0 doesn't offer mere checklists or prescriptions to follow slavishly; rather, it deepens your understanding of how organizations and Agile teams work and gives you tools to solve your own problems. Drawing on his extensive experience as an Agile manager, the author identifies the most important practices of Agile management and helps you improve each of them. Coverage includes - Getting beyond "Management 1.0" control and "Management 2.0" fads - Understanding how complexity affects your organization - Keeping your people active, creative, innovative, and motivated - Giving teams the care and authority they need to grow on their own - Defining boundaries so teams can succeed in alignment with business goals - Sowing the seeds for a culture of software craftsmanship - Crafting an organizational network that promotes success - Implementing continuous improvement that actually works Thoroughly pragmatic-and never trendy-Jurgen Appelo's Management 3.0 helps you bring greater agility to any software organization, team, or project.

Agile Retrospectives: Making Good Teams Great


Esther Derby - 2006
    The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult "people" issues on your team.Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as "post-mortems") are only helpful at the end of the project--too late to help. You need agile retrospectives that are iterative and incremental. You need to accurately find and fix problems to help the team today.Now, Derby and Larsen show you the tools, tricks, and tips you need to fix the problems you face on a software development project on an on-going basis. You'll see how to architect retrospectives in general, how to design them specifically for your team and organization, how to run them effectively, how to make the needed changes, and how to scale these techniques up. You'll learn how to deal with problems, and implement solutions effectively throughout the project--not just at the end.With regular tune-ups, your team will hum like a precise, world-class orchestra.ContentsForwardPrefaceIntroduction1. Helping your team inspect and adapt2. A retrospective custom-fit for your team3. Leading retrospectives4. Activities to set the stage5. Activities to gather data6. Activities to gather insights7. Activities to decide what to do8. Activities to close the retrospective9. Releases and project retrospectives10. Make it soA1. Facilitation suppliesA2. Debriefing activitiesA3. Activities quick reference matrixA4. Resources for learning facilitation skillsA5. Bibliography

slide:ology: The Art and Science of Creating Great Presentations


Nancy Duarte - 2008
    Presentation software is one of the few tools that requires professionals to think visually on an almost daily basis. But unlike verbal skills, effective visual expression is not easy, natural, or actively taught in schools or business training programs. slide:ology fills that void.Written by Nancy Duarte, President and CEO of Duarte Design, the firm that created the presentation for Al Gore's Oscar-winning film, An Inconvenient Truth, this book is full of practical approaches to visual story development that can be applied by anyone. The book combines conceptual thinking and inspirational design, with insightful case studies from the world's leading brands. With slide:ology you'll learn to:Connect with specific audiencesTurn ideas into informative graphicsUse sketching and diagramming techniques effectivelyCreate graphics that enable audiences to process information easilyDevelop truly influential presentationsUtilize presentation technology to your advantageMillions of presentations and billions of slides have been produced -- and most of them miss the mark. slide:ology will challenge your traditional approach to creating slides by teaching you how to be a visual thinker. And it will help your career by creating momentum for your cause.--back cover

Java Concurrency in Practice


Brian Goetz - 2005
    Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."--Martin BuchholzJDK Concurrency Czar, Sun Microsystems"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."--Doron RajwanResearch Scientist, Intel Corp"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."--Ted NewardAuthor of Effective Enterprise Java"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."--Kirk PepperdineCTO, JavaPerformanceTuning.com"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."--Dr. Cliff ClickSenior Software Engineer, Azul Systems"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."--Dr. Heinz KabutzThe Java Specialists' Newsletter"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."--Bruce TateAuthor of Beyond Java" Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."--Bill VennersAuthor of Inside the Java Virtual MachineThreads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.This book covers:Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model

Hello World: Being Human in the Age of Algorithms


Hannah Fry - 2018
    It’s time we stand face-to-digital-face with the true powers and limitations of the algorithms that already automate important decisions in healthcare, transportation, crime, and commerce. Hello World is indispensable preparation for the moral quandaries of a world run by code, and with the unfailingly entertaining Hannah Fry as our guide, we’ll be discussing these issues long after the last page is turned.

Enlightenment Now: The Case for Reason, Science, Humanism, and Progress


Steven Pinker - 2018
    Instead, follow the data: In seventy-five jaw-dropping graphs, Pinker shows that life, health, prosperity, safety, peace, knowledge, and happiness are on the rise, not just in the West, but worldwide. This progress is not the result of some cosmic force. It is a gift of the Enlightenment: the conviction that reason and science can enhance human flourishing.Far from being a naïve hope, the Enlightenment, we now know, has worked. But more than ever, it needs a vigorous defense. The Enlightenment project swims against currents of human nature–tribalism, authoritarianism, demonization, magical thinking–which demagogues are all too willing to exploit. Many commentators, committed to political, religious, or romantic ideologies, fight a rearguard action against it. The result is a corrosive fatalism and a willingness to wreck the precious institutions of liberal democracy and global cooperation.With intellectual depth and literary flair, Enlightenment Now makes the case for reason, science, and humanism: the ideals we need to confront our problems and continue our progress.

The Second Machine Age: Work, Progress, and Prosperity in a Time of Brilliant Technologies


Erik Brynjolfsson - 2014
    Digital technologies—with hardware, software, and networks at their core—will in the near future diagnose diseases more accurately than doctors can, apply enormous data sets to transform retailing, and accomplish many tasks once considered uniquely human.In The Second Machine Age MIT’s Erik Brynjolfsson and Andrew McAfee—two thinkers at the forefront of their field—reveal the forces driving the reinvention of our lives and our economy. As the full impact of digital technologies is felt, we will realize immense bounty in the form of dazzling personal technology, advanced infrastructure, and near-boundless access to the cultural items that enrich our lives.Amid this bounty will also be wrenching change. Professions of all kinds—from lawyers to truck drivers—will be forever upended. Companies will be forced to transform or die. Recent economic indicators reflect this shift: fewer people are working, and wages are falling even as productivity and profits soar.Drawing on years of research and up-to-the-minute trends, Brynjolfsson and McAfee identify the best strategies for survival and offer a new path to prosperity. These include revamping education so that it prepares people for the next economy instead of the last one, designing new collaborations that pair brute processing power with human ingenuity, and embracing policies that make sense in a radically transformed landscape.A fundamentally optimistic book, The Second Machine Age alters how we think about issues of technological, societal, and economic progress.

Practical Object Oriented Design in Ruby


Sandi Metz - 2012
    The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design, Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code

Excellent Sheep: The Miseducation of the American Elite and the Way to a Meaningful Life


William Deresiewicz - 2014
    His students, some of the nation’s brightest minds, were adrift when it came to the big questions: how to think critically and creatively, and how to find a sense of purpose.Excellent Sheep takes a sharp look at the high-pressure conveyor belt that begins with parents and counselors who demand perfect grades and culminates in the skewed applications Deresiewicz saw firsthand as a member of Yale’s admissions committee. As schools shift focus from the humanities to "practical" subjects like economics and computer science, students are losing the ability to think in innovative ways. Deresiewicz explains how college should be a time for self-discovery, when students can establish their own values and measures of success, so they can forge their own path. He addresses parents, students, educators, and anyone who's interested in the direction of American society, featuring quotes from real students and graduates he has corresponded with over the years, candidly exposing where the system is broken and clearly presenting solutions.

Computer Networking: A Top-Down Approach


James F. Kurose - 2000
    Building on the successful top-down approach of previous editions, this fourth edition continues with an early emphasis on application-layer paradigms and application programming interfaces, encouraging a hands-on experience with protocols and networking concepts.

How to Fly a Horse: The Secret History of Creation, Invention, and Discovery


Kevin Ashton - 2014
    Now, in a tour-de-force narrative twenty years in the making, Ashton leads us on a journey through humanity’s greatest creations to uncover the surprising truth behind who creates and how they do it. From the crystallographer’s laboratory where the secrets of DNA were first revealed by a long forgotten woman, to the electromagnetic chamber where the stealth bomber was born on a twenty-five-cent bet, to the Ohio bicycle shop where the Wright brothers set out to “fly a horse,” Ashton showcases the seemingly unremarkable individuals, gradual steps, multiple failures, and countless ordinary and usually uncredited acts that lead to our most astounding breakthroughs.Creators, he shows, apply in particular ways the everyday, ordinary thinking of which we are all capable, taking thousands of small steps and working in an endless loop of problem and solution. He examines why innovators meet resistance and how they overcome it, why most organizations stifle creative people, and how the most creative organizations work. Drawing on examples from art, science, business, and invention, from Mozart to the Muppets, Archimedes to Apple, Kandinsky to a can of Coke, How to Fly a Horse is a passionate and immensely rewarding exploration of how “new” comes to be.