Professional Test Driven Development with C#: Developing Real World Applications with Tdd
James Bender - 2011
This hands-on guide provides invaluable insight for creating successful test-driven development processes. With source code and examples featured in both C# and .NET, the book walks you through the TDD methodology and shows how it is applied to a real-world application. You'll witness the application built from scratch and details each step that is involved in the development, as well as any problems that were encountered and the solutions that were applied.Clarifies the motivation behind test-driven development (TDD), what it is, and how it works Reviews the various steps involved in developing an application and the testing that is involved prior to implementing the functionality Discusses unit testing and refactoring Professional Test-Driven Development with C# shows you how to create great TDD processes right away.
Java 8 Lambdas: Pragmatic Functional Programming
Richard Warburton - 2014
Starting with basic examples, this book is focused solely on Java 8 language changes and related API changes, so you don’t need to buy and read a 900 page book in order to brush up. Lambdas make a programmer's job easier, and this book will teach you how. Coverage includes introductory syntax for lambda expressions, method references that allow you to reuse existing named methods from your codebase, and the collection library in Java 8.
The Past Present and Future of JavaScript
Axel Rauschmayer - 2012
Now, hopes and expectations for JavaScript’s future are considerable.In this insightful report, Dr. Axel Rauschmayer explains how the combination of several technologies and opportunities in the past 15 years turned JavaScript’s fortunes. With that as a backdrop, he provides a detailed look at proposed new features and fixes in the next version, ECMAScript.next, and then presents his own JavaScript wish list—such as an integrated IDE.
Building Cloud Apps with Microsoft Azure: Best Practices for DevOps, Data Storage, High Availability, and More (Developer Reference)
Scott Guthrie - 2014
The patterns apply to the development process as well as to architecture and coding practices. The content is based on a presentation developed by Scott Guthrie and delivered by him at the Norwegian Developers Conference (NDC) in June of 2013 (part 1, part 2), and at Microsoft Tech Ed Australia in September 2013 (part 1, part 2). Many others updated and augmented the content while transitioning it from video to written form. Who should read this book Developers who are curious about developing for the cloud, are considering a move to the cloud, or are new to cloud development will find here a concise overview of the most important concepts and practices they need to know. The concepts are illustrated with concrete examples, and each chapter includes links to other resources that provide more in-depth information. The examples and the links to additional resources are for Microsoft frameworks and services, but the principles illustrated apply to other web development frameworks and cloud environments as well. Developers who are already developing for the cloud may find ideas here that will help make them more successful. Each chapter in the series can be read independently, so you can pick and choose topics that you're interested in. Anyone who watched Scott Guthrie's "Building Real World Cloud Apps with Windows Azure" presentation and wants more details and updated information will find that here. Assumptions This ebook expects that you have experience developing web applications by using Visual Studio and ASP.NET. Familiarity with C# would be helpful in places.
Jenkins: The Definitive Guide
John Ferguson Smart - 2011
This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins—and demonstrates how CI can save you time, money, and many headaches.
Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you'll discover how easy it is to set up a CI service with Jenkins.
Learn how to install, configure, and secure your Jenkins server
Organize and monitor general-purpose build jobs
Integrate automated tests to verify builds, and set up code quality reporting
Establish effective team notification strategies and techniques
Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs
Manage a farm of Jenkins servers to run distributed builds
Implement automated deployment and continuous delivery
97 Things Every Programmer Should Know: Collective Wisdom from the Experts
Kevlin Henney - 2010
With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and principles that you can apply to all kinds of projects.A few of the 97 things you should know:"Code in the Language of the Domain" by Dan North"Write Tests for People" by Gerard Meszaros"Convenience Is Not an -ility" by Gregor Hohpe"Know Your IDE" by Heinz Kabutz"A Message to the Future" by Linda Rising"The Boy Scout Rule" by Robert C. Martin (Uncle Bob)"Beware the Share" by Udi Dahan
Grave Decisions
Stephen R. King - 2016
Follow the terror and drama in five short stories that will bring you gravely close to your fears. The winds are howling, can you hear the screams? WARNING: Not the famous Stephen King from Maine.
Refactoring to Patterns
Joshua Kerievsky - 2004
In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively. "
Hadoop Explained
Aravind Shenoy - 2014
Hadoop allowed small and medium sized companies to store huge amounts of data on cheap commodity servers in racks. The introduction of Big Data has allowed businesses to make decisions based on quantifiable analysis. Hadoop is now implemented in major organizations such as Amazon, IBM, Cloudera, and Dell to name a few. This book introduces you to Hadoop and to concepts such as ‘MapReduce’, ‘Rack Awareness’, ‘Yarn’ and ‘HDFS Federation’, which will help you get acquainted with the technology.
Working with UNIX Processes
Jesse Storimer - 2011
Want to impress your coworkers and write the fastest, most efficient, stable code you ever have? Don't reinvent the wheel. Reuse decades of research into battle-tested, highly optimized, and proven techniques available on any Unix system.This book will teach you what you need to know so that you can write your own servers, debug your entire stack when things go awry, and understand how things are working under the hood.http://www.jstorimer.com/products/wor...
Hidden In Plain Sight 10: How To Program A Quantum Computer
Andrew H. Thomas - 2018
This book contains an introduction to quantum mechanics, with complete instructions and videos showing you how to program a real quantum computer, provided by IBM.
Diary Of An 80s Computer Geek: A Decade of Micro Computers, Video Games & Cassette Tape
Steven Howlett - 2014
The 1980s were certainly loud, often garish and utterly fabulous - no matter how embarrassing the outfits were.There are so many elements, which made the 80s a truly great decade, but one of the greatest contributions, if not the greatest, is the mass introduction of affordable 8-bit home micro computers.These curious machines of geekdom changed the way we regarded computers and technology. No longer were they the sole perverse of tweed jacket clad scientists sporting unruly beards, micro computers were now forming a staple inventory in millions of homes.Much of the technology that we enjoy today, such as desktop computers, notebooks, tablets, gaming consoles and smart phones, all of which are often taken for granted, can be traced back to this innovative decade.If you were a child of the 80s and remember the joy of receiving your very first home computer or maybe a young adult who fondly remembers the excitement, then you will appreciate this unabashed reminiscence of a simpler time whose adolescent technological was on the cusp of great advancements.This book is intended as celebration and reflection of all the computer technology that made the 80s such a wonderful, pioneering period and follows the journey of a self confessed, teenaged computer geek who experienced and enjoyed every ground breaking moment, including publishing his own software.10 Print “The 80s are fab!”20 Goto 10RunAuthor's Comments:The current edition is dated 31st January 2016 and has been edited based on customer feedback.
What is DevOps?
Mike Loukides - 2012
Old-style system administrators may be disappearing in the face of automation and cloud computing, but operations have become more significant than ever. As this O'Reilly Radar Report explains, we're moving into a more complex arrangement known as "DevOps."Mike Loukides, O'Reilly's VP of Content Strategy, provides an incisive look into this new world of operations, where IT specialists are becoming part of the development team. In an environment with thousands of servers, these specialists now write the code that maintains the infrastructure. Even applications that run in the cloud have to be resilient and fault tolerant, need to be monitored, and must adjust to huge swings in load. That was underscored by Amazon's EBS outage last year.From the discussions at O'Reilly's Velocity Conference, it's evident that many operations specialists are quickly adapting to the DevOps reality. But as a whole, the industry has just scratched the surface. This report tells you why.
Email Etiquette: Netiquette in the Information Age
David Tuffley - 2011
While there have been attempts to establish one standard or another as the default, there is no common agreement. So beware people telling you there is one right way, they are assuming too much. As a general rule though, netiquette involves the same principles as plain old etiquette -- basic courtesy, respect and ethics. Treat people the way you would want to be treated yourself. By following the principles outlined below, the recipient of your email will be more likely to read and act, if not be favorably impressed by your message:Subject line to summarise the message. Make the Subject line summarise the body of the e-mail. Ask yourself, 'will the recipient(s) know what this e-mail is about'. For example, Instead of Subject: Exam, say Subject: Location of 1508INT Exam, 23 July 2011.Don't assume the recipient knows the background. Include enough contextual information at the beginning of the e-mail for the recipient to know what the matter is about. If in doubt, put background information in. For example, don't say can I have an extension for my assignment?, instead say I refer to the CIT3622 assignment 1 that I handed in late. I was ill and have a doctor's certificate. May I ask for an extension on the basis that I was too ill to do it on time?Keep it concise. Keep messages brief and to the point, but not so brief that it causes the problem outlined in the previous point. This includes deleting any irrelevant text when an email has been back and forth several times. No-one wants to scroll down through pages of text in order to reach the message they want to read. If the sense of the email will be lost by deleting that text, however, leave it in.Reply within 24 hours. Try to reply within 24 hours, less if possible. In fact, get in the habit of replying immediately -- it is the polite thing to do, and the recipient will appreciate a prompt reply. It also makes you look efficient. The longer you leave it to reply, the more likely you will forget or have too big a log-jam of unanswered email.Allow time for a reply. E-mail messages are not usually required to be answered immediately, though it is good practice if you do. Before sending a reminder, allow some time for a response, some times even a few days. Not everyone is online 24 hours a day.Use the BCC field when sending bulk email. If you're sending email to a whole list of people, put their email addresses in the BCC field. That way, the privacy of the recipient is respected, and spammers cannot harvest the email addresses for their dastardly purposes.
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
Jez Humble - 2010
This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours-- sometimes even minutes-no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the "deployment pipeline," an automated process for managing all changes, from check-in to release. Finally, they discuss the "ecosystem" needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes - Automating all facets of building, integrating, testing, and deploying software - Implementing deployment pipelines at team and organizational levels - Improving collaboration between developers, testers, and operations - Developing features incrementally on large and distributed teams - Implementing an effective configuration management strategy - Automating acceptance testing, from analysis to implementation - Testing capacity and other non-functional requirements - Implementing continuous deployment and zero-downtime releases - Managing infrastructure, data, components and dependencies - Navigating risk management, compliance, and auditing Whether you're a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever--so you can deliver value to your business rapidly and reliably.