Browse Results

Showing 16,276 through 16,300 of 53,546 results

101 Design Ingredients to Solve Big Tech Problems

by Eewei Chen

Printed in full color.Tough technology and business challenges face you at every stage of a project. The one-page ingredients in 101 Design Ingredients show you how to solve problems using practical examples you can apply right away. Case studies explain how leading companies combined these ingredients into their own unique recipes to catapult their businesses, and how you can, too. One page, one ingredient. 101 reasons to become more successful at solving those big technology problems. 101 Design Ingredients will help your technology team identify problems, share responsibilities, and work better together.In parts 1 through 4, you'll find 101 problem-solving ingredients grouped into project stages, to help you apply the right ingredient at the right time. Start at any point and page through the humorously illustrated ingredients until you find one that matches your needs best. The ingredients cover the spectrum your business needs to be successful, with tips on team-building, creating a business model, product launch, productivity, and much more. Each ingredient includes three practical suggestions to get you started right away.In part 5, you'll see examples of how companies can blend some of the ingredients used in this book to solve specific business requirements for investment, innovation, leadership, and more. Each recipe shows how a company fine-tuned six of the ingredients to build their own unique solution. You'll learn how to mix and match ingredients to create your own recipes for success, tailored to your company's needs.The ingredients and recipes in this book can be applied by beginners starting out on their first technology project, as well as seasoned professionals who have been tackling the same big problems for years and need a fresh new approach to problem solving.

3D Game Programming for Kids: Create Interactive Worlds with JavaScript

by Chris Strom

Printed in full color.You know what's even better than playing games? Creating your own. Even if you're an absolute beginner, this book will teach you how to make your own online games with interactive examples. You'll learn programming using nothing more than a browser, and see cool, 3D results as you type. You'll learn real-world programming skills in a real programming language: JavaScript, the language of the web. You'll be amazed at what you can do as you build interactive worlds and fun games.You'll jump right in and write games and simulations while learning programming fundamentals. You'll use the ICE Code Editor, which was created especially for this book to make it easy for you to get started with JavaScript programming. With the ICE Editor, you'll see the results of your work right away. Want a red donut? You can make hundreds of them, spinning around like crazy right next to the code you just typed.You'll do hands-on coding in every chapter. You'll start by building simple animated shapes, then make your own player--who can do cartwheels! You'll learn how to build your own games from start to finish, including a monster eating fruit, a cave puzzle, and rafting on a river. You'll animate simple shapes to create a model of the solar system, and make your own website so that you can show off your games with your friends. If you just want to make games, jump to the lessons focusing on projects. To understand some of the theory better or if you need some help with functions, turn to the chapters that explain the programming concepts. We'll walk you carefully through all the math needed to bring games to life.Best of all, you get to create awesome games and say, "I made this!"

Async JavaScript: Build More Responsive Apps with Less Code

by Trevor Burnham

With the advent of HTML5, front-end MVC, and Node.js, JavaScript is ubiquitous--and still messy. This book will give you a solid foundation for managing async tasks without losing your sanity in a tangle of callbacks. It's a fast-paced guide to the most essential techniques for dealing with async behavior, including PubSub, evented models, and Promises. With these tricks up your sleeve, you'll be better prepared to manage the complexity of large web apps and deliver responsive code.With Async JavaScript, you'll develop a deeper understanding of the JavaScript language. You'll start with a ground-up primer on the JavaScript event model--key to avoiding many of the most common mistakes JavaScripters make. From there you'll see tools and design patterns for turning that conceptual understanding into practical code.The concepts in the book are illustrated with runnable examples drawn from both the browser and the Node.js server framework, incorporating complementary libraries including jQuery, Backbone.js, and Async.js. You'll learn how to create dynamic web pages and highly concurrent servers by mastering the art of distributing events to where they need to be handled, rather than nesting callbacks within callbacks within callbacks.Async JavaScript will get you up and running with real web development quickly. By the time you've finished the Promises chapter, you'll be parallelizing Ajax requests or running animations in sequence. By the end of the book, you'll even know how to leverage Web Workers and AMD for JavaScript applications with cutting-edge performance. Most importantly, you'll have the knowledge you need to write async code with confidence.What You Need:Basic knowledge of JavaScript is recommended. If you feel that you're not up to speed, see the "Resources for Learning JavaScript" section in the preface.

Automate with Grunt: The Build Tool for JavaScript

by Brian P. Hogan

Grunt is everywhere. JavaScript projects from jQuery to Twitter Bootstrap use Grunt to convert code, run tests, and produce distributions for production. It's a build tool in the spirit of Make and Rake, but written with modern apps in mind. This book gets you up to speed with Grunt using practical hands-on examples, so you can wrangle your projects with ease. You'll learn how to create and maintain tasks and project builds, and automate your workflow with plugins and custom tasks.JavaScript has moved from being the language you love to hate to the language you need to use. And as JavaScript applications get more complex, you need a process to manage that complexity. While online tutorials just explain how to slap together a configuration file, this book goes further and shows you how to create your own tasks, design your own project templates, combine plugins together to bring a web app to life, and build your own plugins. You'll start by learning the basics of task creation, error handling, and logging as you create a simple configuration that executes basic JavaScript code using Node.js. Then you'll jump right into file manipulation as you read, write, copy, and delete files. You'll learn how Grunt's powerful multitasks work as you build a task to concatenate files together. Once you've got a grasp on these basics, you'll build a simple app with AngularJS and CoffeeScript, using Grunt to do all the heavy lifting and script processing. Finally, you'll create your own plugin so you can understand how plugins work.Each chapter contains hands-on exercises and ideas for further study. Whether you rock Ruby or sling C#, Grunt will be a useful addition to your toolbox.What You Need:This book covers Grunt 0.4.1 and higher, and requires basic knowledge of JavaScript and command-line tools on Windows, OS X, or Linux.

Behind Closed Doors: Secrets of Great Management (Pragmatic Programmers)

by Johanna Rothman Esther Derby

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:Delegating effectivelyUsing feedback and goal-settingDeveloping influenceHandling one-on-one meetingsCoaching and mentoringDeciding what work to do---and what not to do...and more.Full of tips and practical advice on the most important aspects of management, this is one of those books that can make a lasting andimmediate impact on your career.

Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software

by David Scott Bernstein

We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project.These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend.By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code.Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.

Build Awesome Command-Line Applications in Ruby 2: Control Your Computer, Simplify Your Life

by David B. Copeland

Speak directly to your system. With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life. With this book, you'll learn specific ways to write command-line applications that are easy to use, deploy, and maintain, using a set of clear best practices and the Ruby programming language. This book is designed to make any programmer or system administrator more productive in their job. Now updated for Ruby 2.Writing a command-line application that's self-documenting, robust, adaptable and forever useful is easier than you might think. Ruby is particularly suited to this task, because it combines high-level abstractions with "close to the metal" system interaction wrapped up in a concise, readable syntax. Plus, Ruby has the support of a rich ecosystem of open source tools and libraries.Ten insightful chapters each explain and demonstrate a command-line best practice. You'll see how to use these tools to elevate the lowliest automation script to a maintainable, polished application. You'll learn how to use free, open source parsers to create user-friendly command-line interfaces as well as command suites. You'll see how to use defaults to keep options simple for everyday users, while giving advanced users options for more complex tasks. There's no reason why a command-line application should lack documentation, whether it's part of a help command or a man page; you'll find out when and how to use both. Your journey from command-line novice to pro ends with a look at valuable approaches to testing your apps, and includes some fun techniques for outside-the-box, colorful interfaces that will delight your users.With Ruby, the command line is not dead. Long live the command line.

Clojure Applied: From Practice to Practitioner

by Ben Vandgrift Alex Miller

Think in the Clojure way! Once you're familiar with Clojure, take the next step with extended lessons on the best practices and most critical decisions you'll need to make while developing. Learn how to model your domain with data, transform it with pure functions, manage state, spread your work across cores, and structure apps with components. Discover how to use Clojure in the real world, and unlock the speed and power of this beautiful language on the Java Virtual Machine.Clojure Applied gives you the practical, realistic advice and depth of field that's been missing from your development practice. You want to develop software in the most effective, efficient way possible. This book gives you the answers you've been looking for in friendly, clear language.Dive into the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You'll finally get the complete picture you've been looking for, rather than dozens of puzzle pieces you must assemble yourself. First, explore the core concepts of Clojure development: learn how to model your domain with immutable data; choose the ideal collection; and write simple, pure functions for efficient transformation. Next you'll apply those core concepts to build applications: discover how Clojure manages state and identity; spread your work for concurrent programming; and create and assemble components. Finally, see how to manage external integration and deployment concerns by developing a testing strategy, connecting with other data sources, and getting your libraries and applications out the door.Go beyond the toy box and into Clojure's way of thinking. By the end of this book, you'll have the tools and information to put Clojure's strengths to work.What You Need:To follow along with the examples in the book, you will need Clojure 1.6, Leinegen 2, and Java 6 or higher.

CoffeeScript: Accelerated JavaScript Development

by Trevor Burnham

Over the last five years, CoffeeScript has taken the web development world by storm. With the humble motto "It's just JavaScript," CoffeeScript provides all the power of the JavaScript language in a friendly and elegant package. This extensively revised and updated new edition includes an all-new project to demonstrate CoffeeScript in action, both in the browser and on a Node.js server. There's no faster way to learn to write a modern web application.This new edition has been extensively revised and updated to reflect the current state and features of CoffeeScript. Every chapter has been revised and refactored, and new sections and a new chapter on testing have been added. If you already know JavaScript, this book will make your transition to CoffeeScript easy. If you're new to JavaScript, it's a great place to start.New in this edition: Automating setup with the Grunt task runner Using CoffeeScript classes with the Backbone framework Using CoffeeScript's simple callback syntax to interact with the Express framework A new chapter on client-side and server-side testing with Intern* A new project that gives you hands-on experience with browser-side and server-side CoffeeScriptCoffeeScript is every bit as portable and effective as JavaScript. It aids development by adding a bevy of features, such as classes, splats, list comprehensions, and destructuring. These features make it easier to write clear, readable code, and by learning how these features work, you'll deepen your understand of JavaScript as well. This book is your complete guide to writing better JavaScript code, faster.

Core Data in Objective-C: Data Storage and Management for iOS and OS X

by Marcus S. Zarra

Core Data is Apple's data storage framework: it's powerful, built-in, and can integrate with iCloud. Discover all of Core Data's powerful capabilities, learn fundamental principles including thread and memory management, and add Core Data to both your iOS and OS X projects. All examples in this edition are based on Objective-C and are up-to-date for the latest versions of OS X El Capitan and iOS 9.Core Data expert Marcus Zarra walks you through a fully developed application based around the Core Data APIs. You'll build on this application throughout the book, learning key Core Data principles such as NSPredicate, NSFetchRequest, thread management, and memory management.Start with the basics of Core Data and learn how to use it to develop your application. Then delve deep into the API details. Explore how to get Core Data integrated into your application properly, and work with this flexible API to create convenience methods to improve your application's maintainability. Reduce your migration difficulties, integrate your Core Data app with iCloud and Watch Kit, and use Core Data in a queue-based environment. By the end of the book, you'll have built a full-featured application, gained a complete understanding of Core Data, and learned how to integrate your application into the iPhone/iPad platform.This third edition updates all examples for OS X El Capitan and iOS 9, and gets you up to speed on changes in multithreading and batch processing. There's a new chapter on efficiently importing data from a network location, and a new discussion of how best to pre-load data into your application.What You Need:Mac OS X El Capitan and iOS 9 and a basic working knowledge of Objective-C

Core Data in Swift: Data Storage and Management for iOS and OS X

by Marcus S. Zarra

Core Data is intricate, powerful, and necessary. Discover the powerful capabilities integrated into Core Data, and how to use Core Data in your iOS and OS X projects. All examples are current for OS X El Capitan, iOS 9, and the latest release of Core Data. All the code is written in Swift, including numerous examples of how best to integrate Core Data with Apple's newest programming language.Core Data expert Marcus Zarra walks you through a fully developed application based around the Core Data APIs. You'll build on this application throughout the book, learning key Core Data elements such as NSPredicate, NSFetchRequest, thread management, and memory management.Start with the basics of Core Data and learn how to use it to develop your application. Then delve deep into the API details. Explore how to get Core Data integrated into your application properly, and work with this flexible API to create convenience methods to improve your application's maintainability. Reduce your migration difficulties, integrate your Core Data app with iCloud and Watch Kit, and use Core Data in a queue-based environment. By the end of the book, you'll have built a full-featured application, gained a complete understanding of Core Data, and learned how to integrate your application into the iPhone/iPad platform.This book is based on Core Data in Objective-C, Third Edition. It focuses on Swift and adds an additional chapter on how to integrate Core Data with an efficient network implementation, with best practices on how to load and pre-load data into your Swift application.What You Need:Mac OS X El Capitan and iOS 9 and a basic working knowledge of Swift

Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development

by Jose Valim

Get ready to see Rails as you've never seen it before. Learn how to extend the framework, change its behavior, and replace whole components to bend it to your will. Eight different test-driven tutorials will help you understand Rails' inner workings and prepare you to tackle complicated projects with solutions that are well-tested, modular, and easy to maintain.This second edition of the bestselling Crafting Rails Applications has been updated to Rails 4 and discusses new topics such as streaming, mountable engines, and thread safety.Rails is one of the most extensible frameworks out there. This pioneering book deep-dives into the Rails plugin APIs and shows you, the intermediate Rails developer, how to use them to write better web applications and make your day-to-day work with Rails more productive.Rails Core developer Jose Valim guides you through eight different tutorials, each using test-driven development to build a new Rails plugin or application that solves common problems with these APIs. You'll learn how the Rails rendering stack works and customize it to read templates from the database while you discover how to mimic Active Record behavior, such as validations, in any other object. You'll find out how Rails integrates with Rack, the different ways to stream data from your web application, and how to mix Rails engines and Sinatra applications into your Rails apps, so you can choose the most appropriate tool for the job. In addition, you'll improve your productivity by customizing generators and responders.This book will help you understand Rails' inner workings, including generators, template handlers, internationalization, routing, and responders. With the knowledge you'll gain, you'll create well-tested, modular, and robust solutions for your next project.

Creating Great Teams: How Self-Selection Lets People Excel

by Sandy Mamoli David Mole

People are happiest and most productive if they can choose what they work on and who they work with. Self-selecting teams give people that choice. Build well-designed and efficient teams to get the most out of your organization, with step-by-step instructions on how to set up teams quickly and efficiently. You'll create a process that works for you, whether you need to form teams from scratch, improve the design of existing teams, or are on the verge of a big team re-shuffle. Discover how New Zealand's biggest e-commerce company completely restructured their business through Self-Selection. In the process, find out how to create high-performing groups by letting people self-organize into small, cross-functional teams. Step-by-step guides, easy-to-follow diagrams, practical examples, checklists, and tools will enable you to run a Self-Selection process within your organization.If you're a manager who wants to structure your organization into small teams, you'll discover why Self-Selection is the fastest and safest way to do so. You'll prepare for and organize a Self-Selection event and make sure your Self-Selection participants and fellow managers are on board and ready. If you're a team member, you'll discover what it feels like to be part of a Self-Selection process and what the consequences are for your daily work. You'll learn how to influence your colleagues and bosses to be open to the idea of Self-Selection. You'll provide your manager with a plan for how to facilitate a Self-Selection event, and with evidence that the system works.If you're feeling the pain and chaos of adding new people to your organization, or just want to ensure that your teams have the right people with the right skills, Self-Selection will help you create the effective teams you need.

Cucumber Recipes: Automate Anything with BDD Tools and Techniques

by Ian Dees Matt Wynne Aslak Hellesoy

You can test just about anything with Cucumber. We certainly have, and in Cucumber Recipes we'll show you how to apply our hard-won field experience to your own projects. Once you've mastered the basics, this book will show you how to get the most out of Cucumber--from specific situations to advanced test-writing advice. With over forty practical recipes, you'll test desktop, web, mobile, and server applications across a variety of platforms. This book gives you tools that you can use today to automate any system that you encounter, and do it well.The Cucumber Book showed you how your team can work together to write executable specifications--documents that tell a clear story and also happen to be working test code. We'll arm you with ready-rolled solutions to real-world problems: your tests will run faster, read more clearly, and work in any environment.Our first tips will help you fit Cucumber into your workflow. Powerful filters will tame tables full of test data, transforming them into the format your application needs. Custom output formatters will generate reports for any occasion. Continuous Integration servers will run your Cucumber tests every time the code changes. Next, you'll find recipes tailored to the platform you're running on. Ever wanted to know how to test a Grails app from Cucumber? Need to put a Windows program through its paces? How about a mobile app running on Android or iOS? We'll show you how to do all of these.Throughout the book, you'll see how to make Cucumber sing as you interoperate with different platforms, languages, and environments. From embedded circuits to Python and PHP web apps, Cucumber has something for you.What You Need:You'll need basic working knowledge of Cucumber and Ruby. Individual recipes may have additional requirements; for example, a recipe on Windows automation might pull in an open source GUI driver.We've written the recipes for compatibility with Ruby 1.9.3 and 1.8.7, plus Cucumber 1.1.4. Other versions may work as well, but these are the ones we test with.

Data Science Essentials in Python: Collect - Organize - Explore - Predict - Value

by Dmitry Zinoviev

Go from messy, unstructured artifacts stored in SQL and NoSQL databases to a neat, well-organized dataset with this quick reference for the busy data scientist. Understand text mining, machine learning, and network analysis; process numeric data with the NumPy and Pandas modules; describe and analyze data using statistical and network-theoretical methods; and see actual examples of data analysis at work. This one-stop solution covers the essential data science you need in Python.Data science is one of the fastest-growing disciplines in terms of academic research, student enrollment, and employment. Python, with its flexibility and scalability, is quickly overtaking the R language for data-scientific projects. Keep Python data-science concepts at your fingertips with this modular, quick reference to the tools used to acquire, clean, analyze, and store data.This one-stop solution covers essential Python, databases, network analysis, natural language processing, elements of machine learning, and visualization. Access structured and unstructured text and numeric data from local files, databases, and the Internet. Arrange, rearrange, and clean the data. Work with relational and non-relational databases, data visualization, and simple predictive analysis (regressions, clustering, and decision trees). See how typical data analysis problems are handled. And try your hand at your own solutions to a variety of medium-scale projects that are fun to work on and look good on your resume.Keep this handy quick guide at your side whether you're a student, an entry-level data science professional converting from R to Python, or a seasoned Python developer who doesn't want to memorize every function and option.What You Need:You need a decent distribution of Python 3.3 or above that includes at least NLTK, Pandas, NumPy, Matplotlib, Networkx, SciKit-Learn, and BeautifulSoup. A great distribution that meets the requirements is Anaconda, available for free from www.continuum.io. If you plan to set up your own database servers, you also need MySQL (www.mysql.com) and MongoDB (www.mongodb.com). Both packages are free and run on Windows, Linux, and Mac OS.

Deliver Audacious Web Apps with Ember 2

by Matthew White

It's time for web development to be fun again, time to write engaging and attractive apps--fast--in this brisk tutorial. Build a complete user interface in a few lines of code, create reusable web components, access RESTful services and cache the results for performance, and use JavaScript modules to bring abstraction to your code. Find out how you can get your crucial app infrastructure up and running quickly, so you can spend your time on the stuff great apps are made of: features.With its 2.0 release, the Ember JavaScript framework has taken a major step forward. In this book, you'll learn these new features: how to use module-driven development with Ember CLI, take advantage of the new DOM-based rendering engine, and use a service-based architecture to make your apps flexible, not brittle.Use the Ember CLI to build your app using module-focused JavaScript classes with a clear project structure. Learn how to use Ember's routing classes to organize your app, write web components that marry your user interface and logic without leaky access to state, and read and write data from RESTful services with almost no code. Make use of services to encapsulate logic and inject it throughout your app, and use Ember CLI to rapidly iterate changes, deploy locally, test your code, and build for production. You'll learn all the essentials of working with Ember.If you're tired of feeling limited by your web development tools, unleash your ambition and start creating ambitious web applications with Ember.What You Need:You need Ember, Ember CLI, Google Chrome or Mozilla Firefox, and a text editor.

Deploying with JRuby 9k: Deliver Scalable Web Apps Using the JVM

by Joe Kutner

Deploy using the JVM's high performance while building your apps in the language you love. This book introduces you to three JRuby deployment strategies that give you the performance and scalability you need, while you use a language designed for rapid development. Explore common deployment scenarios, including consolidating an MRI-based Ruby deployment onto a single JVM process and porting a Rails application to JRuby, getting it into production, and keeping it running. This new edition has new chapters on Puma, performance tuning, and Java integration, and is updated to the latest versions of JRuby 9k, Rails 4, and JDK 8.JRuby is a fast, scalable, and powerful JVM language with all the benefits of a traditional Ruby environment. JRuby deployments have fewer moving parts and consume less memory than traditional Ruby. With this book, you can now use JRuby in the real world to build high-performance, scalable applications.Deploying your apps on the JVM requires some new approaches. Start by creating a JRuby microservice that takes advantage of the JVM's native concurrency. Then use Docker to build a virtual production environment that's a stable, reproducible place to explore JRuby deployment. Next, port an existing Rails application to JRuby, preparing the app to take advantage of the JVM platform--all while keeping everything that's friendly and familiar to Ruby developers. Deploy the Rails app to Docker with a multi-threaded Puma server to Heroku or your own private cloud.Take advantage of powerful Java libraries. See how JRuby fits into the enterprise by switching your app to use TorqueBox, an all-in-one JRuby environment that includes built-in support for messaging, scheduling, and daemons--perfect for handling the big jobs. Finally, take a deep dive into JVM performance tuning and set up a continuous deployment environment with Travis CI.What You Need:To run the examples in this book, you'll need a computer that can run the Java Virtual Machine and a connection to the Internet.

Design It!: From Programmer to Software Architect

by Michael Keeling

Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. Share your design decisions, facilitate collaborative design workshops that are fast, effective, and fun-and develop more awesome software!With dozens of design methods, examples, and practical know-how, Design It! shows you how to become a software architect. Walk through the core concepts every architect must know, discover how to apply them, and learn a variety of skills that will make you a better programmer, leader, and designer. Uncover the big ideas behind software architecture and gain confidence working on projects big and small. Plan, design, implement, and evaluate software architectures and collaborate with your team, stakeholders, and other architects. Identify the right stakeholders and understand their needs, dig for architecturally significant requirements, write amazing quality attribute scenarios, and make confident decisions. Choose technologies based on their architectural impact, facilitate architecture-centric design workshops, and evaluate architectures using lightweight, effective methods. Write lean architecture descriptions people love to read. Run an architecture design studio, implement the architecture you've designed, and grow your team's architectural knowledge. Good design requires good communication. Talk about your software architecture with stakeholders using whiteboards, documents, and code, and apply architecture-focused design methods in your day-to-day practice. Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will get everyone on board and give you the experience you need to become a confident software architect.

Effective Testing with RSpec 3: Build Ruby Apps with Confidence

by Myron Marston Ian Dees

"Our tests are broken again!" "Why does the suite take so long to run?" "What value are we getting from these tests anyway?" Solve your testing problems by building and maintaining quality software with RSpec - the popular BDD-flavored Ruby testing framework. This definitive guide from RSpec's lead developer shows you how to use RSpec to drive more maintainable designs, specify and document expected behavior, and prevent regressions during refactoring. Build a project using RSpec to design, describe, and test the behavior of your code. Whether you're new to automated tests or have been using them for years, this book will help you write more effective tests. RSpec has been downloaded more than 100 million times and has inspired countless test frameworks in other languages. Use this influential Ruby testing framework to iteratively develop a project with the confidence that comes from well-tested code. This book guides you through creating a Ruby project with RSpec, and explores the individual components in detail. Start by learning the basics of installing and using RSpec. Then build a real-world JSON API, using RSpec throughout the process to drive a BDD-style outside-in workflow. Apply an effective test strategy to write fast, robust tests that support evolutionary design through refactoring. The rest of the book provides the definitive guide to RSpec's components. Use rspec-core's metadata to slice and dice your spec suite. Dig into rspec-expectations' matchers: compose them in flexible ways, specify expected outcomes with precision, and diagnose problems quickly with the help of good failure messages. Write fast, isolated tests with rspec-mocks' test doubles while pushing your code toward simpler interfaces. The authors, with a combined 20 years of automated testing experience, share testing wisdom that will lead to a fun, productive testing experience. What You Need: To follow along with the book, you'll need Ruby 2.2+. The book will guide you through installing RSpec 3 and setting up a new project to use it.

Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing

by Elisabeth Hendrickson

Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts.Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks. Part 1 introduces the core, essential skills of a master explorer. You'll learn to craft charters to guide your exploration, to observe what's really happening (hint: it's harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways. Part 2 builds on that foundation. You'll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you'll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer's arsenal. Part 3 brings the techniques back into the context of a software project. You'll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning.You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you'll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.

Fire in the Valley: The Birth and Death of the Personal Computer

by Michael Swaine Paul Freiberger

In the 1970s, while their contemporaries were protesting the computer as a tool of dehumanization and oppression, a motley collection of college dropouts, hippies, and electronics fanatics were engaged in something much more subversive. Obsessed with the idea of getting computer power into their own hands, they launched from their garages a hobbyist movement that grew into an industry, and ultimately a social and technological revolution. What they did was invent the personal computer: not just a new device, but a watershed in the relationship between man and machine. This is their story.Fire in the Valley is the definitive history of the personal computer, drawn from interviews with the people who made it happen, written by two veteran computer writers who were there from the start. Working at InfoWorld in the early 1980s, Swaine and Freiberger daily rubbed elbows with people like Steve Jobs and Bill Gates when they were creating the personal computer revolution.A rich story of colorful individuals, Fire in the Valley profiles these unlikely revolutionaries and entrepreneurs, such as Ed Roberts of MITS, Lee Felsenstein at Processor Technology, and Jack Tramiel of Commodore, as well as Jobs and Gates in all the innocence of their formative years.This completely revised and expanded third edition brings the story to its completion, chronicling the end of the personal computer revolution and the beginning of the post-PC era. It covers the departure from the stage of major players with the deaths of Steve Jobs and Douglas Engelbart and the retirements of Bill Gates and Steve Ballmer; the shift away from the PC to the cloud and portable devices; and what the end of the PC era means for issues such as personal freedom and power, and open source vs. proprietary software.

Functional Programming in Java: Harnessing the Power Of Java 8 Lambda Expressions

by Venkat Subramaniam

Intermediate level, for programmers fairly familiar with Java, but new to the functional style of programming and lambda expressions.Get ready to program in a whole new way. Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that's also a breeze to parallelize. You'll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You'll design and write applications better using the new standards in Java 8 and the JDK. Lambda expressions are lightweight, highly concise anonymous methods backed by functional interfaces in Java 8. You can use them to leap forward into a whole new world of programming in Java. With functional programming capabilities, which have been around for decades in other languages, you can now write elegant, concise, less error-prone code using standard Java. This book will guide you though the paradigm change, offer the essential details about the new features, and show you how to transition from your old way of coding to an improved style.In this book you'll see popular design patterns, such as decorator, builder, and strategy, come to life to solve common design problems, but with little ceremony and effort. With these new capabilities in hand, Functional Programming in Java will help you pick up techniques to implement designs that were beyond easy reach in earlier versions of Java. You'll see how you can reap the benefits of tail call optimization, memoization, and effortless parallelization techniques.Java 8 will change the way you write applications. If you're eager to take advantage of the new features in the language, this is the book for you.What you need:Java 8 with support for lambda expressions and the JDK is required to make use of the concepts and the examples in this book.

Functional Programming: Exploring Clojure, Elixir, Haskell, Scala, and Swift

by Michael Swaine

Explore functional programming and discover new ways of thinking about code. You know you need to master functional programming, but learning one functional language is only the start. In this book, through articles drawn from PragPub magazine and articles written specifically for this book, you'll explore functional thinking and functional style and idioms across languages. Led by expert guides, you'll discover the distinct strengths and approaches of Clojure, Elixir, Haskell, Scala, and Swift and learn which best suits your needs. Contributing authors: Rich Hickey, Stuart Halloway, Aaron Bedra, Michael Bevilacqua-Linn, Venkat Subramaniam, Paul Callaghan, Jose Valim, Dave Thomas, Natasha Murashev, Tony Hillerson, Josh Chisholm, and Bruce Tate. Functional programming is on the rise because it lets you write simpler, cleaner code, and its emphasis on immutability makes it ideal for maximizing the benefits of multiple cores and distributed solutions. So far nobody's invented the perfect functional language - each has its unique strengths. In Functional Programming: A PragPub Anthology, you'll investigate the philosophies, tools, and idioms of five different functional programming languages.See how Swift, the development language for iOS, encourages you to build highly scalable apps using functional techniques like map and reduce. Discover how Scala allows you to transition gently but deeply into functional programming without losing the benefits of the JVM, while with Lisp-based Clojure, you can plunge fully into the functional style. Learn about advanced functional concepts in Haskell, a pure functional language making powerful use of the type system with type inference and type classes. And see how functional programming is becoming more elegant and friendly with Elixir, a new functional language built on the powerful Erlang base.The industry has been embracing functional programming more and more, driven by the need for concurrency and parallelism. This collection of articles will lead you to mastering the functional approach to problem solving. So put on your explorer's hat and prepare to be surprised. The goal of exploration is always discovery.What You Need:Familiarity with one or more programming languages.

Good Math: A Geek's Guide to the Beauty of Numbers, Logic, and Computation

by Mark C. Chu-Carroll

Mathematics is beautiful--and it can be fun and exciting as well as practical. Good Math is your guide to some of the most intriguing topics from two thousand years of mathematics: from Egyptian fractions to Turing machines; from the real meaning of numbers to proof trees, group symmetry, and mechanical computation. If you've ever wondered what lay beyond the proofs you struggled to complete in high school geometry, or what limits the capabilities of computer on your desk, this is the book for you.Why do Roman numerals persist? How do we know that some infinities are larger than others? And how can we know for certain a program will ever finish? In this fast-paced tour of modern and not-so-modern math, computer scientist Mark Chu-Carroll explores some of the greatest breakthroughs and disappointments of more than two thousand years of mathematical thought. There is joy and beauty in mathematics, and in more than two dozen essays drawn from his popular "Good Math" blog, you'll find concepts, proofs, and examples that are often surprising, counterintuitive, or just plain weird.Mark begins his journey with the basics of numbers, with an entertaining trip through the integers and the natural, rational, irrational, and transcendental numbers. The voyage continues with a look at some of the oddest numbers in mathematics, including zero, the golden ratio, imaginary numbers, Roman numerals, and Egyptian and continuing fractions. After a deep dive into modern logic, including an introduction to linear logic and the logic-savvy Prolog language, the trip concludes with a tour of modern set theory and the advances and paradoxes of modern mechanical computing.If your high school or college math courses left you grasping for the inner meaning behind the numbers, Mark's book will both entertain and enlighten you.

Grails 2: A Quick-Start Guide

by Dave Klein Ben Klein

Grails is a full-stack web development framework that enables you to build complete web applications in a fraction of the time and with less code than other frameworks. Grails uses the principle of convention over configuration and the dynamic Groovy programming language.This revised and updated new edition shows you how to use Grails by iteratively building a unique, working application. By the time you're done, you'll have built and deployed a real, functioning website. Using this hands-on, pragmatic approach, you'll explore topics such as Ajax in Grails, custom tags, and plugins. You'll dig into Grails' powerful view technology, Groovy Server Pages, and see how you can easily leverage the help offered by scaffolding to create custom user interfaces faster than you would have thought possible. Along the way, you'll learn about domain classes, controllers, and GSP views. And you'll see how Grails enables you to use powerful frameworks such as Spring and Hibernate.With Grails, you can get a lot done with little effort. With this book, you'll get a lot done as well. Get started with Grails today.What You Need:Grails 2 will run on any machine that supports Java. Grails applications can be deployed on any Java Servlet container, including Tomcat, Jetty, WebLogic, JBoss, and Websphere.

Refine Search

Showing 16,276 through 16,300 of 53,546 results