Book picks similar to
Memory Machines: The Evolution of Hypertext by Belinda Barnet
history
tech
hypertext
computing
Growing Object-Oriented Software, Guided by Tests
Steve Freeman - 2009
This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
Who Says Elephants Can't Dance?: Inside IBM's Historic Turnaround
Louis V. Gerstner Jr. - 2002
By 1993, the computer industry had changed so rapidly the company was on its way to losing $16 billion and IBM was on a watch list for extinction -- victimized by its own lumbering size, an insular corporate culture, and the PC era IBM had itself helped invent.Then Lou Gerstner was brought in to run IBM. Almost everyone watching the rapid demise of this American icon presumed Gerstner had joined IBM to preside over its continued dissolution into a confederation of autonomous business units. This strategy, well underway when he arrived, would have effectively eliminated the corporation that had invented many of the industry's most important technologies.Instead, Gerstner took hold of the company and demanded the managers work together to re-establish IBM's mission as a customer-focused provider of computing solutions. Moving ahead of his critics, Gerstner made the hold decision to keep the company together, slash prices on his core product to keep the company competitive, and almost defiantly announced, "The last thing IBM needs right now is a vision."Who Says Elephants Can't Dance? tells the story of IBM's competitive and cultural transformation. In his own words, Gerstner offers a blow-by-blow account of his arrival at the company and his campaign to rebuild the leadership team and give the workforce a renewed sense of purpose. In the process, Gerstner defined a strategy for the computing giant and remade the ossified culture bred by the company's own success.The first-hand story of an extraordinary turnaround, a unique case study in managing a crisis, and a thoughtful reflection on the computer industry and the principles of leadership, Who Says Elephants Can't Dance? sums up Lou Gerstner's historic business achievement. Taking readers deep into the world of IBM's CEO, Gerstner recounts the high-level meetings and explains the pressure-filled, no-turning-back decisions that had to be made. He also offers his hard-won conclusions about the essence of what makes a great company run.In the history of modern business, many companies have gone from being industry leaders to the verge of extinction. Through the heroic efforts of a new management team, some of those companies have even succeeded in resuscitating themselves and living on in the shadow of their former stature. But only one company has been at the pinnacle of an industry, fallen to near collapse, and then, beyond anyone's expectations, returned to set the agenda. That company is IBM.Lou Gerstener, Jr., served as chairman and chief executive officer of IBM from April 1993 to March 2002, when he retired as CEO. He remained chairman of the board through the end of 2002. Before joining IBM, Mr. Gerstner served for four years as chairman and CEO of RJR Nabisco, Inc. This was preceded by an eleven-year career at the American Express Company, where he was president of the parent company and chairman and CEO of its largest subsidiary. Prior to that, Mr. Gerstner was a director of the management consulting firm of McKinsey & Co., Inc. He received a bachelor's degree in engineering from Dartmouth College and an MBA from Harvard Business School.
Learn Python in One Day and Learn It Well: Python for Beginners with Hands-on Project
Jamie Chan - 2014
Master Python Programming with a unique Hands-On Project Have you always wanted to learn computer programming but are afraid it'll be too difficult for you? Or perhaps you know other programming languages but are interested in learning the Python language fast? This book is for you. You no longer have to waste your time and money learning Python from lengthy books, expensive online courses or complicated Python tutorials. What this book offers... Python for Beginners Complex concepts are broken down into simple steps to ensure that you can easily master the Python language even if you have never coded before. Carefully Chosen Python Examples Examples are carefully chosen to illustrate all concepts. In addition, the output for all examples are provided immediately so you do not have to wait till you have access to your computer to test the examples. Careful selection of topics Topics are carefully selected to give you a broad exposure to Python, while not overwhelming you with information overload. These topics include object-oriented programming concepts, error handling techniques, file handling techniques and more. Learn The Python Programming Language Fast Concepts are presented in a "to-the-point" style to cater to the busy individual. With this book, you can learn Python in just one day and start coding immediately. How is this book different... The best way to learn Python is by doing. This book includes a complete project at the end of the book that requires the application of all the concepts taught previously. Working through the project will not only give you an immense sense of achievement, it"ll also help you retain the knowledge and master the language. Are you ready to dip your toes into the exciting world of Python coding? This book is for you. With the first edition of this book being a #1 best-selling programming ebook on Amazon for more than a year, you can rest assured that this new and improved edition is the perfect book for you to learn the Python programming language fast. Click the BUY button and download it now. What you'll learn: - What is Python? - What software you need to code and run Python programs? - What are variables? - What are the common data types in Python? - What are Lists and Tuples? - How to format strings - How to accept user inputs and display outputs - How to control the flow of program with loops - How to handle errors and exceptions - What are functions and modules? - How to define your own functions and modules - How to work with external files - What are objects and classes - How to write your own class - What is inheritance - What are properties - What is name mangling .. and more... Finally, you'll be guided through a hands-on project that requires the application of all the topics covered. Click the BUY button and download the book now to start learning Python. Learn it fast and learn it well. Tags: ------------ Python, Object-oriented Python, Python course, Python book, learning Python, Python language, Python examples, Python tutorials, Python programming language, Python coding, Pyth
The Revolt of the Public and the Crisis of Authority
Martin Gurri - 2014
In the words of economist and scholar Arnold Kling, Martin Gurri saw it coming.Technology has categorically reversed the information balance of power between the public and the elites who manage the great hierarchical institutions of the industrial age government, political parties, the media.The Revolt of the Public tells the story of how insurgencies, enabled by digital devices and a vast information sphere, have mobilized millions of ordinary people around the world.Originally published in 2014, this updated edition of The Revolt of the Public includes an extensive analysis of Donald Trump's improbable rise to the presidency and the electoral triumphs of Brexit and concludes with a speculative look forward, pondering whether the current elite class can bring about a reformation of the democratic process and whether new organizing principles, adapted to a digital world, can arise out of the present political turbulence.
CSS Pocket Reference
Eric A. Meyer - 2001
And since browser incompatibility is the biggest CSS headache for most developers, it also includes an invaluable chart displaying detailed information about CSS support for every style element across all browsers. For anyone who wants to correctly implement CSS, this book condenses all the details in its companion volume, "Cascading Style Sheets: The Definitive Guide," into one easy-to-use cheat-sheet.The "CSS Pocket Reference" delivers just the CSS details that you need to complete the task at hand. When you're stuck and want an answer quickly, the tiny "CSS Pocket Reference" is the book you'll want by your keyboard or in your back pocket. (Yes, it really does fit in a back pocket, but it's too useful to stay there long.)
The Linux Programming Interface: A Linux and Unix System Programming Handbook
Michael Kerrisk - 2010
You'll learn how to:Read and write files efficiently Use signals, clocks, and timers Create processes and execute programs Write secure programs Write multithreaded programs using POSIX threads Build and use shared libraries Perform interprocess communication using pipes, message queues, shared memory, and semaphores Write network applications with the sockets API While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.Praise for The Linux Programming Interface "If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it." —Martin Landers, Software Engineer, Google "This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book." —Mel Gorman, Author of Understanding the Linux Virtual Memory Manager "Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers." —Andreas Jaeger, Program Manager, openSUSE, Novell "Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem." —David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards ". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system." —Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author ". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for." —Anthony Robins, Associate Professor of Computer Science, The University of Otago "I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs." —Christophe Blaess, Author of Programmation systeme en C sous Linux ". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1." —Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group "What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf." —Bill Gallmeister, Author of POSIX.4 Programmer's Guide: Programming for the Real World ". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf." —Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com
Refactoring to Patterns
Joshua Kerievsky - 2004
In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively. "
The Industries of the Future
Alec J. Ross - 2016
In the next ten years, change will happen even faster. As Hillary Clinton's Senior Advisor for Innovation, Alec Ross travelled nearly a million miles to forty-one countries, the equivalent of two round-trips to the moon. From refugee camps in the Congo and Syrian war zones, to visiting the world's most powerful people in business and government, Ross's travels amounted to a four-year masterclass in the changing nature of innovation. In The Industries of the Future, Ross distils his observations on the forces that are changing the world. He highlights the best opportunities for progress and explains how countries thrive or sputter. Ross examines the specific fields that will most shape our economic future over the next ten years, including robotics, artificial intelligence, the commercialization of genomics, cybercrime and the impact of digital technology. Blending storytelling and economic analysis, he answers questions on how we will need to adapt. Ross gives readers a vivid and informed perspective on how sweeping global trends are affecting the ways we live, now and tomorrow.
Program or Be Programmed: Ten Commands for a Digital Age
Douglas Rushkoff - 2010
But for all the heat of claim and counter-claim, the argument is essentially beside the point: it’s here; it’s everywhere. The real question is, do we direct technology, or do we let ourselves be directed by it and those who have mastered it? “Choose the former,” writes Rushkoff, “and you gain access to the control panel of civilization. Choose the latter, and it could be the last real choice you get to make.” In ten chapters, composed of ten “commands” accompanied by original illustrations from comic artist Leland Purvis, Rushkoff provides cyberenthusiasts and technophobes alike with the guidelines to navigate this new universe.In this spirited, accessible poetics of new media, Rushkoff picks up where Marshall McLuhan left off, helping readers come to recognize programming as the new literacy of the digital age––and as a template through which to see beyond social conventions and power structures that have vexed us for centuries. This is a friendly little book with a big and actionable message. World-renowned media theorist and counterculture figure Douglas Rushkoff is the originator of ideas such as “viral media,” “social currency” and “screenagers.” He has been at the forefront of digital society from its beginning, correctly predicting the rise of the net, the dotcom boom and bust, as well as the current financial crisis. He is a familiar voice on NPR, face on PBS, and writer in publications from Discover Magazine to the New York Times.“Douglas Rushkoff is one of the great thinkers––and writers––of our time.” —Timothy Leary“Rushkoff is damn smart. As someone who understood the digital revolution faster and better than almost anyone, he shows how the internet is a social transformer that should change the way your business culture operates." —Walter Isaacson
Programming Pearls
Jon L. Bentley - 1986
Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem." - Steve McConnell, author, Code CompleteWhen programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that
Programming Pearls
has been so highly valued by programmers at every level of experience. In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments. In addition, there are three new essays on (1) testing, debugging, and timing; (2) set representations; and (3) string problems. All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web.What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, this book is sure to make your own list of favorites.
Reinventing Discovery: The New Era of Networked Science
Michael Nielsen - 2011
This change is being driven by powerful new cognitive tools, enabled by the internet, which are greatly accelerating scientific discovery. There are many books about how the internet is changing business or the workplace or government. But this is the first book about something much more fundamental: how the internet is transforming the nature of our collective intelligence and how we understand the world.Reinventing Discovery tells the exciting story of an unprecedented new era of networked science. We learn, for example, how mathematicians in the Polymath Project are spontaneously coming together to collaborate online, tackling and rapidly demolishing previously unsolved problems. We learn how 250,000 amateur astronomers are working together in a project called Galaxy Zoo to understand the large-scale structure of the Universe, and how they are making astonishing discoveries, including an entirely new kind of galaxy. These efforts are just a small part of the larger story told in this book--the story of how scientists are using the internet to dramatically expand our problem-solving ability and increase our combined brainpower.This is a book for anyone who wants to understand how the online world is revolutionizing scientific discovery today--and why the revolution is just beginning.
Programming in Haskell
Graham Hutton - 2006
This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include freely accessible Powerpoint slides for each chapter, solutions to exercises and examination questions (with solutions) available to instructors, and a downloadable code that's fully compliant with the latest Haskell release.
Tools for Thought: The History and Future of Mind-Expanding Technology
Howard Rheingold - 1985
C. R. Licklider, Doug Engelbart, Bob Taylor, and Alan Kay.The digital revolution did not begin with the teenage millionaires of Silicon Valley, claims Howard Rheingold, but with such early intellectual giants as Charles Babbage, George Boole, and John von Neumann. In a highly engaging style, Rheingold tells the story of what he calls the patriarchs, pioneers, and infonauts of the computer, focusing in particular on such pioneers as J. C. R. Licklider, Doug Engelbart, Bob Taylor, and Alan Kay. Taking the reader step by step from nineteenth-century mathematics to contemporary computing, he introduces a fascinating collection of eccentrics, mavericks, geniuses, and visionaries.The book was originally published in 1985, and Rheingold's attempt to envision computing in the 1990s turns out to have been remarkably prescient. This edition contains an afterword, in which Rheingold interviews some of the pioneers discussed in the book. As an exercise in what he calls retrospective futurism, Rheingold also looks back at how he looked forward.
In the Beginning...Was the Command Line
Neal Stephenson - 1999
And considering that the "one man" is Neal Stephenson, "the hacker Hemingway" (Newsweek) -- acclaimed novelist, pragmatist, seer, nerd-friendly philosopher, and nationally bestselling author of groundbreaking literary works (Snow Crash, Cryptonomicon, etc., etc.) -- the word is well worth hearing. Mostly well-reasoned examination and partial rant, Stephenson's In the Beginning... was the Command Line is a thoughtful, irreverent, hilarious treatise on the cyber-culture past and present; on operating system tyrannies and downloaded popular revolutions; on the Internet, Disney World, Big Bangs, not to mention the meaning of life itself.
Computer Power and Human Reason: From Judgment to Calculation
Joseph Weizenbaum - 1976
A classic text by the author who developed ELIZA, a natural-language processing system.