Service-Oriented Design with Ruby and Rails


Paul Dix - 2010
    Today, Rails developers and architects need better ways to interface with legacy systems, move into the cloud, and scale to handle higher volumes and greater complexity. In Service-Oriented Design with Ruby and Rails Paul Dix introduces a powerful, services-based design approach geared toward overcoming all these challenges. Using Dix's techniques, readers can leverage the full benefits of both Ruby and Rails, while overcoming the difficulties of working with larger codebases and teams. Dix demonstrates how to integrate multiple components within an enterprise application stack; create services that can easily grow and connect; and design systems that are easier to maintain and upgrade. Key concepts are explained with detailed Ruby code built using open source libraries such as ActiveRecord, Sinatra, Nokogiri, and Typhoeus. The book concludes with coverage of security, scaling, messaging, and interfacing with third-party services. Service-Oriented Design with Ruby and Rails will help you 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

Gamestorming: A Playbook for Innovators, Rule-breakers, and Changemakers


Dave Gray - 2010
    But creating an environment for creative thinking and innovation can be a daunting challenge. How can you make it happen at your company? The answer may surprise you: gamestorming.This book includes more than 80 games to help you break down barriers, communicate better, and generate new ideas, insights, and strategies. The authors have identified tools and techniques from some of the world's most innovative professionals, whose teams collaborate and make great things happen. This book is the result: a unique collection of games that encourage engagement and creativity while bringing more structure and clarity to the workplace. Find out why -- and how -- with Gamestorming.Overcome conflict and increase engagement with team-oriented gamesImprove collaboration and communication in cross-disciplinary teams with visual-thinking techniquesImprove understanding by role-playing customer and user experiencesGenerate better ideas and more of them, faster than ever beforeShorten meetings and make them more productiveSimulate and explore complex systems, interactions, and dynamicsIdentify a problem's root cause, and find the paths that point toward a solution

Bottlenecks: Aligning UX Design with User Psychology


David C. Evans - 2017
    The first generation of books on the topic focused on web pages and cognitive psychology. This book covers apps, social media, in-car infotainment, and multiplayer video games, and it explores the crucial roles played by behaviorism, development, personality, and social psychology. Author David Evans is an experimental psychology Ph.D. and senior manager of consumer research at Microsoft who recounts high-stakes case studies in which behavioral theory aligned digital designs with the bottlenecks in human nature to the benefit of users and businesses alike.Innovators in design and students of psychology will learn:The psychological processes determining users' perception of, engagement with, and recommendation of digital innovationsExamples of interfaces before and after simple psychological alignments that vastly enhanced their effectivenessStrategies for marketing and product development in an age of social media and behavioral targetingHypotheses for research that both academics and enterprises can perform to better meet users' needsWho This Book Is ForDesigners and entrepreneurs will use this book to give their innovations an edge on what are increasingly competitive platforms such as apps, bots, in-car apps, augmented reality content. Usability researchers and market researchers will leverage it to enhance their consulting and reporting. Students and lecturers in psychology departments will want it to help land employment in the private sector.

Seven Languages in Seven Weeks


Bruce A. Tate - 2010
    But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly. Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages. For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them. Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure. Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems. It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.

Physical Computing: Sensing and Controlling the Physical World with Computers


Dan O'Sullivan - 2004
    With a multiple book buying audience, this book doesn't require a specific background or technical experience. It is designed to help make a more interesting connection between the physical world and the computer world. The audience size is comparable to that of the Robot builder market. In addition to this audience, physical computing is also taught at several universities across the US. This book is a great source of information and knowledge for anyone interested in bridging the gap between the physical and the virtual.

Hacking Growth: How Today's Fastest-Growing Companies Drive Breakout Success


Sean Ellis - 2017
    It seems hard to believe today, but there was a time when Airbnb was the best-kept secret of travel hackers and couch surfers, Pinterest was a niche web site frequented only by bakers and crafters, LinkedIn was an exclusive network for C-suite executives and top-level recruiters, Facebook was MySpace's sorry step-brother, and Uber was a scrappy upstart that didn't stand a chance against the Goliath that was New York City Yellow Cabs.So how did these companies grow from these humble beginnings into the powerhouses they are today? Contrary to popular belief, they didn't explode to massive worldwide popularity simply by building a great product then crossing their fingers and hoping it would catch on. There was a studied, carefully implemented methodology behind these companies' extraordinary rise. That methodology is called Growth Hacking, and it's practitioners include not just today's hottest start-ups, but also companies like IBM, Walmart, and Microsoft as well as the millions of entrepreneurs, marketers, managers and executives who make up the community of GrowthHackers.com.Think of the Growth Hacking methodology as doing for market-share growth what Lean Start-Up did for product development, and Scrum did for productivity. It involves cross-functional teams and rapid-tempo testing and iteration that focuses customers attaining them, retaining them, engaging them, and motivating them to come back and buy more. An accessible and practical toolkit that teams and companies in all industries can use to increase their customer base and market share, this book walks readers through the process of creating and executing their own custom-made growth hacking strategy. It is a must read for any marketer, entrepreneur, innovator or manger looking to replace wasteful big bets and "spaghetti-on-the-wall" approaches with more consistent, replicable, cost-effective, and data-driven results.

Accelerate: Building and Scaling High-Performing Technology Organizations


Nicole Forsgren - 2018
    Through four years of groundbreaking research, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performance—and what drives it—using rigorous statistical methods. This book presents both the findings and the science behind that research. Readers will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance.

The Art of Computer Programming, Volume 1: Fundamental Algorithms


Donald Ervin Knuth - 1973
     -Byte, September 1995 I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up. -Charles Long If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing. -Bill Gates It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. -Jonathan Laventhol This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org

High Performance JavaScript


Nicholas C. Zakas - 2010
    The problem is that all of those lines of JavaScript code can slow down your apps. This book reveals techniques and strategies to help you eliminate performance bottlenecks during development. You'll learn how to improve execution time, downloading, interaction with the DOM, page life cycle, and more. Yahoo! frontend engineer Nicholas C. Zakas and five other JavaScript experts -- Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov, and Matt Sweeney -- demonstrate optimal ways to load code onto a page, and offer programming tips to help your JavaScript run as efficiently and quickly as possible. You'll learn the best practices to build and deploy your files to a production environment, and tools that can help you find problems once your site goes live. Identify problem code and use faster alternatives to accomplish the same task Improve scripts by learning how JavaScript stores and accesses data Implement JavaScript code so that it doesn't slow down interaction with the DOM 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

Cognitive Surplus: Creativity and Generosity in a Connected Age


Clay Shirky - 2010
     For decades, technology encouraged people to squander their time and intellect as passive consumers. Today, tech has finally caught up with human potential. In Cognitive Surplus, Internet guru Clay Shirky forecasts the thrilling changes we will all enjoy as new digital technology puts our untapped resources of talent and goodwill to use at last. Since we Americans were suburbanized and educated by the postwar boom, we've had a surfeit of intellect, energy, and time-what Shirky calls a cognitive surplus. But this abundance had little impact on the common good because television consumed the lion's share of it-and we consume TV passively, in isolation from one another. Now, for the first time, people are embracing new media that allow us to pool our efforts at vanishingly low cost. The results of this aggregated effort range from mind expanding-reference tools like Wikipedia-to lifesaving-such as Ushahidi.com, which has allowed Kenyans to sidestep government censorship and report on acts of violence in real time. Shirky argues persuasively that this cognitive surplus-rather than being some strange new departure from normal behavior-actually returns our society to forms of collaboration that were natural to us up through the early twentieth century. He also charts the vast effects that our cognitive surplus- aided by new technologies-will have on twenty-first-century society, and how we can best exploit those effects. Shirky envisions an era of lower creative quality on average but greater innovation, an increase in transparency in all areas of society, and a dramatic rise in productivity that will transform our civilization. The potential impact of cognitive surplus is enormous. As Shirky points out, Wikipedia was built out of roughly 1 percent of the man-hours that Americans spend watching TV every year. Wikipedia and other current products of cognitive surplus are only the iceberg's tip. Shirky shows how society and our daily lives will be improved dramatically as we learn to exploit our goodwill and free time like never before.

Agile Testing: A Practical Guide for Testers and Agile Teams


Lisa Crispin - 2008
    The widespread adoption of agile methods has brought the need for effective testing into the limelight, and agile projects have transformed the role of testers. Much of a tester's function, however, remains largely misunderstood. What is the true role of a tester? Do agile teams actually need members with QA backgrounds? What does it really mean to be an "agile tester?"Two of the industry's most experienced agile testing practitioners and consultants, Lisa Crispin and Janet Gregory, have teamed up to bring you the definitive answers to these questions and many others. In Agile Testing, Crispin and Gregory define agile testing and illustrate the tester's role with examples from real agile teams. They teach you how to use the agile testing quadrants to identify what testing is needed, who should do it, and what tools might help. The book chronicles an agile software development iteration from the viewpoint of a tester and explains the seven key success factors of agile testing.Readers will come away from this book understanding- How to get testers engaged in agile development- Where testers and QA managers fit on an agile team- What to look for when hiring an agile tester- How to transition from a traditional cycle to agile development- How to complete testing activities in short iterations- How to use tests to successfully guide development- How to overcome barriers to test automationThis book is a must for agile testers, agile teams, their managers, and their customers.

Agile Software Development with Scrum


Ken Schwaber - 2001
    The Agile software process allows a company to implement eXtreme Programming quickly and immediately-and to begin producing software incrementally in as little as 30 days! Implementing eXtreme Programming is easier said than done. The process can be time consuming and actually slow down current software projects that are in process. This book shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software. Using SCRUM and the Agile process can virtually eliminate all downtime during an XP implementation.

A Software Engineer Learns HTML5, JavaScript and jQuery


Dane Cameron - 2013
    Due to their monopoly position in web browsers, and the fact web browsers have spread from PCs to phones, tablets and TVs; their status will continue to grow and grow. Despite their success, many software engineers are apprehensive about JavaScript and HTML. This apprehensiveness is not completely unfounded; both JavaScript and HTML were rushed in their early years, and driven by commercial rather than engineering interests. As a result, many dubious features crept into these languages. Due to backwards compatibility concerns, most of these features still remain. In addition, many software engineers have used these languages without ever learning them. JavaScript and HTML have low barriers to entry, and this, along with their similarity to other languages, led many software engineers to conclude that there really was nothing much to learn. If you have not used JavaScript and HTML for a number of years, or if you are a programmer or software engineer using other languages, you may be surprised at what they now offer. Browser based web applications are now capable of matching or exceeding the sophistication and scale of traditional desktop applications. In order to create complex web applications however, it is essential to learn these languages. This book takes the point of view that once you have a strong grasp of the fundamentals, the details will take care of themselves. It will not present you with long lists of APIs, or intricate details of every attribute, these can be found in reference manuals. It will focus on the details of each language that are fundamental to understanding how they work. This book will guide you through the process of developing a web application using HTML5, Javascript, jQuery and CSS. It contains the following content: 1. An introduction to the HTML5 markup language, and how it differs from HTML4 and XHTML. 2. An introduction to JavaScript, including an in-depth look at its use of objects and functions, along with the design patterns that support the development of robust web applications. 3. An introduction to jQuery selection, traversal, manipulation and events. 4. An in-depth look at the Web storage and IndexedDB APIs for client side data storage. 5. A guide to implementing offline web applications with the Application Cache API. 6. An introduction to the ways JavaScript can interact with the users file-system using the FileReader API. 7. The use of Web Workers in a web application to execute algorithms on background threads. 8. An introduction to AJAX, and the jQuery API supporting AJAX. 9. An introduction to Server Sent Events and Web Sockets. All subjects are introduced in the context of a sample web application. This book is intended for anyone with at least a superficial knowledge of HTML and programming.

The Art of SEO: Mastering Search Engine Optimization


Eric Enge - 2009
    This second edition brings you up to date on recent changes in search engine behavior—such as new ranking methods involving user engagement and social media—with an array of effective tactics, from basic to advanced.Comprehend SEO’s many intricacies and complexitiesExplore the underlying theory and inner workings of search enginesUnderstand the role of social media, user data, and linksDiscover tools to track results and measure successRecognize how changes to your site can confuse search enginesLearn to build a competent SEO team with defined rolesGlimpse the future of search and the SEO industry