What's The Most Powerful Thing You Can Say To Yourself, If...
A Prospect Says... "No, I'm not interested. I don't want to do that"? - NEXT! "I tried that once, and it didn't work"? - NEXT! "I'll wait and see how you do"? - NEXT! "Oh, I've seen that before and I'm not interested"? - NEXT! "I'm satisfied with my life and doing okay"? - NEXT! Or... Someone laughs at you because you want a better life for you and your family? - NEXT! You're tired and feeling like giving up, even though you haven't yet reached your goal? - NEXT! Someone puts you down and tries to steal your dream? - NEXT! Your family and friends say you're crazy, and that thing doesn't work? - NEXT! Someone gives you an excuse why they "can't" do the business? - NEXT! Whether you've experienced any of these situations or not, this book can help you develop the attitude to deal with them and build a bigger business.
Tired of making web sites that work absolutely perfectly but just don't look nice?
If so, then The Principles of Beautiful Web Design is for you. A simple, easy-to-follow guide, illustrated with plenty of full-color examples, this book will lead you through the process of creating great designs from start to finish. Good design principles are not rocket science, and using the information contained in this book will help you create stunning web sites. Understand the design process, from discovery to implementation Understand what makes "good design" Developing pleasing layouts using grids, the rule of thirds, balance and symmetry Use color effectively, develop color schemes and create a palette Use textures, lines, points, shapes, volumes and depth Learn how good typography can make ordinary designs look great Effective imagery: choosing, editing and placing images And much more Throughout the book, you'll follow an example design, from concept to completion, learning along the way. The book's full-color layout and large format (8" x 10") make The Principles Of Beautiful Wed Design a pleasure to read.
Many firms have used outsourcing and offshoring to shave costs and reduce operating expenses. But as opportunities for innovation and growth migrate to the peripheries of companies, industries, and the global economy, efficiency will no longer be enough to sustain competitive advantage.
In Your Next Business Strategy, renowned business thinkers John Hagel and John Seely Brown argue that the only sustainable advantage in the future will come from an institutional capacity to work closely with other highly specialized firms to get better faster. Enabled by the emergence of global process networks, firms will undergo a three-stage transformation: deepening specialization within firms; mobilizing best-in-class capabilities across enterprises; and, ultimately, accelerating learning across broad networks of enterprises. Hagel and Seely Brown discuss the strategic levers that will accelerate this migration, and they outline a new approach to strategy development that will help companies capture this shifting source of strategic advantage. Calling for a forceful reinvention of business strategy and the very nature of the firm itself, this bold and forward-looking book reveals what every company must do today to become tomorrow’s market leader.
Back in the early 1980s, word spread about an inviting little personal computer that used something called a mouse and smiled at you when you turned it on. Steven Levy relates his first encounter with the pre-released Mac and goes on to chronicle the machine that Apple developers hoped would "make a dent in the universe." A wonderful story told by a terrific writer (Levy was the longtime writer of the popular "Iconoclast" column in MacWorld; he's now a columnist with Newsweek, the birth and first ten years of the Macintosh is a great read.
This is not your usual get-rich-quick manual. Though Dennis, a poet (When Jack Sued Jill: Nursery Rhymes for Modern Times) and the founder of a publishing empire (including Maxim magazine), wants to help the reader rank at least among the lesser rich (equal to a net worth of $30 million–$80 million by his definition), he isn't himself motivated by money. With his own fortune estimated at between $400 million and $900 million, he doesn't have to be. Instead, Dennis wants to demystify the money-getting process, and his straight-talking, honest advice makes a refreshing change in this oversaturated field. Using humorous examples from his own business life, Dennis's advice, from The Five Most Common Start-Up Errors to The Power of Focus, might sound like conventional fare, but delivered in his signature bawdy, British style, it's altogether more entertaining—and more practical. Dennis highlights the right strategies and mindset to get readers their millions, but he won't air-brush his story or soften the bitter truth along the way. As he says, when it comes to acquiring wealth, being a bit of a shit helps.
Who Is Talking About You?
Foreword by Seth Godin and Afterword by Guy Kawasaki. Master the art of word of mouth marketing with this practical hands-on guide. With straightforward advice and humor, marketing expert Andy Sernovitz will show you how the world's most respected and profitable companies get their best customers for free through the power of word of mouth. Learn the five essential steps that make word of mouth work and everything you need to get started using them. Understand the real purpose of blogs, communities, viral email, evangelists, and buzz--when to use them and how simple it is to make them work. Learn what sparks the irrepressible enthusiasm of Apple and TiVo fans. Understand why everyone is talking about a certain restaurant, car, band, or dry cleaner--and why other businesses and products are ignored. Discover why some products become huge successes without a penny of promotion--and why some multi-million-dollar advertising campaigns fail to get noticed. Open your eyes to a new way of doing business--that honest marketing makes more money, because customers who trust you will talk about you. Learn how to be the remarkable company that people want to share with their friends.
Unabashedly inspired by Malcolm Gladwell's bestselling The Tipping Point, the brothers Heath—Chip a professor at Stanford's business school, Dan a teacher and textbook publisher—offer an entertaining, practical guide to effective communication. Drawing extensively on psychosocial studies on memory, emotion and motivation, their study is couched in terms of "stickiness"—that is, the art of making ideas unforgettable. They start by relating the gruesome urban legend about a man who succumbs to a barroom flirtation only to wake up in a tub of ice, victim of an organ-harvesting ring. What makes such stories memorable and ensures their spread around the globe? The authors credit six key principles: simplicity, unexpectedness, concreteness, credibility, emotions and stories. (The initial letters spell out "success"—well, almost.) They illustrate these principles with a host of stories, some familiar (Kennedy's stirring call to "land a man on the moon and return him safely to the earth" within a decade) and others very funny (Nora Ephron's anecdote of how her high school journalism teacher used a simple, embarrassing trick to teach her how not to "bury the lead"). Throughout the book, sidebars show how bland messages can be made intriguing. Fun to read and solidly researched, this book deserves a wide readership.
Build highly scalable, Ruby-based service architectures that operate smoothly in the cloud or with legacy systems
Scale Rails systems to handle more requests, larger development teams, and more complex code bases
Master new best practices for designing and creating services in Ruby
Use Ruby to glue together services written in any language
Use Ruby libraries to build and consume RESTful Web services
Use Ruby JSON parsers to quickly represent resources from HTTP services
Write lightweight, well-designed API wrappers around internal or external services
Discover powerful non-Rails frameworks that simplify Ruby service implementation
Implement standards-based enterprise messaging with Advanced Message Queuing Protocol (AMQP)
Optimize performance with load balancing and caching
Provide for security and authentication
You've built web sites that can be used by humans. But can you also build web sites that are usable by machines? That's where the future lies, and that's what RESTful Web Services shows you how to do. The World Wide Web is the most popular distributed application in history, and Web services and mashups have turned it into a powerful distributed computing platform. But today's web service technologies have lost sight of the simplicity that made the Web successful. They don't work like the Web, and they're missing out on its advantages.
This book puts the "Web" back into web services. It shows how you can connect to the programmable web with the technologies you already use every day. The key is REST, the architectural style that drives the Web. This book:
Emphasizes the power of basic Web technologies -- the HTTP application protocol, the URI naming standard, and the XML markup language
Introduces the Resource-Oriented Architecture (ROA), a common-sense set of rules for designing RESTful web services
Shows how a RESTful design is simpler, more versatile, and more scalable than a design based on Remote Procedure Calls (RPC)
Includes real-world examples of RESTful web services, like Amazon's Simple Storage Service and the Atom Publishing Protocol
Discusses web service clients for popular programming languages
Shows how to implement RESTful services in three popular frameworks -- Ruby on Rails, Restlet (for Java), and Django (for Python)
Focuses on practical issues: how to design and implement RESTful web services and clients
This is the first book that applies the REST design philosophy to real web services. It sets down the best practices you need to make your design a success, and the techniques you need to turn your design into working code. You can harness the power of the Web for programmable applications: you just have to work with the Web instead of against it. This book shows you how.
Search and replace text using regular expressions.
Navigate the DOM and create, delete, and move elements on the page.
Validate email addresses on your web forms.
Print inline error messages when validating forms.
Minimize the problems associated with popup windows.
Make a slideshow of images.
Ensure your code works on different browsers.
Make a style sheet switcher.
Build an accessible drop-down menu system.
Construct drag 'n' drop interfaces using AJAX.
Use the XMLHttpRequest object to build AJAX applications.
The rules of battle for tracking down -- and eliminating -- hardware and software bugs. When the pressure is on to root out an elusive software or hardware glitch, what's needed is a cool head courtesy of a set of rules guaranteed to work on any system, in any circumstance. Written in a frank but engaging style, Debugging provides simple, foolproof principles guaranteed to help find any bug quickly. This book makes those shelves of application-specific debugging books (on C++, Perl, Java, etc.) obsolete. It changes the way readers think about debugging, making those pesky problems suddenly much easier to find and fix. Illustrating the rules with real-life bug-detection war stories, the book shows readers how to: * Understand the system: how perceiving the ""roadmap"" can hasten your journey * Quit thinking and look: when hands-on investigation can't be avoided * Isolate critical factors: why changing one element at a time can be an essential tool * Keep an audit trail: how keeping a record of the debugging process can win the day"
Creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.
Features of C Interfaces and Implementations:
Concise interface descriptions that comprise a reference manual for programmers interested in using the interfaces.
A guided tour of the code that implements each chapter's interface tp help those modifying or extending an interface or designing related interfaces.
In-depth focus on "algorithm engineering:" how to package data structures and related algorithms into reusable modules.
Source code for 24 APIs and 8 sample applications is examined, with each presented as a "literate program" in which a thorough explanation is interleaved with the source code.
Rarely documented C programming tricks-of-the-trade.
A lot has happened in the world of digital design since the first edition of this title was published, but one thing remains true: There is an ever-growing number of people attempting to design pages with no formal training. This book is the one place they can turn to find quick, non-intimidating, excellent design help from trusted design instructor Robin Williams. This revised classic--now in full color--includes a new section on the hot topic of Color itself. In The Non-Designer's Design Book, 3rd Edition, Robin turns her attention to the basic principles that govern good design. Readers who follow her clearly explained concepts will produce more sophisticated and professional pages immediately. Humor-infused, jargon-free prose interspersed with design exercises, quizzes, and illustrations make learning a snap--which is just what audiences have come to expect from this best-selling author.
This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development. Computer scientists, developers, and aspiring students that want to learn how to build, maintain, and execute a compiler for a major programming language.
Designed for first-time and experienced users, this book describes the UNIX®programming environment and philosophy in detail. Readers will gain an understanding not only of how to use the system, its components, and the programs, but also how these fit into the total environment.
This newly expanded and updated second edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students.
The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography.
NEW to the second edition:
Call to Action includes the information businesses need to know to achieve dramatic results from online efforts. Are you planning for top performance? Are you accurately evaluating that performance? Are you setting the best benchmarks for measuring success? How well are you communicating your value proposition? Are you structured for change? Can you achieve the momentum you need to get the results you want? If you have the desire and commitment to create phenomenal online results, then this book is your call to action.
Within these pages, New York Times best-selling authors Bryan and Jeffrey Eisenberg walk you through the five phases that comprise web site development, from the critical planning phase, through developing structure, momentum, and communication, to articulating value. Along the way, they offer advice and practical applications culled from their years of experience "in the trenches."
Prospective entrepreneurs may think they know everything there is to know about starting a business in Silicon Valley. They can draw up business plans, have meetings with venture capitalists, maybe even get funded and actually launch a start-up. However, in The Monk and the Riddle, Silicon Valley sage Randy Komisar reasons that's only half the equation for success. And it may not be the important half. Komisar has worked with a number of companies--Apple, LucasArts Entertainment (the gaming division of George Lucas's empire), and WebTV among them--and has come to a rather startling conclusion: if you can't see yourself doing this business for the rest of your life, don't start it. In other words, he wants to see passion and purpose in business, not just spreadsheets and a by-the-numbers business model.
To illustrate, Komisar takes the reader through a hypothetical Silicon Valley start-up, with an eager entrepreneur named Lenny trying to get funding for an online casket-selling business. As Komisar helps Lenny find the real purpose of the business, the passion behind the revenue projections, he reflects back on his life as an entrepreneur. Komisar emerges as a master storyteller, the kind of guy you'd feel honored to share a bottle of wine with. And you believe his conclusion: "When all is said and done, the journey is the reward." It's great if you've made billions on the journey, but the important thing is that you do something you can truly throw yourself into
For more than a decade, Steve McConnell, one of the premier authors and voices in the software community, has helped change the way developers write code--and produce better software. Now his classic book, CODE COMPLETE, has been fully updated and revised with best practices in the art and science of constructing software. Whether you're a new developer seeking a sound introduction to the practice of software development or a veteran exploring strategic new approaches to problem solving, you'll find a wealth of practical suggestions and methods for strengthening your skills. Topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. This new edition features fully updated information on programming techniques, including the emergence of Web-style programming, and integrated coverage of object-oriented design. You'll also find new code examples--both good and bad--in C++, Microsoft® Visual Basic®, C#, and Java, though the focus is squarely on techniques and practices.
How much money are you losing because of poor landing page design? In this comprehensive, step-by-step guide, you will learn all the skills necessary to dramatically improve your bottom line:
Identify mission critical parts of your website and their true economic value
Define important visitor classes and key conversion tasks
Gain insight on customer decision-making and make your page friction-free
Uncover problems with your page and decide which elements to test
Understand the power and limitations of common optimization approaches
Develop an action plan and get buy-in from all key players
Avoid common real-world pitfalls that can sabotage your test
Today, serious Web pages use HTML and XHTML to structure their content and CSS for style and presentation. You need a book that understands how to incorporate everything correctly. Head First HTML with CSS & XHTML explains the fundamentals of HTML, XHTML, topics like web color, and CSS properties. In this book, pictures and step-by-step instructions explain how to build great-looking, standards-compliant web sites.
Ries and Trout, authors of some of the most popular titles in marketing published during the last decade ( Marketing Warfare , LJ 10/15/85; Positioning: The Battle for Your Mind , Warner, 1987; and Bottom-Up Marketing , McGraw, 1989), continue the same breezy style, with lots of anecdotes and insider views of contemporary marketing strategy. The premise behind this book is that in order for marketing strategies to work, they must be in tune with some quintessential force in the marketplace. Just as the laws of physics define the workings of the universe, so do successful marketing programs conform to the "22 Laws." Each law is presented with illustrations of how it works based on actual companies and their marketing strategies. For example, the "Law of Focus" states that the most powerful concept in marketing is "owning" a word in the prospect's mind, such as Crest's owning cavities and Nordstrom's owning service. The book is fun to read, contains solid information, and should be acquired by all public and business school libraries. It will be requested by readers of the authors' earlier titles.
While it purports to look at the business world of Silicon Valley through the lens of one man, that one man, Jim Clark, is so domineering that the book is essentially about Clark. No matter: Clark is as successful and interesting an example of Homo siliconus as any writer is likely to find. Lewis (Liar's Poker) has created an absorbing and extremely literate profile of one of America's most successful entrepreneurs. Clark has created three companiesASilicon Graphics, Netscape (now part of America Online) and HealtheonAeach valued at more than $1 billion by Wall Street. Lewis was apparently given unlimited access to Clark, a man motivated in equal parts by a love of the technology he helps to create and a desire to prove something to a long list of people whom he believes have done him wrong throughout his life (especially his former colleagues at Silicon Graphics). As Lewis looks at the various roles of venture capitalists, entrepreneurs and programmers and at how these very different mindsets fit together in the anatomy of big deals, he gives readers a sense of how the Valley works. But the heart of the book remains Clark, who simultaneously does everything from supervise the creation of what may be the world's largest sloop to creating his fourth company (currently in the works). Lewis does a good job of putting Clark's accomplishments in context, and if he is too respectful of Clark's privacy (several marriages and children are mentioned but not elaborated on), he provides a detailed look at the professional life of one of the men who have changed the world as we know it.
No matter how visually appealing or content-packed a Web site may be, if it's not adaptable to a variety of situations and reaching the widest possible audience, it isn't really succeeding. In Bulletproof Web Desing, author and Web designer extraordinaire, Dan Cederholm outlines standards-based strategies for building designs that provide flexibility, readability, and user control--key components of every sucessful site. Each chapter starts out with an example of an unbulletproof site one that employs a traditional HTML-based approach which Dan then deconstructs, pointing out its limitations. He then gives the site a make-over using XHTML and Cascading Style Sheets (CSS), so you can see how to replace bloated code with lean markup and CSS for fast-loading sites that are accessible to all users. Finally, he covers several popular fluid and elastic-width layout techniques and pieces together all of the page components discussed in prior chapters into a single-page template.
When Peter Thiel and Max Levchin launched an online payment website in 1999, they hoped their service could improve the lives of millions around the globe. But when their start-up, PayPal, survived the dot.com crash only to find itself besieged by unimaginable challenges, that dream threatened to become a nightmare. PayPal's history – as told by former insider Eric Jackson – is an engrossing study of human struggle and perseverance against overwhelming odds. The entrepreneurs that Thiel and Levchin recruited to overhaul world currency markets first had to face some of the greatest trials ever thrown at a Silicon Valley company before they could make internet history.
Business guru Tom Peters, author of "In Search of Excellence," called the hardcover edition of The PayPal Wars "a real page turner" that featured what he called "the best description of business strategy unfolding in a world changing at warp speed." This new paperback edition features updated material and even more insights on the state of internet commerce.
What does it take to turn ideas into action? What are the elements of a perfect pitch? How do you win the war for talent? How do you establish a brand without bucks? These are some of the issues everyone faces when starting or revitalizing any undertaking, and Guy Kawasaki, former marketing maven of Apple Computer, provides the answers.
The Art of the Start will give you the essential steps to launch great products, services, and companies—whether you are dreaming of starting the next Microsoft or a not-for-profit that’s going to change the world. It also shows managers how to unleash entrepreneurial thinking at established companies, helping them foster the pluck and creativity that their businesses need to stay ahead of the pack. Kawasaki provides readers with GIST—Great Ideas for Starting Things—including his field-tested insider’s techniques for bootstrapping, branding, networking, recruiting, pitching, rainmaking, and, most important in this fickle consumer climate, building buzz.
At Apple, Kawasaki helped turn ordinary customers into fanatics. As founder and CEO of Garage Technology Ventures, he has tested his iconoclastic ideas on real- world start- ups. And as an irrepressible columnist for Forbes, he has honed his best thinking about The Art of the Start.
No book on software project management has been so influential and so timeless as The Mythical Man-Month. Now 20 years after the publication of his book, Frederick P. Brooks, Jr. (best known as the "father of the IBM System 360") revisits his original ideas and develops new thoughts and advice both for readers familiar with his work and for readers discovering it for the first time.
Understanding automated testing and TDD
Building effective automated testing workflows
Testing code for both browsers and servers (using Node.js)
Using TDD to build cleaner APIs, better modularized code, and more robust software
Writing testable code
Using test stubs and mocks to test units in isolation
Continuously improving code through refactoring
Walking through the construction and automated testing of fully functional software
Positioning, a concept developed by the authors, has changed the way people advertise. The reason? It's the first concept to deal with the problems of communicating in an overcommunicated society. With this approach, a company creates a 'position' in the prospect's mind, one that reflects the company's own strengths and weaknesses as well as those of its competitors. Witty and fast-paced, this book spells out how to position a leader so that it gets into the mind and stays there, position a follower in a way that finds a 'hole' not occupied by the leader, and avoid the pitfalls of letting a second product ride on the coattails of an established one. Revised to reflect significant developments in the five years since its original publication, Positioning reveals the fascinating case histories and anecdotes behind the campaigns of many stunning successes and failures in the world of advertising.
For more than twenty years, millions of managers in Fortune 500 companies and small businesses nationwide have followed The One Minute Manager's techniques, thus increasing their productivity, job satisfaction, and personal prosperity. These very real results were achieved through learning the management techniques that spell profitability for the organization and its employees.
The One Minute Manager is a concise, easily read story that reveals three very practical secrets: One Minute Goals, One Minute Praisings, and One Minute Reprimands.
The book also presents several studies in medicine and the behavioral sciences that clearly explain why these apparently simple methods work so well with so many people. By the book's end you will know how to apply them to your own situation and enjoy the benefits.
That's why The One Minute Manager has continued to appear on business bestseller lists for more than two decades, and has become an international sensation.
The Exclusive Story behind Intuit's Hard-Won Success
It's a modern-day David and Goliath story for the business world: a company dreamed up at a kitchen table, built on explosive PC growth, and forced to battle a giant in the race to revolutionize an industry. This is the story of Intuit, creator of renowned software products like Quicken, QuickBooks, and TurboTax-the company that beat mighty Microsoft and changed the way 25 million people manage their finances.
Written by Intuit veteran Suzanne Taylor and seasoned business manager Kathy Schroeder-who were granted exclusive interviews with founder Scott Cook and other key figures- Inside Intuit tells this company's original and fascinating tale for the first time. The book vividly recounts each dramatic stage of Intuit's development: from initial conception to "bet the company" investments; from strokes of marketing genius to disastrous product launches; and from battles for survival to successive victories against arch-rival Microsoft-the company no one else could beat.
Evident throughout this account is the power of Intuit's relentless customer focus, which guided the company from tiny start-up to a 6,000-employee, $1.4 billion business. Instructive and inspiring, Inside Intuit chronicles an enduring company's extraordinary success against overwhelming odds.
You've got a hot idea for a new dot-com, and you're itching to join the folks who regularly show up on CNBC and at the Lexus dealerships in Silicon Valley. But you also know your odds of big-time success are about as long as Bill Gates's position in MSFT. What do you do? John Nesheim, an adjunct professor at Cornell's Johnson Graduate School of Management, who has personally structured over $300 million in new-venture deals, lays out the step-by-step skinny in High Tech Startup. Incorporating some two dozen case studies spanning the technology spectrum, he presents info specific to this industry that will help you get from concept to IPO. It begins with a 14-phase schedule itemizing time requirements, necessary assistance, typical participants, major costs, main risks, and desired results for each step. It then details all the critical stages (i.e., forming the company, preparing the business plan, assembling the team, dealing with venture capitalists and other funding sources). Nesheim focuses on practical strategies that should certainly improve your chances, but don't start prepping for that on-air interview with Mark Haines just yet: Only six out of 1 million high-tech ideas, he notes, ever become successful companies that go public
This grandfather of all people-skills books was first published in 1937. It was an overnight hit, eventually selling 15 million copies. How to Win Friends and Influence People is just as useful today as it was when it was first published, because Dale Carnegie had an understanding of human nature that will never be outdated. Financial success, Carnegie believed, is due 15 percent to professional knowledge and 85 percent to "the ability to express ideas, to assume leadership, and to arouse enthusiasm among people." He teaches these skills through underlying principles of dealing with people so that they feel important and appreciated. He also emphasizes fundamental techniques for handling people without making them feel manipulated. Carnegie says you can make someone want to do what you want them to by seeing the situation from the other person's point of view and "arousing in the other person an eager want." You learn how to make people like you, win people over to your way of thinking, and change people without causing offense or arousing resentment. For instance, "let the other person feel that the idea is his or hers," and "talk about your own mistakes before criticizing the other person." Carnegie illustrates his points with anecdotes of historical figures, leaders of the business world, and everyday folks.
If you want to understand the 1990s, you have to understand venture capitalists. These are the people who listen to business pitches by the score, the financial-world equivalent of miners turning over tons of earth in search of precious metal. They're looking for the next Amazon.com, the next Yahoo!, the next eBay. Randall E. Stross, who teaches business history at San José State University, just happened to be there when a firm called Benchmark Capital discovered eBay. eBoys tells the story of how a group of not-quite-middle-aged men came to make an investment that returned a Silicon Valley record of 100,000 percent.
Stross is a gifted storyteller who weaves the personal histories of the Benchmark partners with stories of how the firm came to back such companies as Priceline.com and Webvan. We meet guys who weren't born to privilege, men who took unconventional routes into the venture capital business. Probably the most intriguing is Dave Beirne, a hyperaggressive executive recruiter who went into the business after realizing venture capitalists are the ones who really call the shots at high-tech start-ups. We also see the problems Silicon Valley guys have when they try to dot-com the bricks-and-mortar world. The short tale of an aborted partnership between Benchmark and Toys 'R' Us illustrates why the old economy is so mystified by the new.
Anyone interested in how business works should find something of interest in eBoys. From the organizational structure and corporate culture of Benchmark to the histories and personalities of its partners to its adventures in the world of Internet start-ups, it's a digital snapshot that reveals how successful businesses look, think, and mine gold in today's economy.
Now nearing its 60th printing in English and translated into nineteen languages, Michael E. Porter's Competitive Strategy has transformed the theory, practice, and teaching of business strategy throughout the world. Electrifying in its simplicity -- like all great breakthroughs -- Porter's analysis of industries captures the complexity of industry competition in five underlying forces. Porter introduces one of the most powerful competitive tools yet developed: his three generic strategies -- lowest cost, differentiation, and focus -- which bring structure to the task of strategic positioning. He shows how competitive advantage can be defined in terms of relative cost and relative prices, thus linking it directly to profitability, and presents a whole new perspective on how profit is created and divided. In the almost two decades since publication, Porter's framework for predicting competitor behavior has transformed the way in which companies look at their rivals and has given rise to the new discipline of competitor assessment.
More than a million managers in both large and small companies, investment analysts, consultants, students, and scholars throughout the world have internalized Porter's ideas and applied them to assess industries, understand competitors,, and choose competitive positions. The ideas in the book address the underlying fundamentals of competition in a way that is independent of the specifics of the ways companies go about competing.
Competitive Strategy has filled a void in management thinking. It provides an enduring foundation and grounding point on which all subsequent work can be built. By bringing a disciplined structure to the question of how firms achieve superior profitability, Porter's rich frameworks and deep insights comprise a sophisticated view of competition unsurpassed in the last quarter-century.
As described by Lewis, liar's poker is a game played in idle moments by workers on Wall Street, the objective of which is to reward trickery and deceit. With this as a metaphor, Lewis describes his four years with the Wall Street firm Salomon Brothers, from his bizarre hiring through the training program to his years as a successful bond trader. Lewis illustrates how economic decisions made at the national level changed securities markets and made bonds the most lucrative game on the Street. His description of the firm's personalities and of the events from 1984 through the crash of October 1987 are vivid and memorable. Readers of Tom Wolfe's The Bonfire of the Vanities ( LJ 11/15/87) are likely to enjoy this personal memoir. BOMC and Fortune Book Club selection.
Having the big idea is merely the beginning. Raising and using venture capital is pivotal to the success of many an ambitious new venture, but venture capital is more than money. It's far too expensive to be treated merely as cash, and if used well, far more critical to the successful venture. This can be a daunting process. This text leads you inside the world of European venture capital, and takes you step-by-step through the venture cycle. By holding a mirror up to both sides of the money-raising process, This text shows how entrepreneurs can better understand venture capitalists - and vice versa - leading to more productive relationships and smarter ventures. Katharine Campbell explains how venture capitalists think, what they are looking for and why. Learn how to spot the good -and the bad - investors, and equip yourself with the tools and the knowledge to seal a successful partnership. Smarter Ventures is the bible of the European venture capital market and your complete companion to the venture cycle. Showing how to develop and build a successful new venture pitch, this text deals with everything from the structure of venture capital firms and its influence on their objectives down to how to dress for the initial meeting with the potential investor.
Business books are Sterile and Academic. Not worth the time to read. Bootstrap Business is Vibrant and Actionable. It explains Rich & Ron's process to take a $5,000 investment and bootstrap a successful company.
Build a business from where you are.
Avoid the big mistakes that kill most businesses.
Secure your future financially while maintaining a balanced lifestyle.
Bootstrap Business is a self-contained book that explores Rich & Ron's experiences in launching companies.
28 attempts 10 miserable failures 8 multi-million dollar successes.
Hard work is required. You can do it. Bootstrap Business teaches you how.
Every large company was once a startup struggling to survive, yet only a small percentage of all startups are able to thrive in the long run. Entrepreneurs and investors have gut instincts about what startups need to do to beat the odds, but until now there hasn’t been any hard research on what separates winners and losers.
Joel Kurtzman and a research team from Price-waterhouseCoopers studied 350 companies and interviewed hundreds of venture capitalists, CEOs, boards of directors, and angel investors over four years. This unprecedented research has led to some very surprising findings about nine key factors, such as market size, competitive position, business model, and cash flow. For instance:
Speed usually trumps perfection.
Advanced technology shouldn’t be the highest priority, even in tech companies.
Not all growth is smart growth.
This delightful book leads you through the basic elements of programming in Scheme (a Lisp dialect) via a series of dialogues with well-chosen questions and exercises. Besides teaching Scheme, The Little Schemer teaches the reader how to think about computation. The authors focus on ten essential concepts of thinking about how to compute and demonstrate how to apply these concepts in inventive ways. The Little Schemer is an excellent book both for the beginner and for the seasoned programmer.
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.
The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, and substantial additions to the chapter on recurrences (now called "Divide-and-Conquer"). It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many new exercises and problems have been added for this edition.
The challenges of problems from international programming competitions are an effective way to improve your algorithmic and coding skills and understanding. This volume uses international programming competition-type problems to motivate the study of algorithms, programming, and other topics in computer science. The book includes more than 100 programming challenges, as well as the theory and key concepts necessary for approaching them. Problems are organized by topic, and supplemented by complete tutorial material. Readers gain a concrete understanding of both algorithmic techniques and advanced coding topics.
Presents practice training for all major programming contests -- ACM International Collegiate Programming Contest (ACM ICPC), International Olympiad in Informatics (IOI), and Topcoder Challenge
Serves as a convenient, web-based means of adding a programming component to any algorithms or software engineering course
Contains complete working code for fundamental data structures and graph, string, numerical and geometric algorithms
Provides a brief-yet-thorough treatment of key elements in number theory, geometry, dynamic programming, and graph algorithms
Supports all popular programming languages (C, C++, Pascal, Java)
Have you thought about building games for your cell phone or other wireless devices? Whether you are a first-time wireless Java developer, or an experienced professional— Beginning J2ME, Third Edition brings exciting wireless and mobile Java application development right to your door!
This book will empower you with numerous topics: sound HTTPS support, user interface API enhancements, sound/music API, a Game API, 3D graphics, and Bluetooth. Further, this book is easy to read and includes many practical, hands-on, and ready-to-use code examples. You will not be disappointed.
Python for Software Design is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters. The focus is on the programming process, with special emphasis on debugging. The book includes a wide range of exercises, from short examples to substantial projects, so that students have ample opportunity to practice each new concept. Exercise solutions and code examples are available from thinkpython.com, along with Swampy, a suite of Python programs that is used in some of the exercises.
Dive Into Python is a Python book for experienced programmers. Whether you're an experienced programmer looking to get into Python or grizzled Python veteran who remembers the days when you had to import the string module, Dive Into Python is your 'desert island' Python book. If you've never programmed before, Python is an excellent language to learn modern programming techniques. But this book should not be your starting point. Get "How to Think Like a Computer Scientist: Learning with Python" by Allen Downey, Jeffrey Elkner, Chris Meyers and learn the basics. Then dive into this book. Dive Into PYTHON was written by Mark Pilgram and is distributed under the GNU Free Documentation License. * Money raised from the sale of this book supports the development of free software and documentation.
Framework Design Guidelines, Second Edition, teaches developers the best practices for designing reusable libraries for the Microsoft .NET Framework. Expanded and updated for .NET 3.5, this new edition focuses on the design issues that directly affect the programmability of a class library, specifically its publicly accessible APIs.
This book can improve the work of any .NET developer producing code that other developers will use. It includes copious annotations to the guidelines by thirty-five prominent architects and practitioners of the .NET Framework, providing a lively discussion of the reasons for the guidelines as well as examples of when to break those guidelines.
Microsoft architects Krzysztof Cwalina and Brad Abrams teach framework design from the top down. From their significant combined experience and deep insight, you will learn
The general philosophy and fundamental principles of framework design
Naming guidelines for the various parts of a framework
Guidelines for the design and extending of types and members of types
Issues affecting–and guidelines for ensuring–extensibility
How (and how not) to design exceptions
Guidelines for–and examples of–common framework design patterns
Guidelines in this book are presented in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should always be used, those that should generally be used, those that should rarely be used, and those that should never be used. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue.
Interface Oriented Design focuses on an important, but often neglected, aspect of object-oriented design. You'll learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services. You'll see techniques for breaking down solutions into interfaces and then determining appropriate implementation of those interfaces to create a well structured, robust, working program.
Interface Oriented Design explores how to develop robust, reliable software as a collection of interfaces that interact with each other.
You'll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations.
Learn about the most useful patterns, including Proxy, Facade, Adapter, and Factory, as well categories of interfaces including service providers, information holders, and external world interfaces.
If you want to be a more effective programmer and create better software, you need Interface Oriented Design.
Building on what made the first edition a bestseller, CSS Mastery: Advanced Web Standards Solutions, Second Edition unites the disparate information on CSS-based design spread throughout the internet into one definitive, modern guide. Revised to cover CSS3, the book can be read from front to back, with each chapter building on the previous one. However it can equally be used as a reference book, dipping into each chapter or technique to help solve specific problems. In short, this is the one book on CSS that you need to have.
This second edition contains:
New examples and updated browser support information
New case studies from Simon Collison and Cameron Moll
CSS3 examples, showing new CSS3 features, and CSS3 equivalents to tried and tested CSS2 techniques
The best practice concepts in CSS design.
The most important (and tricky) parts of CSS
Identify and fix the most common CSS problems
How to deal with the most common bugs
Completely up to date browser support information
Covers CSS3 as well as CSS2 showing you the future of CSS
Cascading Style Sheets can turn humdrum websites into highly-functional, professional-looking destinations, but many designers merely treat CSS as window-dressing to spruce up their site's appearance. You can tap into the real power of this tool with CSS: The Missing Manual. This second edition combines crystal-clear explanations, real-world examples, and dozens of step-by-step tutorials to show you how to design sites with CSS that work consistently across browsers. Witty and entertaining, this second edition gives you up-to-the-minute pro techniques. You'll learn how to:
Create HTML that's simpler, uses less code, is search-engine friendly, and works well with CSS
Style text by changing fonts, colors, font sizes, and adding borders
Turn simple HTML links into complex and attractive navigation bars -- complete with rollover effects
Create effective photo galleries and special effects, including drop shadows
Get up to speed on CSS 3 properties that work in the latest browser versions
Build complex layouts using CSS, including multi-column designs
Style web pages for printing
For readers who want to design Web pages that load quickly, are easy to update, accessible to all, work on all browsers and can be quickly adapted to different media, this comprehensive guide represents the best way to go about it. By focusing on the ways the two languages--XHTML and CSS--complement each other, Web design pro Patrick Griffiths provides the fastest, most efficient way of accomplishing specific Web design tasks. With Web standards best practices at its heart, it outlines how to do things the right way from the outset, resulting in highly optimized web pages, in a quicker, easier, less painful way than users could hope for! Split into 10 easy-to-follow chapters such as Text, Images, Layout, Lists, and Forms, and coupled with handy quick-reference XHTML tag and CSS property appendixes, HTML Dog is the perfect guide and companion for anyone wanting to master these languages. Readers can also see the lessons in action with more than 70 online examples constructed especially for the book.
Within every picture is a hidden language that conveys a message, whether it is intended or not. This language is based on the ways people perceive and process visual information. By understanding visual language as the interface between a graphic and a viewer, designers and illustrators can learn to inform with accuracy and power.
In a time of unprecedented competition for audience attention and with an increasing demand for complex graphics, Visual Language for Designers explains how to achieve quick and effective communications. It presents ways to design for the strengths of our innate mental capacities and to compensate for our cognitive limitations.
A remarkable range of examples for the idea of visual thinking, with beautifully printed pages. A real treat for all who reason and learn by means of images.
Forms are everywhere on the web - for registration and communicating, for commerce and government. Good forms make for happier customers, better data, and reduced support costs. Bad forms fill your organization's databases with inaccuracies and duplicates and can cause loss of potential consumers.
Designing good forms is trickier than people think. Jarrett and Gaffney come to the rescue with Designing Forms that Work, clearly explaining exactly how to design great forms for the web. Liberally illustrated with full-color examples, it guides readers on how to define requirements, how to write questions that users will understand and want to answer, and how to deal with instructions, progress indicators and errors.
Provides proven and practical advice that will help you avoid pitfalls, and produce forms that are aesthetically pleasing, efficient and cost-effective.
Most discussion about Web design seems to focus on the creative process, yet turning concept into reality requires a strong set of deliverables--the documentation (concept model, site maps, usability reports, and more) that serves as the primary communication tool between designers and customers. The only guide devoted to just that topic is now bigger and better.
Combining quick tips for improving deliverables with in-depth discussions of presentation and risk mitigation techniques, author Dan Brown shows you how to make the documentation you're required to provide into the most efficient communications tool possible. From usability reports to project plans, content maps, flow charts, wireframes, site maps, and more, each chapter includes a contents checklist, presentation strategy, maintenance strategy, a description of the development process and the deliverable's impact on the project.
New in paperback, this workbook is a methodical yet comprehensive approach to conveying the fundamentals of avant-garde, innovative, information design by examining history, theory, criticism, technology and media, process, method, and practice.
Opening with a very brief history followed by an instructive breakdown of the discipline, readers get an intimate understanding of the complexities of crafting information design to effectively improve communication both functionally and aesthetically. The back half of the book contains a wide range of case studies from design firms around the world so designers can see the techniques previously outlined in the first half of the book. The author also critiques and explains why the design is successful in terms of formal quality (Aesthetics) and function (How does it improve communication?).
jQuery in Action, Second Edition is a fast-paced introduction and guide. It shows you how to traverse HTML documents, handle events, perform animations, and add Ajax to your web pages. The book's unique "lab pages" anchor the explanation of each new concept in a practical example. You'll learn how jQuery interacts with other tools and frameworks and how to build jQuery plugins.
This revised and expanded second edition includes even more lab pages than before, along with numerous examples that show the latest best practices developed by the jQuery community. It provides full coverage of jQuery 1.4, along with a deeper look at the ever-expanding world of jQuery plug-ins.
Want to learn how to create great user experiences on today's Web? In this book, UI experts Bill Scott and Theresa Neil present more than 75 design patterns for building web interfaces that provide rich interaction. Distilled from the authors' years of experience at Sabre, Yahoo!, and Netflix, these best practices are grouped into six key principles to help you take advantage of the web technologies available today. With an entire section devoted to each design principle, Designing Web Interfaces helps you:
Make It Direct-Edit content in context with design patterns for In Page Editing, Drag & Drop, and Direct Selection
Keep It Lightweight-Reduce the effort required to interact with a site by using In Context Tools to leave a "light footprint"
Stay on the Page-Keep visitors on a page with overlays, inlays, dynamic content, and in-page flow patterns
Provide an Invitation-Help visitors discover site features with invitations that cue them to the next level of interaction
Use Transitions-Learn when, why, and how to use animations, cinematic effects, and other transitions
React Immediately-Provide a rich experience by using lively responses such as Live Search, Live Suggest, Live Previews, and more
The Deitels' groundbreaking How to Program series offers unparalleled breadth and depth of programming concepts and intermediate-level topics for further study. The books in this series feature hundreds of complete, working programs with thousands of lines of code. Includes strong treatment of structured algorithm and program development in ANSI/ISO C with 150 working C programs. New chapters added for C99 and game programming with the Allegro C Library. Includes rich, 300-page treatment of object-oriented programming in C++. Presents each new concept in the context of a complete, working program, immediately followed by one or more windows showing the program's input/output dialog. Enhances the Live-Code Approach with syntax coloring. Provides Helpful Programming Tips, all marked by icons: Good Programming Practices, Common Programming Errors, Error-Prevention Tips, Performance Tips, Portability Tips, Software Engineering Observations, Look and Feel Observations. A valuable reference for programmers and anyone interested in learning the C programming language.
This legendary underground classic, reproduced without modification, is two works in one: the complete source code to an early version (Edition 6) of the UNIX operating system and a brilliant commentary on that code by John Lions. Lions' marriage of source code with commentary was originally used as an operating systems textbook, and remains just as relevant today.
You can find bigger books about C, but you won't find one as authoritative or helpful as this reference manual. Harbison and Steele have now gone through four editions and are beginning to cover language differences which can surprise the experienced C coder moving to C++. As always, the authors do an excellent job of explaining what's standard and what it replaces. No hairy syntax has been omitted, so this volume can make wending one's way through obfuscated code, if not pleasant, at least less miserable. Whether you learned C from Kernighan or some massive tome, you'll want this volume as your day-to-day reference. And you won't mind buying a new edition once in a while, because you'll have worn the old one out by then
This book presents an introduction to the C programming language, featuring a structured approach and aimed at professionals and students with some experience of high-level languages. Features *includes embedded summary material in bulleted form *highlights common traps and pitfalls in C programming.
DOM scriptingupdating content and styles, plus events, and effect and event libraries
Ajaxhow Ajax works, overcoming problems, and using libraries to speed up development of Ajax applications
All concepts are backed up by real-world examples and case studies, and John provides numerous reusable functions and classes to save you time in your development. There are also up-to-date reference appendixes for the DOM, events, browser support (including IE7), and frameworksso you can look up specific details quickly and easily.
Set up and use your training environment (Firebug)
Master data types, operators, and flow control statements
Understand functions: usage patterns, variable scope, and built-in functions
Create and use objects
Understand and use prototypes
Reuse code with common patterns for inheritance
Understand and work with the BOM (Browser Object Model)
The DOM (Document Object Model) - accessing, modifying, adding, and deleting nodes
Build responsive web pages with AJAX
Listen and respond to browser events
Apply design patterns to solve common problems
Adopt coding patterns that unleash the unique power of the language
Make your programs cleaner, faster, and compatible with other programs and libraries
The compiler is the linchpin of the programmer's toolbox. Working programmers use compilers every day and count heavily on their correctness and reliability. A compiler must accept the standard definition of the programming language so that source code will be portable across platforms. A compiler must generate efficient object code. Perhaps more important, a compiler must generate correct object code; an application is only as reliable as the compiler that compiled it.
A compiler is itself a large and complex application that is worthy of study in its own right. This book tours most of the implementation of lcc, a compiler for the ANSI C programming language. It is to compiling what Software Tools by B.W. Kernighan and P.J. Plauger (Addison-Wesley, 1976) is to text processing like text editors and macro processors. Software design and implementation are best learned through experience with real tools. This book explains in detail and shows most of the code for a real compiler. The accompanying diskette holds the source code for the complete compiler.
lcc is a production compiler. It's been used to compile production programs since 1988 and is now used by hundreds of C programmers daily. Detailing most of a production compiler in a book leaves little room for supporting material, so we present only the theory needed for the implementation at hand and leave the broad survey of compiling techniques to existing texts. The book omits a few language features--those with mundane or repetitive implementations and those deliberately treated only in the exercises--but the full compiler is available on the diskette, and the book makes it understandable.
The obvious use for this book is to learn more about compiler construction. But only few programmers need to know how to design and implement compilers. Most work on applications and other aspects of systems programming. There are four reasons why this majority of C programmers may benefit from this book.
First, programmers who understand how a C compiler works are often better programmers in general and better C programmers in particular. The compiler writer must understand even the darkest corners of the C language; touring the implementation of those corners reveals much about the language itself and its efficient realization on modern computers.
Second, most texts on programming must necessarily use small examples, which often demonstrate techniques simply and elegantly. Most programmers, however, work on large programs that have evolved--or degenerated--over time. There are few well documented examples of this kind of "programming in the large" that can serve as reference examples. lcc isn't perfect, but this book documents both its good and bad points in detail and thus provides one such reference point.
Third, a compiler is one of the best demonstrations in computer science of the interaction between theory and practice. lcc displays both the places where this interaction is smooth and the results are elegant, as well as where practical demands strain the theory, which shows in the resulting code. Exploring these interactions in a real program helps programmers understand when, where, and how to apply different techniques. lcc also illustrates numerous C programming techniques.
Fourth, this book is an example of a "literate program." Like TEX: The Program by D.E. Knuth (Addison-Wesley, 1986), this book is lcc's source code and the prose that describes it. The code is presented in the order that best suits understanding, not in the order dictated by the C programming language. The source code that appears on the diskette is extracted automatically from the book's text files.
This book is well suited for self-study by both academics and professionals. The book and its diskette offer complete documented source code for lcc, so they may interest practitioners who wish to experiment with compilation or those working in application areas that use or implement language-based tools and techniques, such as user interfaces.
The book shows a large software system, warts and all. It could thus be the subject of a postmortem in a software engineering course, for example.
For compiler courses, this book complements traditional compiler texts. It shows one way of implementing a C compiler, while traditional texts survey algorithms for solving the broad range of problems encountered in compiling. Limited space prevents such texts from including more than a toy compiler. Code generation is often treated at a particularly high level to avoid tying the book to a specific computer.
As a result many instructors prepare a substantial programming project to give their students some practical experience. These instructors usually must write these compilers from scratch; students duplicate large portions and have to use the rest with only limited documentation. The situation is trying for both students and instructors, and unsatisfying to boot, because the compilers are still toys. By documenting most of a real compiler and providing the source code, this book offers an alternative.
This book presents full code generators for the MIPS R3000, SPARC, and Intel 386 and successor architectures. It exploits recent research that produces code generators from compact specifications. These methods allow us to present complete code generators for several machines, which no other book does. Presenting several code generators avoids tying the book to a single machine, and helps students appreciate engineering retargetable software.
Assignments can add language features, optimizations, and targets. When used with a traditional survey text, assignments could also replace existing modules with those using alternate algorithms. Such assignments come closer to the actual practice of compiler engineering than assignments that implement most of a toy compiler, where too much time goes to low-level infrastructure and accommodating repetitive language features. Many of the exercises pose just these kinds of engineering problems.
lcc has also been adapted for purposes other than conventional compilation. For example, it's been used for building a C browser and for generating remote-procedure-call stubs from declarations. It could also be used to experiment with language extensions, proposed computer architectures and code-generator technologies.
We assume readers are fluent in C and assembly language for some computer, know what a compiler is and have a general understanding of what one does, and have a working understanding of data structures and algorithms at the level covered in typical undergraduate courses; the material covered by Algorithms in C by R. Sedgewick (Addison-Wesley, 1990), for example, is more than sufficient for understanding lcc.
Distils and illustrates principles and best practices for designing modern compilers
International edition, printed in India. 856 pages. This comprehensive, up-to-date work covers advanced issues in the design and implementation of compilers for modern processors, written for professionals and graduate students.
This new, expanded textbook describes all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes good coverage of current techniques in code generation and register allocation, as well as functional and object-oriented languages, that are missing from most books. In addition, more advanced chapters are now included so that it can be used as the basis for a two-semester or graduate course. The most accepted and successful techniques are described in a concise way, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual C header files. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the advanced chapters, covers the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.
As a textbook suitable for the classroom or self-study, Michael Scott's Programming Language Pragmatics provides a worthy tour of the theory and practice of how programming languages are run on today's computers. Clearly organized and filled with a wide-ranging perspective on over 40 different languages, this book will be appreciated for its depth and breadth of coverage on an essential topic in computer science.
With references to dozens of programming languages, from Ada to Turing and everything in between (including C, C++, Java, and Perl), this book is a truly in-depth guide to how code is compiled (or interpreted) and executed on computer hardware. Early chapters tend to be slightly more theoretical (with coverage of regular expressions and context-free grammars) and will be most valuable to the computer science student, but much of this book is accessible to anyone seeking to widen their knowledge (especially since recent standards surrounding XML make use of some of the same vocabulary presented here).
The book has a comprehensive discussion of compilation and linking, as well as how data types are implemented in memory. Sections on functional and logical programming (illustrated with Scheme and Prolog, which are often used in AI research) can expand your understanding of how programming languages work. Final sections on the advantages--and complexities--of concurrent processing, plus a nice treatment of code optimization techniques, round out the text here. Each chapter provides numerous exercises, so you can try out the ideas on your own.
Students will benefit from the practical examples here, drawn from a wide range of languages. If you are a self-taught developer, the very approachable tutorial can give you perspective on the formal definitions of many computer languages, which can help you master new ones more effectively
Aims to exemplify good software engineering principles at the same time as explaining the specific techniques needed to build compilers and interpreters. Examples included. DLC: Java
The book shows clearly how a simple compiler can be decomposed into a syntactic analyzer, a contextual analyzer, and a code generator, communicating via an abstract syntax tree
The book is accompanied by a complete working compiler and interpreter, provided via the Internet, and free of charge for educational use
The book contains numerous exercises, together with sample answers to selected exercises. It also contains a number of suggested projects, involving extensions to the accompanying compiler
All examples in the book are expressed in Java, and the compiler and interpreter are structured using object-oriented design patterns
This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers, including very recent techniques of interpretation and compilation. The book is in two parts. The first starts from a simple evaluation function and enriches it with multiple name spaces, continuations and side-effects with commented variants, while at the same time the language used to define these features is reduced to a simple lambda-calculus. Denotational semantics is then naturally introduced. The second part focuses more on implementation techniques and discusses precompilation for fast interpretation: threaded code or bytecode; compilation towards C. Some extensions are also described such as dynamic evaluation, reflection, macros and objects. This will become the new standard reference for people wanting to know more about the Lisp family of languages: how they work, how they are implemented, what their variants are and why such variants exist. The full code is supplied (and also available over the Net). A large bibliography is given as well as a considerable number of exercises. Thus it may also be used by students to accompany second courses on Lisp or Scheme.
This classic book on formal languages, automata theory, and computational complexity has been updated to present theoretical concepts in a concise and straightforward manner with the increase of hands-on, practical applications. This new edition comes with Gradiance, an online assessment tool developed for computer science.
Gradiance is the most advanced online assessment tool developed for the computer science discipline. With its innovative underlying technology, Gradiance turns basic homework assignments and programming labs into an interactive learning experience for students. By using a series of “root questions” and hints, it not only tests a student’s capability, but actually simulates a one-on-one teacher-student tutorial that allows for the student to more easily learn the material. Through the programming labs, instructors are capable of testing, tracking, and honing their students’ skills, both in terms of syntax and semantics, with an unprecedented level of assessment never before offered.
Parsing, also referred to as syntax analysis, has been and continues to be an essential part of computer science and linguistics. Today, parsing is also applied in other disciplines; some examples are document preparation and conversion, chemical formulae typesetting, and chromosome recognition.
In addition to the traditional parsing techniques, this second edition presents new developments and discoveries: generalized deterministic parsing, linear-time substring parsing, parallel parsing, parsing as intersection, non-canonical methods, non-Chomsky systems, and many more.
Parsing techniques provide a solid basis for compiler construction and linguistics, and contribute to all existing software: they enable Web browsers to analyze HTML pages and PostScript printers to analyze PostScript, and some of the more advanced techniques are used in code generation in compilers and in data compression. Also their importance as general pattern recognizers is slowly being acknowledged.
To provide readers with low-threshold access to the full field of parsing techniques, this book uses a two-tiered structure. The basic ideas behind the existing parsing techniques are explained in an intuitive and narrative style, starting from the first principles of data structures and algorithms; this provides breadth and accessibility. The hundreds of realizations and improvements of these basic ideas are explained in an extensive annotated bibliography, in a much terser, yet still informal style; this provides depth.
The reader should have an understanding of algorithmic thinking, especially recursion; however, knowledge of any particular programming language is not required.
The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem." -Steve McConnell
When 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 * testing, debugging, and timing * set representations * 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, the book is sure to make your own list of favorites.
The essential book for anyone bringing a product to market, writing a business plan, marketing plan or sales plan. Step-by-step strategy of how to successfully organize sales, marketing and business development for a new product or company. The book offers insight into what makes some startups successful and leaves others selling off their furniture. Packed with concrete examples, the book will leave you with new skills to organize sales, marketing and your business for success.
Ginny Redish, the technical communication guru, gives the most practical and useful advice about writing for the web
Every few years a book—through a combination of the author’s unique voice, storytelling ability, wit, and insight—simply breaks the mold. Bill Bryson’s A Walk in the Woods is one example. Richard Feynman’s “Surely You’re Joking, Mr. Feynman!” is another.
Now comes Youngme Moon’s Different, a book for “people who don’t read business books.” Actually, it’s more like a personal conversation with a friend who has thought deeply about how the world works … and who gets you to see that world in a completely new light.
If there is one strain of conventional wisdom pervading every company in every industry, it’s the absolute importance of “competing like crazy.” Youngme Moon’s message is simply “Get off this treadmill that’s taking you nowhere. Going tit for tat and adding features, augmentations, and gimmicks to beat the competition has the perverse result of making you like everyone else.” Different provides a highly original perspective on what it means to offer something that is meaningfully different—different in a manner that is both fundamental and comprehensive.
Youngme Moon identifies the outliers, the mavericks, the iconoclasts—the players who have thoughtfully rejected orthodoxy in favor of an approach that is more adventurous. Some are even “hostile,” almost daring you to buy what they are selling. The MINI Cooper was launched with fearless abandon: “Worried that this car is too small? Look here. It’s even smaller than you think.”
These are players that strike a genuine chord with even the most jaded consumers. In fact, almost every success story of the past two decades has been an exception to the rule. Simply go to your computer and compare AOL and Yahoo! with Google. The former pile on feature upon feature to their home pages, while Google is like an austere boutique, dominating a category filled with “extras.”
Different shows how to succeed in a world where conformity reigns…but exceptions rule.
Nearly everyone harbors a secret dream of starting or owning a business. In fact, 1,000,000 businesses start in the United States every year. Many of them fail, but enough succeed so that small businesses are now adding millions of jobs to the economy at the same time that the Fortune 500 companies are actually losing jobs.
Paul Hawken -- entrepreneur and best-selling author -- wrote Growing a Business for those who set out to make their dream a reality. He knows what he's talking about; he is his own best example of success. In the early 1970s, while he was still in his twenties, he founded Erewhon, the largest distributor of natural foods. More recently, he founded and still runs Smith & Hawken, the premier mail-order garden tool company. And he wrote a critically acclaimed book called The Next Economy about the future of the economy.
Using examples like Patagonia, Ben & Jerry's Homemade Ice Cream, and University National Bank of Palo Alto, California, Hawken shows that the successful business is an expression of an individual person. The most successful business, your idea for a business, will grow from something that is deep within you, something that can't be stolen by anyone because it is so uniquely yours that anyone else who tried to execute your idea would fail. He dispels the myth of the risk-taking entrepreneur. The purpose of business, he points out, is not to take risks but rather to get something done.
Beginning Rails 3 is the practical starting point for anyone wanting to learn how to build dynamic web applications using the latest release of the Rails framework for Ruby. You'll learn how all of the components of Rails fit together and how you can leverage them to create sophisticated web applications with less code and more joy.
This book is particularly well suited to those with little or no experience with web application development, or who have some experience but are new to Rails. Beginning Rails 3 assumes basic familiarity with web terms and technologies, but doesn't require you to be an expert. Rather than delving into the arcane details of Rails, the focus is on the aspects of the framework that will become your pick, shovel, and axe. Part history lesson, part introduction to object-oriented programming, and part dissertation on open source software, this title doesn't just explain how to do something in Rails, it explains why.
Learn to create Rails web applications from scratch
Includes a gentle introduction to the Ruby programming language
Completely updated to include the new features of Rails 3
Install Rails on a Mac, Windows, or Linux system
Understand the Model-View-Controller architecture
Learn the value of databases and how to set up MySQL in Rails
Get instant feedback on your work by testing in the Rails Console
Add Ajax and visual effects to create rich user interfaces
Use and create your own Rails plug-ins
The only real tool for developing cross-platform Rich Internet Applications (RIAs) for that last 11 years has been Flash; until now! Silverlight 3 allows you to develop cross-platform Rich Internet Applications in a fraction of the time because of the extensive and very powerful .NET 3.5 libraries, the powerful, design friendly Blend 3 Integrated Development Environment, and an enhanced workflow that allows designers and developers to work on the same set of files at the same time.
Develop stunning RIAs in a short time.
Learn some basic Object Oriented Programming Principles.
Get familiar with the Blend 3 development environment.
Learn the Blend 3 and Visual Studio 2008 Integrated Development Environments (IDE).
Learn how to create stunning animations using Silverlight 3 Storyboards.
Learn how to incorporate video and sound into your RIAs with the Silverlight MediaElement.
Learn about and how to develop quickly using Silverlight 3's reusable resources such as UserControls, ControlTemplates and DataTemplates.
Learn about the new Visual State Manager and the State panel in Blend 3 to quickly and easily add MouseEnter and MouseLeave states to your UserControls.
Put everything you have learned together to create a sample Silverlight 3 website.
150 Programming Interview Questions and Solutions: From binary trees to binary search, this list of 150 questions includes the most common and most useful questions in data structures, algorithms, and knowledge based questions.
Ten Mistakes Candidates Make -- And How to Avoid Them: Don't lose your dream job by making these common mistakes. Learn what many candidates do wrong, and how to avoid these issues.
Steps to Prepare for Behavioral and Technical Questions: Stop meandering through an endless set of questions, while missing some of the most important preparation techniques. Follow these steps to more thoroughly prepare in less time.
Interview War Stories: A View from the Interviewer's Side: Humorous but instructive stories from our interviewers show you how some candidates really flopped on the most important question - and how you can avoid doing the same.
Unit testing, done right, can mean the diff erence between a failed project and a successful one, between a maintainable code base and a code base that no one dares touch, and between getting home at 2 AM or getting home in time for dinner, even before a release deadline.
The Art of Unit Testing builds on top of what's already been written about this important topic. It guides you step by step from simple tests to tests that are maintainable, readable, and trustworthy. It covers advanced subjects like mocks, stubs, and frameworks such as Typemock Isolator and Rhino Mocks. And you'll learn about advanced test patterns and organization, working with legacy code and even untestable code. The book discusses tools you need when testing databases and other technologies. It's written for .NET developers but others will also benefit from this book.
The basics of unit testing
A first unit test
Using stubs to break dependencies
Interaction testing using mock objects
Isolation (mock object) frameworks
Test hierarchies and organization
The pillars of good tests
Integrating unit testing into the organization
Working with legacy code
Everyone in the Ruby world seems to be talking about metaprogramming--how you can use it to remove duplication in your code and write elegant, beautiful programs. Now you can get in on the action as well.
This book describes metaprogramming as an essential component of Ruby. Once you understand the principles of Ruby, including the object model, scopes, and eigenclasses, you're on your way to applying metaprogramming both in your daily work and in your fun, after-hours projects.
Learning metaprogramming doesn't have to be difficult or boring. By taking you on a Monday-through-Friday workweek adventure with a pair of programmers, Paolo Perrotta helps make mastering the art of metaprogramming both straightforward and entertaining.
Pragmatic examples of metaprogramming in action, many of which come straight from popular libraries or frameworks, such as Rails. Programming challenges that let you experiment and play with some of the most fun, "out-there" metaprogramming concepts. Metaprogramming spells--34 practical recipes and idioms that you can study and apply right now, to write code that is sure to impress.
You want to write professional-grade applications: Rails is a full-stack, open-source web framework, with integrated support for unit, functional, and integration testing. It enforces good design principles, consistency of code across your team (and across your organization), and proper release management.
But Rails is more than a set of best practices. Rails makes it both fun and easy to turn out very cool web applications. Need Ajax support, so your web applications are highly interactive? Rails has it built in. Want an application that sends and receives e-mail? Built in. Supports internationalization and localization? Built in. Do you need applications with a REST-based interface (so they can interact with other RESTful applications with almost no effort on your part)? All built-in.
As with the previous editions of the book, we start with an extended tutorial that builds parts of an online store. And, of course, the application has been rewritten to show the best of Rails V2.
Each chapter in this book helps you identify, explain, and correct a unique and dangerous antipattern. The four parts of the book group the antipatterns in terms of logical database design, physical database design, queries, and application development.
The chances are good that your application's database layer already contains problems such as Index Shotgun, Keyless Entry, Fear of the Unknown, and Spaghetti Query. This book will help you and your team find them. Even better, it will also show you how to fix them, and how to avoid these and other problems in the future.
SQL Antipatterns gives you a rare glimpse into an SQL expert's playbook. Now you can stamp out these common database errors once and for all.
Whatever platform or programming language you use, whether you're a junior programmer or a Ph.D., SQL Antipatterns will show you how to design and build databases, how to write better database queries, and how to integrate SQL programming with your application like an expert. You'll also learn the best and most current technology for full-text search, how to design code that is resistant to SQL injection attacks, and other techniques for success.
Founders at Work: Stories of Startups’ Early Days is a collection of interviews with founders of famous technology companies about what happened in the very earliest days. These people are celebrities now. What was it like when they were just a couple friends with an idea? Founders like Steve Wozniak (Apple), Caterina Fake (Flickr), Mitch Kapor (Lotus), Max Levchin (PayPal), and Sabeer Bhatia (Hotmail) tell you in their own words about their surprising and often very funny discoveries as they learned how to build a company.
Where did they get the ideas that made them rich? How did they convince investors to back them? What went wrong, and how did they recover?
Nearly all technical people have thought of one day starting or working for a startup. For them, this book is the closest you can come to being a fly on the wall at a successful startup, to learn how it's done.
But ultimately these interviews are required reading for anyone who wants to understand business, because startups are business reduced to its essence. The reason their founders become rich is that startups do what businessesdo—create value—more intensively than almost any other part of the economy. How? What are the secrets that make successful startups so insanely productive? Read this book, and let the founders themselves tell you.
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.
Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls "an intellectual Wild West."
The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.
There’s a real connection between craftsmanship and Web design. That’s the theme running through Handcrafted CSS: More Bulletproof Web Design, by bestselling author Dan Cederholm, with a chapter contributed by renowned Web designer and developer Ethan Marcotte. This book explores CSS3 that works in today’s browsers, and you’ll be convinced that now’s the time to start experimenting with it.
Whether you’re a Web designer, project manager, or a graphic designer wanting to learn more about the fluidity that’s required when designing for the Web, you’ll discover the tools to create the most flexible, reliable, and bulletproof Web designs. And you’ll finally be able to persuade your clients to adopt innovative and effective techniques that make everyone’s life easier while improving the end user’s experience. This book’s seven chapters deconstruct various aspects of a case-study Web site for the Tugboat Coffee Company, focusing on aspects that make it bulletproof and demonstrate progressive enrichment techniques over more traditional labor-intensive methods.
building for unanticipated future use
progressively enriching designs using CSS3 properties
using RGBA color for transparency with an alpha channel
modular float management
crafting flexible frameworks
fluid layouts using grid-based design principles
craftsmanship details on typography, jQuery, and shifting backgrounds
Start Small, Stay Small is a step-by-step guide to launching a self-funded startup. If you're a desktop, mobile or web developer, this book is your blueprint to getting your startup off the ground with no outside investment.
This book intentionally avoids topics restricted to venture-backed startups such as: honing your investment pitch, securing funding, and figuring out how to use the piles of cash investors keep placing in your lap.
This book assumes:
You don't have $6M of investor funds sitting in your bank account
You're not going to relocate to the handful of startup hubs in the world
You're not going to work 70 hour weeks for low pay with the hope of someday making millions from stock options
There's nothing wrong with pursuing venture funding and attempting to grow fast like Amazon, Google, Twitter, and Facebook. It just so happened that most people are not in a place to do this.
A candid and indispensable primer on all aspects of advertising from the man Time has called "the most sought after wizard in the business". 223 photos.
Why a book about questions? "Because when students' instruction is organized around meaningful, clear questions," writes Jim Burke in What's the Big Idea? "they understand better, remember longer, and engage much more deeply and for greater periods of time."
Listen to a podcast where Jim explains how How big questions can engage and motivate students who have grown up digitally.
Listen to a podcast where Jim explains how big questions can help you integrate standards, differentiation, and engagement.
Watch a video message from Jim about the book.
Jim shows how making essential questions the center of your teaching can ease the tension between good teaching and teaching to the test while giving students dependable, transferable tools for reading, writing, thinking, and participating in the real world. Going in depth on his own units for frequently taught books, Jim shows how to plan lessons, units, and even entire courses around big ideas to help students:
grapple with content and deepen comprehension through reading, writing, and discussion
make learning stick by connecting it to texts, to students' experiences, and to the world
clarify and extend their thinking by learning which questions to ask and when
improve school and test performance by honing academic language and skills.
"Although no one thing can ever be the solution to all problems," Jim writes, "this book demonstrates the ways in which questions can address your concerns and develop in our students the mental acuity and fluency necessary to succeed in school and at work, as well as to achieve a sense of purpose in their personal lives." The only question now is, Are you ready to change your students' learning and lives?
Marketing wiz Jay Abraham provides some powerful strategies for boosting your career or business in Getting Everything You Can Out of All You've Got. Abraham believes that anyone can advance in life by tapping into hidden assets and developing the right mindset. He writes, "You are surrounded by simple, obvious solutions that can dramatically increase your income, power, influence and success. The problem is, you just don't see them." Over the course of 21 chapters, he shows how to get ahead by treating bosses and clients as valued friends; find better and more exciting ways of doing things; develop "unique selling propositions"; persuade people to follow your lead; master the art of selling on the telephone; craft a formal referral system; sell on the Internet; and forge strong, established business relationships. Abraham's central theme is that everyone is in sales. In almost any profession, people must be skilled at selling themselves and their ideas, not just their company's product or service. Engagingly written, the book features more than 200 examples of people and companies who have successfully used these techniques, from Bill Gates and Dennis Rodman to Sharper Image and Federal Express.
That's all you've really got to make the sale.
With consumers bombarded with thousands of marketing messages a day, they have to make purchasing decisions quickly, which means you have to make the sale just as quickly. There's simply no time for you to make any offer besides the one offer that will work and work quickly—The Irresistible Offer.
But what is The Irresistible Offer? Simply put, it's the best (and maybe only) true alternative to the traditional form of selling with its sentimental manipulation, marketing trickery, and decreasing effectiveness. The Irresistible Offer is so good and so easy to understand that buying from you becomes a no-brainer for your customers. But it's not a one-time special or a "unique selling proposition." The Irresistible Offer is the offer that defines your business and becomes your raison d'?tre.
Want an example? Domino's Pizza grew from a single store to a $4 billion chain in large part because they gave their customers an offer they couldn't refuse—"thirty minutes or less" or the pizza was free. The success of that offer is obvious in retrospect. But how do you design The Irresistible Offer for your own business in your own industry? This book shows you how.
In The Irresistible Offer, author and New Marketing guru Mark Joyner defines and explains this revolutionary selling philosophy, uses real case studies to show it in effect, and helps you quickly and easily apply it to your own business. He examines the elements that make up The Irresistible Offer and presents a formula for creating one of your own. Plus, Joyner provides practical tools that allow you to estimate the effectiveness of your offer in advance so you can plan accordingly.
For too long, selling has been about manipulating a message and manipulating a consumer. The Irresistible Offer presents a new, effective, and ethical way to sell based on what you're selling, not how you're selling it. Rather than manipulate your customer (who may resent it, after all), Joyner shows you how to manipulate your offer instead—so that customers find it, and your company, truly irresistible.
If you had the opportunity to work where, when, and with whom you wanted—all while getting paid very well—would you take it? Self-made multimillionaire and bestselling author Michael Masterson did, and with Ready, Fire, Aim he'll show you how to do the same.
Whether you're thinking about starting a new business or growing an existing one, Ready, Fire, Aim has what you need to succeed in your entrepreneurial endeavors. In it, Masterson shares the knowledge he has gained from creating and expanding numerous businesses and outlines a focused strategy for guiding a small business through the four stages of entrepreneurial growth. Along the way, Masterson teaches you the different skills needed in order to excel in this dynamic environment.
While some of the concepts covered may seem novel, all of them have been proven to work time and again. Among other things, you'll discover:
Why selling is your first business priority and the one thing you should never stop doing
The handful of numbers that are critical to every business
When to cut your losses short and when to let your winners run
The front-end/back-end method of doubling profits easily
Why having a Plan B is as important as Plan A, and when and how to create it
The difference between pushers, thinkers, organizers, and sellers, and how to attract the ones you need for your business
Over the course of his remarkably successful career, Michael Masterson has helped start and develop dozens of multimillion-dollar businesses, including one whose revenues exceeded $135 million and another still growing at $300 million. Now, with Ready, Fire, Aim, he'll show you how to make your way to the top by designing powerful marketing campaigns that will regularly outsell your competitors; implementing innovative operational procedures that will reduce costs and hassles; and using the revolutionary power of the Internet to reduce customer complaints and increase profits.
To start and grow multimillion-dollar businesses over and over again you have to master certain skills. Ready, Fire, Aim reveals what those skills are and shows you how to quickly master them. Filled with in-depth insights and expert advice, this remarkable guide for entrepreneurs gives you a blueprint for business and financial success that will allow you to enjoy life to its fullest.
Author Geoffrey Moore makes the case that high-tech products require marketing strategies that differ from those in other industries. His chasm theory describes how high-tech products initially sell well, mainly to a technically literate customer base, but then hit a lull as marketing professionals try to cross the chasm to mainstream buyers. This pattern, says Moore, is unique to the high-tech industry.
Moore suggests remedies for the problem that can help businesses meet their long-term goals. He coaches marketing professionals on how to move slowly through the gulf, teaching them to create profiles and target specific segments of the population rather than trying to plow right into the mainstream. He cites examples of successful chasm crossings by such companies as Apple, Tandem, Oracle, and Sun, showing what they all had in common and exposing the different weaknesses in their strategies. Moore also assigns responsibility for success to programmers and developers by suggesting they design a "whole product model." Here, because integration tasks are daunting to the mainstream market, all the components of a technological product must be in one package. Moore also describes strategies for competing with rival companies and assessing the best distribution channels for penetrating the target market.
Written not just for marketing specialists but for all employees whose futures ride on the success of a technical product, Crossing the Chasm delivers crucial information in an engaging, readable tone. --This text refers to an out of print or unavailable edition of this title.
The premise of this facile piece of pop sociology has built-in appeal: little changes can have big effects; when small numbers of people start behaving differently, that behavior can ripple outward until a critical mass or "tipping point" is reached, changing the world. Gladwell's thesis that ideas, products, messages and behaviors "spread just like viruses do" remains a metaphor as he follows the growth of "word-of-mouth epidemics" triggered with the help of three pivotal types. These are Connectors, sociable personalities who bring people together; Mavens, who like to pass along knowledge; and Salesmen, adept at persuading the unenlightened. (Paul Revere, for example, was a Maven and a Connector). Gladwell's applications of his "tipping point" concept to current phenomena--such as the drop in violent crime in New York, the rebirth of Hush Puppies suede shoes as a suburban mall favorite, teenage suicide patterns and the efficiency of small work units--may arouse controversy. For example, many parents may be alarmed at his advice on drugs: since teenagers' experimentation with drugs, including cocaine, seldom leads to hardcore use, he contends, "We have to stop fighting this kind of experimentation. We have to accept it and even embrace it." While it offers a smorgasbord of intriguing snippets summarizing research on topics such as conversational patterns, infants' crib talk, judging other people's character, cheating habits in schoolchildren, memory sharing among families or couples, and the dehumanizing effects of prisons, this volume betrays its roots as a series of articles for the New Yorker, where Gladwell is a staff writer: his trendy material feels bloated and insubstantial in book form
Getting Real details the business, design, programming, and marketing principles of 37signals. The book is packed with keep-it-simple insights, contrarian points of view, and unconventional approaches to software design. This is not a technical book or a design tutorial, it's a book of ideas. Anyone working on a web app -- including entrepreneurs, designers, programmers, executives, or marketers -- will find value and inspiration in this book. 37signals used the Getting Real process to launch five successful web-based applications (Basecamp, Campfire, Backpack, Writeboard, Ta-da List), and Ruby on Rails, an open-source web application framework, in just two years with no outside funding, no debt, and only 7 people (distributed across 7 time zones). Over 500,000 people around the world use these applications to get things done. Now you can find out how they did it and how you can do it too. It's not as hard as you think if you Get Real.
What do the Honda Supercub, Intel's 8088 processor, and hydraulic excavators have in common? They are all examples of disruptive technologies that helped to redefine the competitive landscape of their respective markets. These products did not come about as the result of successful companies carrying out sound business practices in established markets. In The Innovator's Dilemma, author Clayton M. Christensen shows how these and other products cut into the low end of the marketplace and eventually evolved to displace high-end competitors and their reigning technologies.
At the heart of The Innovator's Dilemma is how a successful company with established products keeps from being pushed aside by newer, cheaper products that will, over time, get better and become a serious threat. Christensen writes that even the best-managed companies, in spite of their attention to customers and continual investment in new technology, are susceptible to failure no matter what the industry, be it hard drives or consumer retailing. Succinct and clearly written, The Innovator's Dilemma is an important book that belongs on every manager's bookshelf. Highly recommended.
Cusumano, a professor at MIT's Sloan School of Management and coauthor of Microsoft Secrets, offers a comprehensive overview of the software business and how the right approach is key to the success of technology companies. Cusumano first identifies the key distinction between software and other businesses. In fact, he believes it is unlike every other business because software doesn't have one purpose but becomes whatever function it is handling for a particular customer or company. As a result, software companies must sell both products and services, according to the author. The two typical ways software companies operate is by getting the lion's share of revenues from new product sales or via IT consulting. The third way is what the author calls "hybrid solutions companies—software firms that have some new product sales, but derive as much as 80% of their revenues from services and "maintenance." However, what's essential for company success in today's rapidly changing technological marketplace is having sufficient flexibility to change to meet customer needs. Citing both real companies including IBM, Netscape, etc., along with academic studies, Cusumano describes the changing face of the software industry over the past two decades. The writing is coherent and, given the somewhat technical subject matter, surprisingly graspable even for technophobes. Still, this is a niche book, apt to appeal to people involved in the world of software, rather than a general business audience.
Brodsky and Burlingham, both Inc. magazine columnists, offer a host of advice to budding businesspeople in this thoughtful guide. Having seen businesses fail and succeed, the authors have served as mentors to a wide variety of self-starters and use their experiences as object lessons. The book focuses mainly on big-picture practicalities—the protection of startup capital and the necessity of focusing on high–profit-margin sales—but also expounds on overcoming the sales mindset in favor of the entrepreneurial mentality and facing mistakes with grace and an eye to learning. With a clear, conversational style, the authors give advice on raising capital, maintaining relationships with banks and lenders, customer relations, dealing with unexpected roadblocks and hiring good management. But in the end, they contend that entrepreneurship is not only a passion but a way to achieve a happier, richer, fuller life for ourselves and for our children and grandchildren—and with the right mental habits and skills, anyone can achieve entrepreneurial success. Encouraging, succinct and informative, this is an excellent guide for anyone looking to dive into a new business or expand an existing one.
Kim and Mauborgne's blue ocean metaphor elegantly summarizes their vision of the kind of expanding, competitor-free markets that innovative companies can navigate. Unlike "red oceans," which are well explored and crowded with competitors, "blue oceans" represent "untapped market space" and the "opportunity for highly profitable growth." The only reason more big companies don't set sail for them, they suggest, is that "the dominant focus of strategy work over the past twenty-five years has been on competition-based red ocean strategies"-i.e., finding new ways to cut costs and grow revenue by taking away market share from the competition. With this groundbreaking book, Kim and Mauborgne-both professors at France's INSEAD, the second largest business school in the world-aim to repair that bias. Using dozens of examples-from Southwest Airlines and the Cirque du Soleil to Curves and Starbucks-they present the tools and frameworks they've developed specifically for the task of analyzing blue oceans. They urge companies to "value innovation" that focuses on "utility, price, and cost positions," to "create and capture new demand" and to "focus on the big picture, not the numbers." And while their heavyweight analytical tools may be of real use only to serious strategy planners, their overall vision will inspire entrepreneurs of all stripes, and most of their ideas are presented in a direct, jargon-free manner. Theirs is not the typical business management book's vague call to action; it is a precise, actionable plan for changing the way companies do business with one resounding piece of advice: swim for open waters.
Programmers are craftspeople trained to use a certain set of tools (editors, object managers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Most programmers arrive at the so-called tricks of the trade over time, through independent experimentation. In The Pragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.
Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book.
This specially priced boxed set contains Volumes 1-3 of the acclaimed TCP/IP Illustrated books by W. Richard Stevens and Gary R.Wright, plus an exclusive data structures poster!
The TCP/IP Illustrated books are praised for their highly effective visual approach to the essential TCP/IP topics facing today's networking professionals. The word 'illustrated' distinguishes this book from the rest. By forcing conditions to occur, and then displaying the results, TCP/IP Illustrated gives readers a much greater understanding of the concepts than words alone can provide. The books are noted for their diagrams and clear and readable writing style.
Available together in a gift set for the very first time, these books include unparalleled TCP/IP material needed by any networking professional. Titles include: TCP/IP Illustrated, Volume 1: The Protocols; TCP/IP Illustrated, Volume 2: The Implementation; TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX. Domain Protocols; and the 4.4BSD TCP/IP Networking Data Structures Poster. The suggested list price is over $20 off the cost of buying the books individually. The handsome slipcase makes this set an ideal gift for the recent computer science graduate or a special treat for the network programmer!
The 4.4BSD TCP/IP Networking Data Structures Poster is based on Volumes 1 and 2. It measures 24" x 36"and is shipped folded in the box.
Keep pace with the fast-developing world of operating systems
Open-source operating systems, virtual machines, and clustered computing are among the leading fields of operating systems and networking that are rapidly changing. With substantial revisions and organizational changes, Silberschatz, Galvin, and Gagne’s Operating System Concepts, Eighth Edition remains as current and relevant as ever, helping you master the fundamental concepts of operating systems while preparing yourself for today’s emerging developments.
As in the past, the text brings you up to speed on core knowledge and skills, including:
What operating systems are, what they do, and how they are designed and constructed
Process, memory, and storage management
Protection and security
Beyond the basics, the Eight Edition sports substantive revisions and organizational changes that clue you in to such cutting-edge developments as open-source operating systems, multi-core processors, clustered computers, virtual machines, transactional memory, NUMA, Solaris 10 memory management, Sun’s ZFS file system, and more. New to this edition is the use of a simulator to dynamically demonstrate several operating system topics.
Best of all, a greatly enhanced WileyPlus, a multitude of new problems and programming exercises, and other enhancements to this edition all work together to prepare you enter the world of operating systems with confidence.
Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.
This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing.
Each chapter in the book consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.
New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more
Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization
How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language
Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting.
Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed:
Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow
Joe Armstrong: Inventor of Erlang
Joshua Bloch: Author of the Java collections framework, now at Google
Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger
L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1
Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal
Dan Ingalls: Smalltalk implementor and designer
Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler
Donald Knuth: Author of The Art of Computer Programming and creator of TeX
Peter Norvig: Director of Research at Google and author of the standard text on AI
Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress
Ken Thompson: Inventor of UNIX
Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker
Identify problem code and use faster alternatives to accomplish the same task
Use optimization techniques to improve runtime performance
Learn ways to ensure the UI is responsive at all times
Achieve faster client-server communication
Use a build system to minify files, and HTTP compression to deliver them to the browser
Computers are everywhere, on every desk, in your iPod, cell phone, and PDA. To live well in the 21st century, you need to know how to make computers do things. And to really make computers do what you want, you have to learn to program.
Fortunately, that's easier now than ever before. Chris Pine's book will teach you how to program. You'll learn to use your computer better, to get it to do what you want it to do. Starting with small, simple one-line programs to calculate your age in seconds, you'll see how to advance to fully structured, real programs. You'll learn the same technology used to drive modern dynamic websites and large, professional applications.
It's now easier to learn to write your own computer software than it has ever been before. Now everyone can learn to write programs for themselves---no previous experience is necessary. Chris takes a thorough, but light-hearted approach that teaches you how to program with a minimum of fuss or bother.
Based on the best-selling first edition, Beginning Ruby: From Novice to Professional, Second Edition is the leading guide for every type of reader who wants to learn Ruby from the ground up.
The new edition of this book provides the same excellent introduction to Ruby as the first edition plus updates for the newest version of Ruby, including the addition of the Sinatra and Ramaze web application frameworks and a chapter on GUI development so developers can take advantage of these new trends.
Beginning Ruby starts by explaining the principles behind object-oriented programming and within a few chapters builds toward creating a full Ruby application. By the end of the book, in addition to in-depth knowledge of Ruby, you'll also have basic understanding of many ancillary technologies such as SQL, XML, web frameworks, and networking.
Introduces readers to the Ruby programming language
Takes readers from basic programming skills to web development with topics like Ruby-based frameworks and GUI programming
Covers many ancillary technologies in order to provide a broader picture (e.g., databases, XML, network daemons)
Understand the basics of Ruby and object-oriented building blocks.
Work with Ruby libraries, gems, and documentation.
Work with files and databases.
Write and deploy Ruby applications.
Explore Ruby web frameworks and aspects of network programming with Ruby.
Develop desktop and GUI applications with Ruby.
Python for Software Design is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters. The focus is on the programming process, with special emphasis on debugging. The book includes a wide range of exercises, from short examples to substantial projects, so that students have ample opportunity to practice each new concept. Exercise solutions and code examples are available from thinkpython.com, along with Swampy, a suite of Python programs that is used in some of the exercises.
This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers. The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects.
These are the timesaving techniques relished by computer hackers--those devoted and persistent code developers who seek elegant and efficient ways to build better software. The truth is that much of the computer programmer's job involves a healthy mix of arithmetic and logic. In Hacker's Delight, veteran programmer Hank Warren shares the tricks he has collected from his considerable experience in the worlds of application and system programming. Most of these techniques are eminently practical, but a few are included just because they are interesting and unexpected. The resulting work is an irresistible collection that will help even the most seasoned programmers better their craft.
A broad collection of useful programming tricks
Small algorithms for common tasks
Power-of-2 boundaries and bounds checking
Rearranging bits and bytes
Integer division and division by constants
Some elementary functions on integers
Hilbert's space-filling curve
And even formulas for prime numbers!
This book is for anyone who wants to create efficient code. Hacker's Delight will help you learn to program at a higher level--well beyond what is generally taught in schools and training courses--and will advance you substantially further than is possible through ordinary self-study alone.
Chapters: Acm Computing Classification System, Ai Memo, Acm Guide to Computing Literature, Hakmem, Lambda Papers. Source: Wikipedia. Pages: 22. Not illustrated. Free updates online. Purchase includes a free trial membership in the publisher's book club where you can select from more than a million books without charge. Excerpt: The ACM Computing Classification System is a subject classification system for computer science devised by the Association for Computing Machinery. The system is comparable to the Mathematics Subject Classification in scope, aims and structure, being used by the various ACM journals to organise subjects by area. The system has gone through six revisions, the first version being published in 1964, and revised versions appearing in 1982, 1983, 1987, 1991, and the now current version in 1998. The ACM Computing Classification System is hierarchically structured in four levels: three outer levels, coded by capital letters and numbers, and an uncoded fourth level of subject descriptors. Thus, for example, one branch of the hierarchy contains I. Computing Methodologies, which contains:I.2 Artificial Intelligence, which contains:I.2.4 Knowledge representation formalisms and methods, which contains:Temporal logic.Each top-level category has two standard subcategories: "general", coded with a "0", and "miscellaneous", coded with a "m". For instance, I.0 denotes the "general" subcategory of Computing Methodologies, while I.m denotes its miscellaneous subcategory. Several subtopics are listed as uncoded subject descriptors in these standard subcategories
This--this being the attitude encapsulated in Andrew "bunnie" Huang's Hacking the Xbox--is why a lot of people got into the computer industry in the first place. These people liked taking things apart and figuring out how they worked, then making them serve purposes they weren't originally designed for and sharing the new discoveries with others of like mind. Sure, Huang's book is about how to how to turn Microsoft's game console into a high-performance, general-purpose personal computer with a small price tag, and it contains lots of details about the how the heavily advertised gizmo is put together. But you can get the technical material on the Web. What's valuable about Huang's work is that he communicates the pure joy of taking the Xbox apart, figuring out how it works--despite its many designed-in anti-hacking features--and making it do new things. This book reads like the journal of a seventeenth-century voyage of discovery.
There's a wealth of information in these pages about how to disassemble and reverse-engineer electronics, and Huang is careful to show you what tools you need, and how to use them (don't worry if you don't know how to use a soldering iron--that's covered here). There also are step-by-step guides (complete with photos) to a couple of projects, and interviews with key figures in the Xbox-hacking community.
Topics covered: How to enjoy a Microsoft Xbox game console without the mindless tedium of playing video games. This book shows you how to open an Xbox, make modifications to it (from a cosmetic LED color change, to putting in a new power supply, to adding a USB connector), and make the changes needed to get Linux running on it. In the process, readers get an education in reverse engineering electronic circuits, as well as in basic electronic techniques (soldering, crimping, etc) and in the intellectual property law that governs hacker activity.
This book describes how software code analysis tools such as IDA Pro are used to disassemble programs written in high-level languages and recognize different elements of disassembled code in order to debug applications in less time. Also described are the basics of Assembly language programming (MASM) and the system and format of commands for the Intel microprocessor. Aspects of disassembling, analyzing, and debugging software code are considered in detail, and an overview of contemporary disassemblers and debuggers used when analyzing executable code is provided. The basics of working with these tools and their operating principles are also included, and emphasis is placed on analyzing software code and identifying the main structure of those languages in which they were written.
Explaining security vulnerabilities, possible exploitation scenarios, and prevention in a systematic manner, this guide to BIOS exploitation describes the reverse-engineering techniques used to gather information from BIOS and expansion ROMs. SMBIOS/DMI exploitation techniques—including BIOS rootkits and computer defense—and the exploitation of embedded x86 BIOS are also covered.
Symantec's chief antivirus researcher has written the definitive guide to contemporary virus threats, defense techniques, and analysis tools. Unlike most books on computer viruses, The Art of Computer Virus Research and Defense is a reference written strictly for white hats: IT and security professionals responsible for protecting their organizations against malware. Peter Szor systematically covers everything you need to know, including virus behavior and classification, protection strategies, antivirus and worm-blocking techniques, and much more.
Szor presents the state-of-the-art in both malware and protection, providing the full technical detail that professionals need to handle increasingly complex attacks. Along the way, he provides extensive information on code metamorphism and other emerging techniques, so you can anticipate and prepare for future threats.
Szor also offers the most thorough and practical primer on virus analysis ever published—addressing everything from creating your own personal laboratory to automating the analysis process. This book's coverage includes
Discovering how malicious code attacks on a variety of platforms
Classifying malware strategies for infection, in-memory operation, self-protection, payload delivery, exploitation, and more
Identifying and responding to code obfuscation threats: encrypted, polymorphic, and metamorphic
Mastering empirical methods for analyzing malicious code—and what to do with what you learn
Reverse-engineering malicious code with disassemblers, debuggers, emulators, and virtual machines
Implementing technical defenses: scanning, code emulation, disinfection, inoculation, integrity checking, sandboxing, honeypots, behavior blocking, and much more
Using worm blocking, host-based intrusion prevention, and network-level defense strategies
In Hackers Beware, Eric Cole succeeds in explaining how hackers break into computers, steal information, and deny services to machines' legitimate users. An intended side effect of his documentary efforts is a feeling for how network-connected computers should be configured for maximum resistance to attack. Cole, who works with the attack-monitoring SANS Institute as an instructor and security consultant, conveys to his readers specific knowledge of offensive and defensive weaponry as well as general familiarity with attack strategies and good security practices. Hackers Beware is a good primer and really earns its price by going into enough detail to enable readers to actually do something to make their resources safer. It also enables its readers to understand more specialized security texts, including Stephen Northcutt's fine Intrusion Signatures and Analysis.
Cole's didactic style is largely conversational, embracing the fact that most computer exploits can be conveyed as stories about what hackers want and the steps they take to achieve their goals. He punctuates his prose passages with line drawings that clarify what gets passed among the machines involved in an attack, and pauses frequently to show programs' user interfaces and passages from their logs. Cole explains all the jargon he uses--a characteristic that alone distinguishes this book from many of its competitors.
Topics covered: What motivates black-hat hackers, and the technical means they use to go about satisfying their ambitions. General attack strategies--spoofing, password cracking, social engineering, and buffer overflows, among others--are explained, and the tools used to carry them out are catalogued. The same goes for defensive tools and practices.
As the application of object technology-particularly the Java programming language-has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.
With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple-seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay.
In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.
You're not alone.
At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on... something else. Something more challenging. Something more complex. Something more fun.
You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code.
You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design paddle pattern.
Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.
With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.
If you've read a Head First book, you know what to expect - a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.
Twenty years after it topped the bestseller charts, Douglas R. Hofstadter's Gödel, Escher, Bach: An Eternal Golden Braid is still something of a marvel. Besides being a profound and entertaining meditation on human thought and creativity, this book looks at the surprising points of contact between the music of Bach, the artwork of Escher, and the mathematics of Gödel. It also looks at the prospects for computers and artificial intelligence (AI) for mimicking human thought. For the general reader and the computer techie alike, this book still sets a standard for thinking about the future of computers and their relation to the way we think.
Hofstadter's great achievement in Gödel, Escher, Bach was making abstruse mathematical topics (like undecidability, recursion, and 'strange loops') accessible and remarkably entertaining. Borrowing a page from Lewis Carroll (who might well have been a fan of this book), each chapter presents dialogue between the Tortoise and Achilles, as well as other characters who dramatize concepts discussed later in more detail. Allusions to Bach's music (centering on his Musical Offering) and Escher's continually paradoxical artwork are plentiful here. This more approachable material lets the author delve into serious number theory (concentrating on the ramifications of Gödel's Theorem of Incompleteness) while stopping along the way to ponder the work of a host of other mathematicians, artists, and thinkers.
The world has moved on since 1979, of course. The book predicted that computers probably won't ever beat humans in chess, though Deep Blue beat Garry Kasparov in 1997. And the vinyl record, which serves for some of Hofstadter's best analogies, is now left to collectors. Sections on recursion and the graphs of certain functions from physics look tantalizing, like the fractals of recent chaos theory. And AI has moved on, of course, with mixed results. Yet Gödel, Escher, Bach remains a remarkable achievement. Its intellectual range and ability to let us visualize difficult mathematical concepts help make it one of this century's best for anyone who's interested in computers and their potential for real intelligence.
Topics Covered: J.S. Bach, M.C. Escher, Kurt Gödel: biographical information and work, artificial intelligence (AI) history and theories, strange loops and tangled hierarchies, formal and informal systems, number theory, form in mathematics, figure and ground, consistency, completeness, Euclidean and non-Euclidean geometry, recursive structures, theories of meaning, propositional calculus, typographical number theory, Zen and mathematics, levels of description and computers; theory of mind: neurons, minds and thoughts; undecidability; self-reference and self-representation; Turing test for machine intelligence.
Charles Petzold's latest book, Code: The Hidden Language of Computer Hardware and Software, crosses over into general-interest nonfiction from his usual programming genre. It's a carefully written, carefully researched gem that will appeal to anyone who wants to understand computer technology at its essence. Readers learn about number systems (decimal, octal, binary, and all that) through Petzold's patient (and frequently entertaining) prose and then discover the logical systems that are used to process them. There's loads of historical information too. From Louis Braille's development of his eponymous raised-dot code to Intel Corporation's release of its early microprocessors, Petzold presents stories of people trying to communicate with (and by means of) mechanical and electrical devices. It's a fascinating progression of technologies, and Petzold presents a clear statement of how they fit together.
The real value of Code is in its explanation of technologies that have been obscured for years behind fancy user interfaces and programming environments, which, in the name of rapid application development, insulate the programmer from the machine. In a section on machine language, Petzold dissects the instruction sets of the genre-defining Intel 8080 and Motorola 6800 processors. He walks the reader through the process of performing various operations with each chip, explaining which opcodes poke which values into which registers along the way. Petzold knows that the hidden language of computers exhibits real beauty. In Code, he helps readers appreciate it.
Get more out of your legacy systems: more performance, functionality, reliability, and manageability
Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.
Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
Getting legacy code into a test harness
Writing tests that protect you against introducing new problems
Techniques that can be used with any language or platform—with examples in Java, C++, C, and C#
Accurately identifying where code changes need to be made
Coping with legacy systems that aren't object-oriented
Handling applications that don't seem to have any structure
This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.
Demarco and Lister demonstrate that the major issues of software development are human, not technical. Their answers aren't easy--just incredibly successful. New second edition features eight all-new chapters.
The recurring metaphor in The Inmates are Running the Asylum is that of the dancing bear--the circus bear that shuffles clumsily for the amusement of the audience. Such bears, says author Alan Cooper, don't dance well, as everyone at the circus can see. What amazes the crowd is that the bear dances at all. Cooper argues that technology (videocassette recorders, car alarms, most software applications for personal computers) consists largely of dancing bears--pieces that work, but not at all well. He goes on to say that this is more often than not the fault of poorly designed user interfaces, and he makes a good argument that way too many devices (perhaps as a result of the designers' subconscious wish to bully the people who tormented them as children) ask too much of their users. Too many systems (like the famous unprogrammable VCR) make their users feel stupid when they can't get the job done.
Cooper, who designed Visual Basic (the programming environment Microsoft promotes for the purpose of creating good user interfaces), indulges in too much name-dropping and self-congratulation (Cooper attributes the quote, "How did you do that?" to Microsoft chairman Bill Gates, upon looking at one of Cooper's creations)--but this appears to be de rigueur in books about the software industry. But those asides are minor. More valuable is the discourse about software design and implementation ("[O]bject orientation divides the 1000-brick tower into 10 100-brick towers."). Read this book for an idea of what's wrong with UI design.
Topics covered: User interfaces--good ones and bad ones--and where they come from. Also, how to improve the ones you create.
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
How to tell the difference between good and bad code
How to write good code and how to transform bad code into good code
How to create good names, good functions, good objects, and good classes
How to format code for maximum readability
How to implement complete error handling without obscuring code logic
How to unit test and practice test-driven development
Friedman and Felleisen's The Seasoned Schemer picks up where their book, The Little Schemer, left off and focuses on the myriad uses of functions in Scheme. Using the same dialogue format as The Little Schemer, the authors demonstrate how Scheme's flexible facilities for handling functions give the program so much variety and power. Along the way, the authors also present a variety of other more sophisticated language constructs.
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned.
Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform.
This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts.
Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them.
Dividing an enterprise application into layers
The major approaches to organizing business logic
An in-depth treatment of mapping between objects and relational databases
Using Model-View-Controller to organize a Web presentation
Handling concurrency for data that spans multiple transactions
Designing distributed object interfaces
Unix ranks among the great engineering accomplishments of the last half of the twentieth century, and its heir--Linux--seems already imposing and still on its way to achieving its full potential. Eric S. Raymond argues in The Art of UNIX Programming that the excellence of Unix derives as much from the fact that it was (and continues to be) a community effort as from the fact that a lot of smart people have worked to design and build it. Raymond, best known as the author of the open-source manifesto The Cathedral and the Bazaar, says in his preface that this is a "why-to" book, rather than a "how-to" book. It aims to show new Unix programmers why they should work under the old "hacker ethic"--embracing the principles of good software design for its own sake and of code-sharing.
That said, a great deal of valuable practical information appears in this book. Very little of it is in the form of code; most of the practical material takes the form of case studies and discussions of aspects of Unix, all aimed at determining why particular design characteristics are good. In many cases, the people who did the work in the first place make guest appearances and explain their thinking--an invaluable resource. This book is for the deep-thinking software developer in Unix (and perhaps Linux in particular). It shows how to fit into the long and noble tradition, and how to make the software work right
A text introducing the concept of generic components within all C++ language. Discusses issues that C++ developers deal with on a daily basis, including policy-based design for flexibility, partial template specialization, typelists, patterns, and multi-method engineers.
The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process.
Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development.
Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:
Getting all team members to speak the same language
Connecting model and implementation more deeply
Sharpening key distinctions in a model
Managing the lifecycle of a domain object
Writing domain code that is safe to combine in elaborate ways
Making complex code obvious and predictable
Formulating a domain vision statement
Distilling the core of a complex domain
Digging out implicit concepts needed in the model
Applying analysis patterns
Relating design patterns to the model
Maintaining model integrity in a large system
Dealing with coexisting models on the same project
Organizing systems with large-scale structures
Recognizing and responding to modeling breakthroughs
With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
Usability design is one of the most important--yet often least attractive--tasks for a Web developer. In Don't Make Me Think, author Steve Krug lightens up the subject with good humor and excellent, to-the-point examples.
The title of the book is its chief personal design premise. All of the tips, techniques, and examples presented revolve around users being able to surf merrily through a well-designed site with minimal cognitive strain. Readers will quickly come to agree with many of the book's assumptions, such as "We don't read pages--we scan them" and "We don't figure out how things work--we muddle through." Coming to grips with such hard facts sets the stage for Web design that then produces topnotch sites.
Using an attractive mix of full-color screen shots, cute cartoons and diagrams, and informative sidebars, the book keeps your attention and drives home some crucial points. Much of the content is devoted to proper use of conventions and content layout, and the "before and after" examples are superb. Topics such as the wise use of rollovers and usability testing are covered using a consistently practical approach.
This is the type of book you can blow through in a couple of evenings. But despite its conciseness, it will give you an expert's ability to judge Web design. You'll never form a first impression of a site in the same way again.
With the growing prevalence of the Internet, rootkit technology has taken center stage in the battle between White Hats and Black Hats. Adopting an approach that favors full disclosure, The Rootkit Arsenal presents the most accessible, timely, and complete coverage of rootkit technology. This book covers more topics, in greater depth, than any other currently available. In doing so, the author forges through the murky back alleys of the Internet, shedding light on material that has traditionally been poorly documented, partially documented, or intentionally undocumented.
In this strategy-packed guide, top e-business consultant Scott Fox reveals the powerful but simple methods for strik ing it rich on the Net. Exclusive interviews with dozens of "mom and pop" entrepreneurs prove how easy it is to get started and build a million-dollar enterprise. Readers get:
An inspiring guide to e-business opportunities, including "instant e-businesses" that require no start-up capital or technical training * proven strategies for making money from home and turning hobbies into businesses * low cost web marketing and product tips * legal and financial advice * detailed vendor recommendations * years of expertise and experience in one easy-to-use book Internet Riches also offers an innovative action plan for brain storming new business ideas, and fun exercises to help readers determine the best moves for their particular situa tions.
Fox (Internet Riches), an e-business success coach (who lists Bill O'Reilly and Larry King among his client list), offers a beginner's guide to harnessing the Internet to help grow business. He presents succinct advice on how to attract customers online, arguing that marketing is no longer a series of one-way blasts at consumers but a two-way communications system, and that an increasingly personal approach is expected from online business; he urges marketers not to waste energy trying to get customers to their own Web sites, but to get online and find customers where they are already hanging out. He explains the best ways to utilize e-mail lists and newsletters, RSS feeds, online viral marketing, social networking (Facebook, LinkedIn), microblogging (Twitter), online video and radio/podcasts, tele-seminars and webinars, search engine keyword advertising and affiliate program advertising. Interviews with specialists and real-life examples round out the lessons. The book is aimed at absolute newbies, so while experienced Internet users may find this too basic
Put the buzz about your business to work for you. This comprehensive, perfectly paced guide will teach you how to make social media an active part of your marketing plan so that you can turn customer conversations about your brand, product, service, and company into a sustainable competitive advantage. Learn how you can tap the Social Web and amplify your current marketing efforts by listening and participating in conversations that drive measurable results.
Develop and effectively pitch a successful social media campaign inside your company
Learn how to become a genuine Social Web participant
Build a map of your key conversation-generators as you evaluate every point of contact between you and your customers
Get to the sweet spot of social media marketing—the consideration phase of the purchase funnel
Leverage all the tools available—blogs, RSS feeds, podcasts, video and photo sharing, and more
Use social media measurement tools, including the Net Promoter score, and apply metrics from platforms such as Bazaarvoice, BlogPulse, and Cymfony
Learn best practices for launching your social media program and measuring the results
The New Rules of Marketing and PR shows you how to leverage the potential that Web-based communication offers your business. Finally, you can speak directly to customers and buyers, establishing a personal link with the people who make your business work.
This new second edition paperback keeps you up-to-date on the latest trends.
New case studies and current examples are included to illustrate the very latest in marketing and PR trends.
Completely updated to reflect the latest marketing and PR techniques using social media sites such as Twitter, Facebook, and YouTube
Includes a step-by-step action plan for harnessing the power of the Internet to communicate directly with buyers, increase sales, and raise online visibility
David Meerman Scott is a renowned online marketing strategist, keynote speaker and the author of World Wide Rave, from Wiley
Abelson and Sussman's classic Structure and Interpretation of Computer Programs teaches readers how to program by employing the tools of abstraction and modularity. The authors' central philosophy is that programming is the task of breaking large problems into small ones. The book spends a great deal of time considering both this decomposition and the process of knitting the smaller pieces back together.
The authors employ this philosophy in their writing technique. The text asks the broad question "What is programming?" Having come to the conclusion that programming consists of procedures and data, the authors set off to explore the related questions of "What is data?" and "What is a procedure?"
The authors build up the simple notion of a procedure to dizzying complexity. The discussion culminates in the description of the code behind the programming language Scheme. The authors finish with examples of how to implement some of the book's concepts on a register machine. Through this journey, the reader not only learns how to program, but also how to think about programming.
Tufte's masterful and dead-on takes about how to communicate statistical and quantitative data challenges standard assumptions about developing graphical information and reveals, though it is not his stated intention, the weakness of so many graphics software packages. Just look at his collection of chartjunk and "ducks" (his term for hideous graphics) to see how all the whistles and bells available to us via computer graphics programs actually obfuscate the interpretation of visual information. By the time you read how much ink and paper are wasted by created bad graphics, you should be a convert.
In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture of applied computer science, as its comes to play in the construction of a simple yet powerful computer system.
Indeed, the best way to understand how computers work is to build one from scratch, and this textbook leads students through twelve chapters and projects that gradually build a basic hardware platform and a modern software hierarchy from the ground up. In the process, the students gain hands-on knowledge of hardware architecture, operating systems, programming languages, compilers, data structures, algorithms, and software engineering. Using this constructive approach, the book exposes a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other courses fit into the overall picture.
Designed to support one- or two-semester courses, the book is based on an abstraction-implementation paradigm; each chapter presents a key hardware or software abstraction, a proposed implementation that makes it concrete, and an actual project. The emerging computer system can be built by following the chapters, although this is only one option, since the projects are self-contained and can be done or skipped in any order. All the computer science knowledge necessary for completing the projects is embedded in the book, the only pre-requisite being a programming experience.
The book's web site provides all tools and materials necessary to build all the hardware and software systems described in the text, including two hundred test programs for the twelve projects. The projects and systems can be modified to meet various teaching needs, and all the supplied software is open-source.
Perhaps the author gives the best description of this book: "On Lisp deals mostly with the kinds of programs you could only write in Lisp." The book provides extensive information on the advanced features of Lisp, which are not found in other popular programming languages. After showing how flexibly functions can be manipulated, On Lisp moves on to the best discussion of macros available, which includes details of the possible pitfalls (various referential bugs, for example). The book concludes with a demonstration of various advanced constructs that can be implemented in Lisp using the tools developed in the earlier part of the book. As with his other book, ANSI Common Lisp, Graham writes in a fluid style that is a pleasure to read.
Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recent years because of its simplicity, conciseness, and clarity. This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, the author uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. Details about progamming in Haskell are presented in boxes throughout the text so they can be easily found and referred to.
If you can read this review (and voice your opinion about his book on Amazon.com), you have Tim Berners-Lee to thank. When you've read his no-nonsense account of how he invented the World Wide Web, you'll want to thank him again, for the sheer coolness of his ideas. One day in 1980, Berners-Lee, an Oxford-trained computer consultant, got a random thought: "Suppose all the information stored on computers everywhere were linked?" So he created a system to give every "page" on a computer a standard address (now called a URL, or Universal Resource Locator), accessible via the HyperText Transfer Protocol (HTTP), formatted with the HyperText Markup Language (HTML), and visible with the first browser, which did the trick of linking us all up.
He may be the most self-effacing genius of the computer age, and his egalitarian mind is evident in the names he rejected for his invention: "I thought of Mine of Information, or MOI, but moi in French means 'me,' and that was too egocentric.... The Information Mine (TIM) was even more egocentric!" Also, a mine is a passive repository; the Web is something that grows inexorably from everyone's contributions. Berners-Lee fully credits the colorful characters who helped him get the bobsled of progress going--one colleague times his haircuts to match the solstices--but he's stubbornly independent-minded. His quest is to make the Web "a place where the whim of a human being and the reasoning of a machine coexist in an ideal, powerful mixture."
Hard-core tech types may wish Berners-Lee had gone into deeper detail about the road ahead: the "boon and threat" of XML, free vs. commercial software, VRML 3-D imaging, and such. But he wants everyone in on the debate, so he wrote a brisk book that virtually anyone can understand
When the first edition of About Face was published in 1995, the idea of designing products based on human goals was a revolutionary concept. Thanks to the work of Alan Cooper and other pioneers, interaction design is now widely recognized as a unique and vital discipline, but our work is far from finished.
This completely updated volume presents the effective and practical tools you need to design great desktop applications, Web 2.0 sites, and mobile devices. This book will teach you the principles of good product behavior and introduce you to Cooper's Goal-Directed Design method, from conducting user research to defining your product using personas and scenarios. In short, About Face 3 will show you how to design the best possible digital products and services.
This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. You'll learn how to use Haskell in a variety of practical ways, from short scripts to large and demanding applications. Real World Haskell takes you through the basics of functional programming at a brisk pace, and then helps you increase your understanding of Haskell in real-world issues like I/O, performance, dealing with data, concurrency, and more as you move through each chapter. With this book, you will:
Understand the differences between procedural and functional programming
Learn the features of Haskell, and how to use it to develop useful programs
Interact with filesystems, databases, and network services
Write solid code with automated tests, code coverage, and error handling
Harness the power of multicore systems via concurrent and parallel programming
You'll find plenty of hands-on exercises, along with examples of real Haskell programs that you can modify, compile, and run.
One of the great fears many of us face is that despite all our effort and striving, we will discover at the end that we have wasted our life. In A Guide to the Good Life, William B. Irvine plumbs the wisdom of Stoic philosophy, one of the most popular and successful schools of thought in ancient Rome, and shows how its insight and advice are still remarkably applicable to modern lives.
In A Guide to the Good Life, Irvine offers a refreshing presentation of Stoicism, showing how this ancient philosophy can still direct us toward a better life. Using the psychological insights and the practical techniques of the Stoics, Irvine offers a roadmap for anyone seeking to avoid the feelings of chronic dissatisfaction that plague so many of us. Irvine looks at various Stoic techniques for attaining tranquility and shows how to put these techniques to work in our own life. As he does so, he describes his own experiences practicing Stoicism and offers valuable first-hand advice for anyone wishing to live better by following in the footsteps of these ancient philosophers. Readers learn how to minimize worry, how to let go of the past and focus our efforts on the things we can control, and how to deal with insults, grief, old age, and the distracting temptations of fame and fortune. We learn from Marcus Aurelius the importance of prizing only things of true value, and from Epictetus we learn how to be more content with what we have.
Finally, A Guide to the Good Life shows readers how to become thoughtful observers of their own life. If we watch ourselves as we go about our daily business and later reflect on what we saw, we can better identify the sources of distress and eventually avoid that pain in our life. By doing this, the Stoics thought, we can hope to attain a truly joyful life.
In this Hugo-winning 1991 SF novel, Vernor Vinge gives us a wild new cosmology, a galaxy-spanning "Net of a Million Lies," some finely imagined aliens, and much nail-biting suspense.
Faster-than-light travel remains impossible near Earth, deep in the galaxy's Slow Zone--but physical laws relax in the surrounding Beyond. Outside that again is the Transcend, full of unguessable, godlike "Powers." When human meddling wakes an old Power, the Blight, this spreads like a wildfire mind virus that turns whole civilizations into its unthinking tools. And the half-mythical Countermeasure, if it exists, is lost with two human children on primitive Tines World.
Serious complications follow. One paranoid alien alliance blames humanity for the Blight and launches a genocidal strike. Pham Nuwen, the man who knows about Countermeasure, escapes this ruin in the spacecraft Out of Band--heading for more violence and treachery, with 500 warships soon in hot pursuit. On his destination world, the fascinating Tines are intelligent only in combination: named "individuals" are small packs of the doglike aliens. Primitive doesn't mean stupid, and opposed Tine leaders wheedle the young castaways for information about guns and radios. Low-tech war looms, with elaborately nested betrayals and schemes to seize Out of Band if it ever arrives. The tension becomes extreme... while half the Beyond debates the issues on galactic Usenet.
In 2019, humanity finally finds proof of extraterrestrial life when a listening post in Puerto Rico picks up exquisite singing from a planet which will come to be known as Rakhat. While United Nations diplomats endlessly debate a possible first contact mission, the Society of Jesus quietly organizes an eight-person scientific expedition of its own. What the Jesuits find is a world so beyond comprehension that it will lead them to question the meaning of being "human." When the lone survivor of the expedition, Emilio Sandoz, returns to Earth in 2059, he will try to explain what went wrong... Words like "provocative" and "compelling" will come to mind as you read this shocking novel about first contact with a race that creates music akin to both poetry and prayer.
This hefty novel returns to the universe of Vernor Vinge's 1993 Hugo winner A Fire Upon the Deep--but 30,000 years earlier. The story has the same sense of epic vastness despite happening mostly in one isolated solar system. Here there's a world of intelligent spider creatures who traditionally hibernate through the "Deepest Darkness" of their strange variable sun's long "off" periods, when even the atmosphere freezes. Now, science offers them an alternative... Meanwhile, attracted by spider radio transmissions, two human starfleets come exploring--merchants hoping for customers and tyrants who want slaves. Their inevitable clash leaves both fleets crippled, with the power in the wrong hands, which leads to a long wait in space until the spiders develop exploitable technology. Over the years Vinge builds palpable tension through multiple storylines and characters. In the sky, hopes of rebellion against tyranny continue despite soothing lies, brutal repression, and a mental bondage that can convert people into literal tools. Down below, the engagingly sympathetic spiders have their own problems. In flashback, we see the grandiose ideals and ultimate betrayal of the merchant culture's founder, now among the human contingent and pretending to be a senile buffoon while plotting, plotting... Major revelations, ironies, and payoffs follow. A powerful story in the grandest SF tradition.
In his now classic Zen and the Art of Motorcycle Maintenance, Robert Pirsig brings us a literary chautauqua, a novel that is meant to both entertain and edify. It scores high on both counts.
Phaedrus, our narrator, takes a present-tense cross-country motorcycle trip with his son during which the maintenance of the motorcycle becomes an illustration of how we can unify the cold, rational realm of technology with the warm, imaginative realm of artistry. As in Zen, the trick is to become one with the activity, to engage in it fully, to see and appreciate all details--be it hiking in the woods, penning an essay, or tightening the chain on a motorcycle.
In his autobiographical first novel, Pirsig wrestles both with the ghost of his past and with the most important philosophical questions of the 20th century--why has technology alienated us from our world? what are the limits of rational analysis? if we can't define the good, how can we live it? Unfortunately, while exploring the defects of our philosophical heritage from Socrates and the Sophists to Hume and Kant, Pirsig inexplicably stops at the middle of the 19th century. With the exception of Poincaré, he ignores the more recent philosophers who have tackled his most urgent questions, thinkers such as Peirce, Nietzsche (to whom Phaedrus bears a passing resemblance), Heidegger, Whitehead, Dewey, Sartre, Wittgenstein, and Kuhn. In the end, the narrator's claims to originality turn out to be overstated, his reasoning questionable, and his understanding of the history of Western thought sketchy. His solution to a synthesis of the rational and creative by elevating Quality to a metaphysical level simply repeats the mistakes of the premodern philosophers. But in contrast to most other philosophers, Pirsig writes a compelling story. And he is a true innovator in his attempt to popularize a reconciliation of Eastern mindfulness and nonrationalism with Western subject/object dualism. The magic of Zen and the Art of Motorcycle Maintenance turns out to lie not in the answers it gives, but in the questions it raises and the way it raises them. Like a cross between The Razor's Edge and Sophie's World, Zen and the Art of Motorcycle Maintenance takes us into "the high country of the mind" and opens our eyes to vistas of possibility.
SEOmoz PRO combines campaign-based monitoring, actionable recommendations, and premium access to the web's largest SEO community
Great management is difficult to see as it occurs. It's possible to see the results of great management, but it's not easy to see how managers achieve those results. Great management happens in one-on-one meetings and with other managers---all in private. It's hard to learn management by example when you can't see it.
You can learn to be a better manager---even a great manager---with this guide. You'll follow along as Sam, a manager just brought on board, learns the ropes and deals with his new team over the course of his first eight weeks on the job. From scheduling and managing resources to helping team members grow and prosper, you'll be there as Sam makes it happen. You'll find powerful tips covering:
Using feedback and goal-setting
Handling one-on-one meetings
Coaching and mentoring
Deciding what work to do---and what not to do
Do you communicate ineffectively with some people and powerfully with others? The reason may be a difference in personalities and communication preferences. The Art of Speedreading People is a crash course in communication strategies, showing you how to observe behavioral clues to gain valuable insights into people's personalities and communication styles. The result: you become a more effective and convincing communicator, and you are more likely to receive the response you want.
This book is like a practical communications seminar based on the psychology model called Personality Typing, which is focused on identifying key personality traits in order to communicate most effectively. First, you analyze your own personality type and determine your placement on the scales of extrovert/introvert, sensor/intuitive, thinking/feeling, and judging/perceiving. The book then teaches you about the clues that indicate other people's personality type, including speaking style, body language, and occupation. You test yourself by reading a few scenarios and personality typing the characters described. You put the system to work by learning approaches to "speedreading" people in person and on the phone using skill-building exercises. Finally, you learn how to communicate effectively with people who are a different type or temperament than you. The Art of Speedreading People is intriguing and useful, especially for those who work in a sales, service, teaching, or managerial position, or any job where effective and positive communication is paramount.
Ruby on Rails strips complexity from the development process, enabling professional developers to focus on what matters most: delivering business value via clean and maintainable code. This book is the only comprehensive, authoritative guide to delivering production-quality code with Rails 3. Pioneering Rails expert Obie Fernandez and a team of leading experts illuminate the entire Rails 3 API, along with the idioms, design approaches, and libraries that make developing applications with Rails so powerful. Drawing on their unsurpassed experience and track record, they address the real challenges development teams face, showing how to use Rails 3 to maximize your productivity.
Using plentiful detailed code examples, Obie systematically covers Rails 3 key capabilities and subsystems, making this book a reference that you will refer to again and again. He presents advanced Rails programming techniques that have been proven effective in day-to-day usage on dozens of production Rails systems and offers important insights into behavior-driven development and production considerations such as scalability. Dive deep into the Rails 3 codebase together, discovering why Rails is designed the way it is— and how to make it do what you want it to do.
Practical advice from some of today's top early stage investors and entrepreneurs
TechStars is a mentorship-driven startup accelerator with operations in three U.S. cities. Once a year in each city, it funds about ten Internet startups with a small amount of capital and surrounds them with around fifty top Internet entrepreneurs and investors. Historically, about seventy-five percent of the companies that go through TechStars raise a meaningful amount of angel or venture capital. Do More Faster: TechStars Lessons to Accelerate Your Startup is a collection of advice that comes from individuals who have passed through, or are part of, this proven program. Each vignette is an exploration of information often heard during the TechStars program and provides practical insights into early stage entrepreneurship.
Contains seven sections, each focusing on a major theme within the TechStars program, including idea and vision, fundraising, legal and structure, and work/life balance
Created by two highly regarded experts in the world of early stage investing
Essays in each section come from the experienced author team as well as TechStar mentors, entrepreneurs, and founders of companies
While you'll ultimately have to make your own decisions about what's right for your business, Do More Faster: TechStars Lessons to Accelerate Your Startup can get your entrepreneurial endeavor headed in the right direction.
An updated edition of the leading APL text. Continues to provide solid, hands-on programming experience while reflecting modern trends in computing. Its logical presentation and conversational writing style make it perfect for self-study as well as the classroom. Features expanded examples and problems in business applications, and an improved sequence of topics.
This easy-to-use introduction to Microsoft Windows Communication Foundation (WCF) is ideal for developers who want to learn to build services on a company network or as part of an enterprise system. Built into Windows Vista and Longhorn, and available for Windows XP and Windows 2003, WCF provides a platform for service-oriented architecture (SOA) that enables secure and reliable communication among systems within an organization or across the Internet. With WCF, software developers can focus on their business applications and not the plumbing required to connect them. Furthermore, with WCF developers can learn a single programming API to achieve results previously provided by ASMX, Enterprise Services and .NET Remoting. Learning WCF removes the complexity of using this platform by providing detailed answers, explanations and code samples for the most common questions asked by software developers.
Windows Communication Foundation (or WCF, formerly code name "Indigo") provides a set of programming APIs that make it easy to build and consume secure, reliable, and transacted services. This platform removes the need for developers to learn different technologies such as ASMX, Enterprise Services and .NET Remoting, to distribute system functionality on a corporate network or over the Internet. The first truly service-oriented platform, WCF provides innovations that decouple service design and development from deployment and distribution - creating a more flexible and agile environment. WCF also encapsulates all of the latest web service standards for addressing, security, reliability and more.
A well-designed, easy-to-navigate website is useless if no one can find it. If your company is going to succeed in the web economy, optimizing your site for search engine visibility is essential. In this book, four of the most noted experts in the field of search engine optimization (SEO) provide you with proven guidelines and cutting-edge techniques for planning and executing a comprehensive SEO strategy.
The authors clearly explain SEO fundamentals, while correcting many common misconceptions. If you are new to SEO, you'll get a complete and thorough SEO education, as well as an array of effective tactics, from basic to advanced. Seasoned practitioners will find this book useful as a complete reference to SEO best practices.
Explore the underlying theory behind SEO and how search engines work
Learn the steps you need to prepare for, execute, and evaluate SEO initiatives
Examine a number of advanced strategies and tactics
Understand the intricacies involved in managing complex SEO projects
Learn what's necessary to build a competent SEO team with defined roles
Glimpse the future of search and what lies ahead for the SEO industry