Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change
|
|
- Silvester Ramsey
- 5 years ago
- Views:
Transcription
1 Chapter01.fm Page 1 Monday, August 23, :52 PM Part I The Mechanics of Change The Mechanics of Change
2 Chapter01.fm Page 2 Monday, August 23, :52 PM
3 Chapter01.fm Page 3 Monday, August 23, :52 PM Chapter 1 Changing Software Changing Software Changing code is great. It s what we do for a living. But there are ways of changing code that make life difficult, and there are ways that make it much easier. In the industry, we haven t spoken about that much. The closest we ve gotten is the literature on refactoring. I think we can broaden the discussion a bit and talk about how to deal with code in the thorniest of situations. To do that, we have to dig deeper into the mechanics of change. Four Reasons to Change Software For simplicity s sake, let s look at four primary reasons to change software. 1. Adding a feature 2. Fixing a bug 3. Improving the design 4. Optimizing resource usage Adding Features and Fixing Bugs Adding a feature seems like the most straightforward type of change to make. The software behaves one way, and users say that the system needs to do something else also. Suppose that we are working on a web-based application, and a manager tells us that she wants the company logo moved from the left side of a page to the right side. We talk to her about it and discover it isn t quite so simple. She wants to move the logo, but she wants other changes, too. She d like to make it animated for the next release. Is this fixing a bug or adding a new feature? It depends on your point of view. From the point of view of the customer, she is definitely asking us to fix a problem. Maybe she saw the site and attended a 3
4 Chapter01.fm Page 4 Monday, August 23, :52 PM 4 CHANGING SOFTWARE Four Reasons to Change Software meeting with people in her department, and they decided to change the logo placement and ask for a bit more functionality. From a developer s point of view, the change could be seen as a completely new feature. If they just stopped changing their minds, we d be done by now. But in some organizations the logo move is seen as just a bug fix, regardless of the fact that the team is going to have to do a lot of fresh work. It is tempting to say that all of this is just subjective. You see it as a bug fix, and I see it as a feature, and that s the end of it. Sadly, though, in many organizations, bug fixes and features have to be tracked and accounted for separately because of contracts or quality initiatives. At the people level, we can go back and forth endlessly about whether we are adding features or fixing bugs, but it is all just changing code and other artifacts. Unfortunately, this talk about bugfixing and feature addition masks something that is much more important to us technically: behavioral change. There is a big difference between adding new behavior and changing old behavior. Behavior is the most important thing about software. It is what users depend on. Users like it when we add behavior (provided it is what they really wanted), but if we change or remove behavior they depend on (introduce bugs), they stop trusting us. In the company logo example, are we adding behavior? Yes. After the change, the system will display a logo on the right side of the page. Are we getting rid of any behavior? Yes, there won t be a logo on the left side. Let s look at a harder case. Suppose that a customer wants to add a logo to the right side of a page, but there wasn t one on the left side to start with. Yes, we are adding behavior, but are we removing any? Was anything rendered in the place where the logo is about to be rendered? Are we changing behavior, adding it, or both? It turns out that, for us, we can draw a distinction that is more useful to us as programmers. If we have to modify code (and HTML kind of counts as code), we could be changing behavior. If we are only adding code and calling it, we are often adding behavior. Let s look at another example. Here is a method on a Java class: public class CDPlayer { public void addtracklisting(track track) { The class has a method that enables us to add track listings. Let s add another method that lets us replace track listings.
5 Chapter01.fm Page 5 Monday, August 23, :52 PM FOUR REASONS TO CHANGE SOFTWARE 5 public class CDPlayer { public void addtracklisting(track track) { Four Reasons to Change Software public void replacetracklisting(string name, Track track) { When we added that method, did we add new behavior to our application or change it? The answer is: neither. Adding a method doesn t change behavior unless the method is called somehow. Let s make another code change. Let s put a new button on the user interface for the CD player. The button lets users replace track listings. With that move, we re adding the behavior we specified in replacetracklisting method, but we re also subtly changing behavior. The UI will render differently with that new button. Chances are, the UI will take about a microsecond longer to display. It seems nearly impossible to add behavior without changing it to some degree. Improving Design Design improvement is a different kind of software change. When we want to alter software s structure to make it more maintainable, generally we want to keep its behavior intact also. When we drop behavior in that process, we often call that a bug. One of the main reasons why many programmers don t attempt to improve design often is because it is relatively easy to lose behavior or create bad behavior in the process of doing it. The act of improving design without changing its behavior is called refactoring. The idea behind refactoring is that we can make software more maintainable without changing behavior if we write tests to make sure that existing behavior doesn t change and take small steps to verify that all along the process. People have been cleaning up code in systems for years, but only in the last few years has refactoring taken off. Refactoring differs from general cleanup in that we aren t just doing low-risk things such as reformatting source code, or invasive and risky things such as rewriting chunks of it. Instead, we are making a series of small structural modifications, supported by tests to make the code easier to change. The key thing about refactoring from a change point of view is that there aren t supposed to be any functional changes when you refactor (although behavior can change somewhat because the structural changes that you make can alter performance, for better or worse).
6 Chapter01.fm Page 6 Monday, August 23, :52 PM 6 CHANGING SOFTWARE Four Reasons to Change Software Optimization Optimization is like refactoring, but when we do it, we have a different goal. With both refactoring and optimization, we say, We re going to keep functionality exactly the same when we make changes, but we are going to change something else. In refactoring, the something else is program structure; we want to make it easier to maintain. In optimization, the something else is some resource used by the program, usually time or memory. Putting It All Together It might seem strange that refactoring and optimization are kind of similar. They seem much closer to each other than adding features or fixing bugs. But is this really true? The thing that is common between refactoring and optimization is that we hold functionality invariant while we let something else change. In general, three different things can change when we do work in a system: structure, functionality, and resource usage. Let s look at what usually changes and what stays more or less the same when we make four different kinds of changes (yes, often all three change, but let s look at what is typical): Adding a Feature Fixing a Bug Refactoring Optimizing Structure Changes Changes Changes Functionality Changes Changes Resource Usage Changes Superficially, refactoring and optimization do look very similar. They hold functionality invariant. But what happens when we account for new functionality separately? When we add a feature often we are adding new functionality, but without changing existing functionality. Adding a Feature Fixing a Bug Refactoring Optimizing Structure Changes Changes Changes New Functionality Changes Functionality Changes Resource Usage Changes
7 Chapter01.fm Page 7 Monday, August 23, :52 PM RISKY CHANGE 7 Adding features, refactoring, and optimizing all hold existing functionality invariant. In fact, if we scrutinize bug fixing, yes, it does change functionality, but the changes are often very small compared to the amount of existing functionality that is not altered. Feature addition and bug fixing are very much like refactoring and optimization. In all four cases, we want to change some functionality, some behavior, but we want to preserve much more (see Figure 1.1). Risky Change Existing Behavior New Behavior Figure 1.1 Preserving behavior. That s a nice view of what is supposed to happen when we make changes, but what does it mean for us practically? On the positive side, it seems to tell us what we have to concentrate on. We have to make sure that the small number of things that we change are changed correctly. On the negative side, well, that isn t the only thing we have to concentrate on. We have to figure out how to preserve the rest of the behavior. Unfortunately, preserving it involves more than just leaving the code alone. We have to know that the behavior isn t changing, and that can be tough. The amount of behavior that we have to preserve is usually very large, but that isn t the big deal. The big deal is that we often don t know how much of that behavior is at risk when we make our changes. If we knew, we could concentrate on that behavior and not care about the rest. Understanding is the key thing that we need to make changes safely. Preserving existing behavior is one of the largest challenges in software development. Even when we are changing primary features, we often have very large areas of behavior that we have to preserve. Risky Change Preserving behavior is a large challenge. When we need to make changes and preserve behavior, it can involve considerable risk.
8 Chapter01.fm Page 8 Monday, August 23, :52 PM 8 CHANGING SOFTWARE Risky Change To mitigate risk, we have to ask three questions: 1. What changes do we have to make? 2. How will we know that we ve done them correctly? 3. How will we know that we haven t broken anything? How much change can you afford if changes are risky? Most teams that I ve worked with have tried to manage risk in a very conservative way. They minimize the number of changes that they make to the code base. Sometimes this is a team policy: If it s not broke, don t fix it. At other times, it isn t anything that anyone articulates. The developers are just very cautious when they make changes. What? Create another method for that? No, I ll just put the lines of code right here in the method, where I can see them and the rest of the code. It involves less editing, and it s safer. It s tempting to think that we can minimize software problems by avoiding them, but, unfortunately, it always catches up with us. When we avoid creating new classes and methods, the existing ones grow larger and harder to understand. When you make changes in any large system, you can expect to take a little time to get familiar with the area you are working with. The difference between good systems and bad ones is that, in the good ones, you feel pretty calm after you ve done that learning, and you are confident in the change you are about to make. In poorly structured code, the move from figuring things out to making changes feels like jumping off a cliff to avoid a tiger. You hesitate and hesitate. Am I ready to do it? Well, I guess I have to. Avoiding change has other bad consequences. When people don t make changes often they get rusty at it. Breaking down a big class into pieces can be pretty involved work unless you do it a couple of times a week. When you do, it becomes routine. You get better at figuring out what can break and what can t, and it is much easier to do. The last consequence of avoiding change is fear. Unfortunately, many teams live with incredible fear of change and it gets worse every day. Often they aren t aware of how much fear they have until they learn better techniques and the fear starts to fade away. We ve talked about how avoiding change is a bad thing, but what is our alternative? One alternative is to just try harder. Maybe we can hire more people so that there is enough time for everyone to sit and analyze, to scrutinize all of the code and make changes the right way. Surely more time and scrutiny will make change safer. Or will it? After all of that scrutiny, will anyone know that they ve gotten it right?
1.2 Adding Integers. Contents: Numbers on the Number Lines Adding Signed Numbers on the Number Line
1.2 Adding Integers Contents: Numbers on the Number Lines Adding Signed Numbers on the Number Line Finding Sums Mentally The Commutative Property Finding Sums using And Patterns and Rules of Adding Signed
More informationTable of Laplace Transforms
Table of Laplace Transforms 1 1 2 3 4, p > -1 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Heaviside Function 27 28. Dirac Delta Function 29 30. 31 32. 1 33 34. 35 36. 37 Laplace Transforms
More information1.7 Limit of a Function
1.7 Limit of a Function We will discuss the following in this section: 1. Limit Notation 2. Finding a it numerically 3. Right and Left Hand Limits 4. Infinite Limits Consider the following graph Notation:
More informationThe name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.
Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that
More information4.7 Approximate Integration
4.7 Approximate Integration Some anti-derivatives are difficult to impossible to find. For example, 1 0 e x2 dx or 1 1 1 + x3 dx We came across this situation back in calculus I when we introduced the
More informationMr G s Java Jive. #11: Formatting Numbers
Mr G s Java Jive #11: Formatting Numbers Now that we ve started using double values, we re bound to run into the question of just how many decimal places we want to show. This where we get to deal with
More informationHow to Read AWStats. Why it s important to know your stats
How to Read AWStats Welcome to the world of owning a website. One of the things that both newbie and even old time website owners get overwhelmed by is their analytics and understanding the data. One of
More informationReliable programming
Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed
More informationHere are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.
Preface Here are my online notes for my Algebra course that I teach here at Lamar University, although I have to admit that it s been years since I last taught this course. At this point in my career I
More informationArduino IDE Friday, 26 October 2018
Arduino IDE Friday, 26 October 2018 12:38 PM Looking Under The Hood Of The Arduino IDE FIND THE ARDUINO IDE DOWNLOAD First, jump on the internet with your favorite browser, and navigate to www.arduino.cc.
More informationSpam. Time: five years from now Place: England
Spam Time: five years from now Place: England Oh no! said Joe Turner. When I go on the computer, all I get is spam email that nobody wants. It s all from people who are trying to sell you things. Email
More informationDivisibility Rules and Their Explanations
Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although
More informationWriting for Use: Intersections Between Genre and Usability
Writing for Use: Intersections Between Genre and Usability Rob Koehler This article tackles usability a very big idea in a small amount of space. And, because I don t believe in doing things in a small
More information5 R1 The one green in the same place so either of these could be green.
Page: 1 of 20 1 R1 Now. Maybe what we should do is write out the cases that work. We wrote out one of them really very clearly here. [R1 takes out some papers.] Right? You did the one here um where you
More informationThe compiler is spewing error messages.
Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are
More informationDEFERRED ACCEPTANCE 2
DEFERRED ACCEPTANCE The point of this note is to take you through the logic behind the deferred acceptance algorithm. Please read the papers associated with the links on the web page for motivation and
More informationBlackfin Online Learning & Development
Presentation Title: Multimedia Starter Kit Presenter Name: George Stephan Chapter 1: Introduction Sub-chapter 1a: Overview Chapter 2: Blackfin Starter Kits Sub-chapter 2a: What is a Starter Kit? Sub-chapter
More informationProject 1 Balanced binary
CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like
More informationFIGURING OUT WHAT MATTERS, WHAT DOESN T, AND WHY YOU SHOULD CARE
FIGURING OUT WHAT MATTERS, WHAT DOESN T, AND WHY YOU SHOULD CARE CONTENTFAC.COM As an FYI, this document is designed to go along with our video by the same name. If you haven t checked that out yet, you
More informationAdding content to your Blackboard 9.1 class
Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note
More informationPlanar Graphs and Surfaces. Graphs 2 1/58
Planar Graphs and Surfaces Graphs 2 1/58 Last time we discussed the Four Color Theorem, which says that any map can be colored with at most 4 colors and not have two regions that share a border having
More information1 SEO Synergy. Mark Bishop 2014
1 SEO Synergy 2 SEO Synergy Table of Contents Disclaimer... 3 Introduction... 3 Keywords:... 3 Google Keyword Planner:... 3 Do This First... 4 Step 1... 5 Step 2... 5 Step 3... 6 Finding Great Keywords...
More informationClean & Speed Up Windows with AWO
Clean & Speed Up Windows with AWO C 400 / 1 Manage Windows with this Powerful Collection of System Tools Every version of Windows comes with at least a few programs for managing different aspects of your
More informationStrong signs your website needs a professional redesign
Strong signs your website needs a professional redesign Think - when was the last time that your business website was updated? Better yet, when was the last time you looked at your website? When the Internet
More informationClose Your File Template
In every sale there is always a scenario where I can t get someone to respond. No matter what I do. I can t get an answer from them. When people stop responding I use the Permission To. This is one of
More informationCS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise
CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17
01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are
More informationDIRECTV Message Board
DIRECTV Message Board DIRECTV Message Board is an exciting new product for commercial customers. It is being shown at DIRECTV Revolution 2012 for the first time, but the Solid Signal team were lucky enough
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationExcel programmers develop two basic types of spreadsheets: spreadsheets
Bonus Chapter 1 Creating Excel Applications for Others In This Chapter Developing spreadsheets for yourself and for other people Knowing what makes a good spreadsheet application Using guidelines for developing
More informationProject Collaboration
Bonus Chapter 8 Project Collaboration It s quite ironic that the last bonus chapter of this book contains information that many of you will need to get your first Autodesk Revit Architecture project off
More informationThe 21 WORD . That Can Get You More Clients. Ian Brodie
The 21 WORD EMAIL That Can Get You More Clients Ian Brodie The 21 Word Email That Can Get You More Clients Hey there! Welcome to this short report on the 21 Word Email That Can Get You More Clients If
More informationCS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L
CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction At this point, you are ready to beginning programming at a lower level How do you actually write your
More informationCDs & DVDs: Different Types of Disk Explained
CDs & DVDs: Different Types of Disk Explained C 200 / 1 Don t Waste Money Buying the Wrong Type Find Out Which Disks Your PC Can Use! Your PC almost certainly has at least one CD/DVD drive. In its most
More informationExcel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller
Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing
More informationPaul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems]
1 of 9 25/04/2016 13:15 Paul's Online Math Notes Calculus III (Notes) / Applications of Partial Derivatives / Lagrange Multipliers Problems][Assignment Problems] [Notes] [Practice Calculus III - Notes
More informationIt s possible to get your inbox to zero and keep it there, even if you get hundreds of s a day.
It s possible to get your email inbox to zero and keep it there, even if you get hundreds of emails a day. It s not super complicated, though it does take effort and discipline. Many people simply need
More informationStage 11 Array Practice With. Zip Code Encoding
A Review of Strings You should now be proficient at using strings, but, as usual, there are a few more details you should know. First, remember these facts about strings: Array Practice With Strings are
More informationIf Statements, For Loops, Functions
Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements
More informationCS 4349 Lecture October 18th, 2017
CS 4349 Lecture October 18th, 2017 Main topics for #lecture include #minimum_spanning_trees. Prelude Homework 6 due today. Homework 7 due Wednesday, October 25th. Homework 7 has one normal homework problem.
More information9 R1 Get another piece of paper. We re going to have fun keeping track of (inaudible). Um How much time do you have? Are you getting tired?
Page: 1 of 14 1 R1 And this is tell me what this is? 2 Stephanie x times y plus x times y or hm? 3 R1 What are you thinking? 4 Stephanie I don t know. 5 R1 Tell me what you re thinking. 6 Stephanie Well.
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationHeuristic Evaluation of Covalence
Heuristic Evaluation of Covalence Evaluator #A: Selina Her Evaluator #B: Ben-han Sung Evaluator #C: Giordano Jacuzzi 1. Problem Covalence is a concept-mapping tool that links images, text, and ideas to
More informationCS125 : Introduction to Computer Science. Lecture Notes #11 Procedural Composition and Abstraction. c 2005, 2004 Jason Zych
CS125 : Introduction to Computer Science Lecture Notes #11 Procedural Composition and Abstraction c 2005, 2004 Jason Zych 1 Lecture 11 : Procedural Composition and Abstraction Solving a problem...with
More informationIntroduction to Programming
CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed
More informationmarketing versus marketing automation What s the difference and why should B2B marketers care?
email marketing versus marketing automation What s the difference and why should B2B marketers care? who is this white paper for? You re a B2B marketer in a company that s been using email marketing for
More informationPage design and working with frames
L E S S O N 2 Page design and working with frames Lesson objectives Suggested teaching time To a learn about designing web pages and creating framesets in your web, you will: 35-45 minutes a b c Discuss
More informationBurning CDs in Windows XP
B 770 / 1 Make CD Burning a Breeze with Windows XP's Built-in Tools If your PC is equipped with a rewritable CD drive you ve almost certainly got some specialised software for copying files to CDs. If
More information1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.
CUSTOMER PAIN POINTS 1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.NET FRAMEORK. THAT S TAKING UP SPACE ON MY HARDDRIVE
More informationVariables and Data Representation
You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented
More informationIntroduction. But what about some of the lesser known SEO techniques?
Introduction When it comes to determine out what the best SEO techniques are for your inbound marketing campaign, the most basic strategies aren t that tough to figure out. If you ve been blogging or marketing
More informationWin-Back Campaign- Re-Engagement Series
Win-Back Campaign- Re-Engagement Series At this point the re-engagement campaign has ended, so if the prospect still hasn t responded it s time to turn up the heat. NOTE: In the emails below, everywhere
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationCOPYRIGHTED MATERIAL. Getting Started with Google Analytics. P a r t
P a r t I Getting Started with Google Analytics As analytics applications go, Google Analytics is probably the easiest (or at least one of the easiest) available in the market today. But don t let the
More informationKeeping Sane - Managing your
WITH KEVIN Keeping Sane - Managing your Email TODAY S COFFEE TALK Email is a wonderful tool for sending and receiving a lot of information quickly and securely. However, it s important that your personal
More informationWrite for your audience
Comments Write for your audience Program documentation is for programmers, not end users There are two groups of programmers, and they need different kinds of documentation Some programmers need to use
More informationSitecore Projects with GatherContent
How to prepare content for Sitecore Projects with GatherContent By Jennifer Davies, Content Strategist, Razorfish Table of Contents 4 Introduction Guide overview 5 Step 1 Define your content structure
More informationshortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge
shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically
More informationUsability Test Report: Requesting Library Material 1
Usability Test Report: Requesting Library Material 1 Summary Emily Daly and Kate Collins conducted usability testing on the processes of requesting library material. The test was conducted at the temporary
More informationAn Introduction to How PGP Works
An Introduction to How PGP Works Revision: 0.01 Author: Kenneth Robert Ballou Date 2005-07-21 Document Change History Change Description/Reason Changed By Date Revision Initial Creation of Document Kenneth
More informationTHE 18 POINT CHECKLIST TO BUILDING THE PERFECT LANDING PAGE
THE 18 POINT CHECKLIST TO BUILDING THE PERFECT LANDING PAGE The 18 point checklist to building the Perfect landing page Landing pages come in all shapes and sizes. They re your metaphorical shop front
More informationXP: Backup Your Important Files for Safety
XP: Backup Your Important Files for Safety X 380 / 1 Protect Your Personal Files Against Accidental Loss with XP s Backup Wizard Your computer contains a great many important files, but when it comes to
More information2013 Association Marketing Benchmark Report
2013 Association Email Marketing Benchmark Report Part I: Key Metrics 1 TABLE of CONTENTS About Informz.... 3 Introduction.... 4 Key Findings.... 5 Overall Association Metrics... 6 Results by Country of
More informationWorking with Siriusware Technical Support
Working with Siriusware Technical Support This document presents the information you need to get the most out of Siriusware Technical Support. 24/7 coverage Siriusware offers technical support 7 days a
More informationCS 4349 Lecture August 21st, 2017
CS 4349 Lecture August 21st, 2017 Main topics for #lecture include #administrivia, #algorithms, #asymptotic_notation. Welcome and Administrivia Hi, I m Kyle! Welcome to CS 4349. This a class about algorithms.
More information2. Click on the Freeform Pen Tool. It looks like the image to the right. If it s not showing, right click on that square and choose it from the list.
This tutorial will walk you through how to use Paths in Photoshop. It explains the general workings of paths, as well as how to use them to do specific tasks. Tasks such as how to create vector shapes
More informationDrawing Hands, by M. C. Escher (lithograph, 1948)
Drawing Hands, by M. C. Escher (lithograph, 1948) 12 The Leap of Faith In the combining method, we build up to a recursive procedure by writing a number of special-case nonrecursive procedures, starting
More informationCS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych
CS125 : Introduction to Computer Science Lecture Notes #38 and #39 Quicksort c 2005, 2003, 2002, 2000 Jason Zych 1 Lectures 38 and 39 : Quicksort Quicksort is the best sorting algorithm known which is
More informationThe Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering
The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go
More informationHow & Why We Subnet Lab Workbook
i How & Why We Subnet Lab Workbook ii CertificationKits.com How & Why We Subnet Workbook Copyright 2013 CertificationKits LLC All rights reserved. No part of this book maybe be reproduced or transmitted
More informationHello World! Computer Programming for Kids and Other Beginners. Chapter 1. by Warren Sande and Carter Sande. Copyright 2009 Manning Publications
Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande Chapter 1 Copyright 2009 Manning Publications brief contents Preface xiii Acknowledgments xix About this
More informationAnatomy of a Standard Transcript
Anatomy of a Standard Transcript Maddie: Hi everyone! Throughout this joint project, Eli, Christina, & I all had to use technical standards to make sure our products met the necessary requirements & specifications,
More informationLeakDAS Version 4 The Complete Guide
LeakDAS Version 4 The Complete Guide SECTION 4 LEAKDAS MOBILE Second Edition - 2014 Copyright InspectionLogic 2 Table of Contents CONNECTING LEAKDAS MOBILE TO AN ANALYZER VIA BLUETOOTH... 3 Bluetooth Devices...
More informationClient Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module
Basic Class Design Goal of OOP: Reduce complexity of software development by keeping details, and especially changes to details, from spreading throughout the entire program. Actually, the same goal as
More informationHello, welcome to creating a widget in MyUW. We only have 300 seconds, so let s get going.
Hello, welcome to creating a widget in MyUW. We only have 300 seconds, so let s get going. And I ve included a slide about me. You might wonder why, since I only have five minutes, but don t worry. Widgets
More information12 Follow-up Templates
12 Follow-up Email Templates that help turn prospects into customers in 2018 When you look at the sales process of most B2B sales teams, there s typically A LOT of things that you could improve. I generally
More informationFor Volunteers An Elvanto Guide
For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer
More informationHow to Get Your Inbox to Zero Every Day
How to Get Your Inbox to Zero Every Day MATT PERMAN WHATSBESTNEXT.COM It s possible to get your email inbox to zero and keep it there, even if you get hundreds of emails a day. It s not super complicated,
More informationCOSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18
COSC 2P95 Introduction Week 1 Brock University Brock University (Week 1) Introduction 1 / 18 Lectures and Labs Lectures are Thursdays, from 3pm 5pm (AS/STH 217) There are two lab sections Lab 1 is Mondays,
More informationOutlook is easier to use than you might think; it also does a lot more than. Fundamental Features: How Did You Ever Do without Outlook?
04 537598 Ch01.qxd 9/2/03 9:46 AM Page 11 Chapter 1 Fundamental Features: How Did You Ever Do without Outlook? In This Chapter Reading e-mail Answering e-mail Creating new e-mail Entering an appointment
More informationCOPYRIGHTED MATERIAL. An Introduction to Computers That Will Actually Help You in Life. Chapter 1. Memory: Not Exactly 0s and 1s. Memory Organization
Chapter 1 An Introduction to Computers That Will Actually Help You in Life Memory: Not Exactly 0s and 1s Memory Organization A Very Simple Computer COPYRIGHTED MATERIAL 2 Chapter 1 An Introduction to Computers
More informationtextures not patterns
This tutorial will walk you through how to create a seamless texture in Photoshop. I created the tutorial using Photoshop CS2, but it should work almost exactly the same for most versions of Photoshop
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code
More informationAlthough many business owners think that Virtualization and Disaster Recovery (DR) are two separate services, the
E-NEWS www.e-safetech.om 1-412-944-2402 2018 E-Safe Technologies All rights reserved. August 2018 In this issue Quick Guide to Virtualization as a DR plan Virtualization Security Risks and Management E-Safe
More informationCOSC 2P91. Bringing it all together... Week 4b. Brock University. Brock University (Week 4b) Bringing it all together... 1 / 22
COSC 2P91 Bringing it all together... Week 4b Brock University Brock University (Week 4b) Bringing it all together... 1 / 22 A note on practicality and program design... Writing a single, monolithic source
More informationPrinciples of Algorithm Design
Principles of Algorithm Design When you are trying to design an algorithm or a data structure, it s often hard to see how to accomplish the task. The following techniques can often be useful: 1. Experiment
More informationUsing GitHub to Share with SparkFun a
Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing
More informationSpectroscopic Analysis: Peak Detector
Electronics and Instrumentation Laboratory Sacramento State Physics Department Spectroscopic Analysis: Peak Detector Purpose: The purpose of this experiment is a common sort of experiment in spectroscopy.
More informationOutline Key Management CS 239 Computer Security February 9, 2004
Outline Key Management CS 239 Computer Security February 9, 2004 Properties of keys Key management Key servers Certificates Page 1 Page 2 Introduction Properties of Keys It doesn t matter how strong your
More informationIAE Professional s (02)
IAE Professional Emails (02) TASK ONE: There are three different styles of writing when it comes to communication via email: Formal This is the style of an old-fashioned letter. Ideas are presented politely
More information3D printing Is it Good Enough for Scale Model Boat Builders?
Lew Zerfas Web Site: LewsModelBoats.org Email: info@lewsmodelboat.org Phone: 727-698-4400 a builder of scale model operating boats, including kits, highly modified kits, and scratch built models. A retired
More informationA Guide to Condor. Joe Antognini. October 25, Condor is on Our Network What is an Our Network?
A Guide to Condor Joe Antognini October 25, 2013 1 Condor is on Our Network What is an Our Network? The computers in the OSU astronomy department are all networked together. In fact, they re networked
More informationPublic Meeting Agenda Formatting Best Practices
DEFINITIVE GUIDE Public Meeting Agenda Formatting Best Practices In this guide, we will first walk you through some best practices with text and images. Then, we will show you how to execute the best practices
More informationNeed a Website? HERE S A SHORTCUT TO MAKING A LANDING PAGE THAT WILL HELP YOU GROW YOUR LIST
Need a Website? HERE S A SHORTCUT TO MAKING A LANDING PAGE THAT WILL HELP YOU GROW YOUR EMAIL LIST mandy marksteiner 505-515-700 email@mandymarksteiner.com Putting together a website is a lot of work.
More informationFractions and their Equivalent Forms
Fractions Fractions and their Equivalent Forms Little kids use the concept of a fraction long before we ever formalize their knowledge in school. Watching little kids share a candy bar or a bottle of soda
More informationCHAPTER NINE. Messaging and texting. Introduction. Messaging is accessible
Faughnan / SPHONE4ALL / 1 CHAPTER NINE Messaging and texting Introduction When is package coming? Hi do you need me to snowblow driveway? Could you come to my room? We are watching duck dynasty. These
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More informationWhat is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)
1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?
More informationVirtualization. Q&A with an industry leader. Virtualization is rapidly becoming a fact of life for agency executives,
Virtualization Q&A with an industry leader Virtualization is rapidly becoming a fact of life for agency executives, as the basis for data center consolidation and cloud computing and, increasingly, as
More informationENGR 40M Project 3c: Switch debouncing
ENGR 40M Project 3c: Switch debouncing For due dates, see the overview handout 1 Introduction This week, you will build on the previous two labs and program the Arduino to respond to an input from the
More information