Rubber Duck Debugging
   HOME
*



picture info

Rubber Duck Debugging
In software engineering, rubber duck debugging (or rubberducking) is a method of debugging code by articulating a problem in spoken or written natural language. The name is a reference to a story in the book ''The Pragmatic Programmer'' in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck. p. 95, footnote. Many other terms exist for this technique, often involving different (usually) inanimate objects, or pets such as a dog or a cat. Many programmers have had the experience of explaining a problem to someone else, possibly even to someone who knows nothing about programming, and then hitting upon the solution in the process of explaining the problem. In describing what the code is supposed to do and observing what it actually does, any incongruity between these two becomes apparent.. More generally, teaching a subject forces its evaluation from different perspectives and can provide a deeper und ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Rubber Duck Assisting With Debugging
Rubber, also called India rubber, latex, Amazonian rubber, ''caucho'', or ''caoutchouc'', as initially produced, consists of polymers of the organic compound isoprene, with minor impurities of other organic compounds. Thailand, Malaysia, and Indonesia are three of the leading rubber producers. Types of polyisoprene that are used as natural rubbers are classified as elastomers. Currently, rubber is harvested mainly in the form of the latex from the rubber tree (''Hevea brasiliensis'') or others. The latex is a sticky, milky and white colloid drawn off by making incisions in the bark and collecting the fluid in vessels in a process called "tapping". The latex then is refined into the rubber that is ready for commercial processing. In major areas, latex is allowed to coagulate in the collection cup. The coagulated lumps are collected and processed into dry forms for sale. Natural rubber is used extensively in many applications and products, either alone or in combination wit ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

April Fools' Day
April Fools' Day or All Fools' Day is an annual custom on 1 April consisting of practical jokes and hoaxes. Jokesters often expose their actions by shouting "April Fools!" at the recipient. Mass media can be involved in these pranks, which may be revealed as such the following day. The custom of setting aside a day for playing harmless pranks upon one's neighbour has been relatively common in the world historically. Origins Although the origins of April Fools’ is unknown, there are many theories surrounding it. A disputed association between 1 April and foolishness is in Geoffrey Chaucer's '' The Canterbury Tales'' (1392). In the " Nun's Priest's Tale", a vain cock Chauntecleer is tricked by a fox on "Since March began thirty days and two," i.e. 32 days since March began, which is 1 April. However, it is not clear that Chaucer was referencing 1 April since the text of the "Nun's Priest's Tale" also states that the story takes place on the day when the sun is "in the sign ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as ''debuggers''. Etymology The terms "bug" and "debugging" are popularly attributed to Admiral Grace Hopper in the 1940s. While she was working on a Mark II computer at Harvard University, her associates discovered a moth stuck in a relay and thereby impeding operation, whereupon she remarked that they were "debugging" the system. However, the term "bug", in the sense of "technical error", dates back at least to 1878 and Thomas Edison who describes the "litt ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Rogerian Method
Rogerian argument (or Rogerian rhetoric) is a rhetorical and conflict resolution strategy based on empathizing with others, seeking common ground and mutual understanding and learning, while avoiding the negative effects of extreme attitude polarization. The term refers to the psychologist Carl Rogers, whose client-centered therapy has also been called Rogerian therapy. Since 1970, rhetoricians have applied the ideas of Rogers—with contributions by Anatol Rapoport—to rhetoric and argumentation, producing Rogerian argument. A key principle of Rogerian argument is that, instead of advocating one's own position and trying to refute the other's position, one tries to state the other's position with as much care as one would have stated one's own position, emphasizing what is strong or valid in the other's argument. To this principle, Rapoport added other principles that are sometimes called " Rapoport's rules". Rhetoricians have designed various methods for applying these ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Pointing And Calling
Pointing is a gesture specifying a direction from a person's body, usually indicating a location, person, event, thing or idea. It typically is formed by extending the arm, hand, and index finger, although it may be functionally similar to other hand gestures. Types of pointing may be subdivided according to the intention of the person, as well as by the linguistic function it serves. Pointing typically develops within the first two years of life in humans, and plays an important role in language development and reading in children. It is central to the use of sign language, with a large number of signs being some variation on pointing. The nature of pointing may differ for children who have autism or who are deaf, and may also vary by gender. It is typically not observed in children who are blind from birth. Pointing may vary substantially across cultures, with some having many distinct types of pointing, both with regard to the physical gestures employed and their interpreta ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Think Aloud Protocol
A think-aloud (or thinking aloud) protocol is a method used to gather data in usability testing in product design and development, in psychology and a range of social sciences (e.g., reading, writing, translation research, decision making, and process tracing). Description Think-aloud protocols involve participants thinking aloud as they are performing a set of specified tasks. Participants are asked to say whatever comes into their mind as they complete the task. This might include what they are looking at, thinking, doing, and feeling. This gives observers insight into the participant's cognitive processes (rather than only their final product), to make thought processes as explicit as possible during task performance. In a formal research protocol, all verbalizations are transcribed and then analyzed. In a usability testing context, observers are asked to take notes of what participants say and do, without attempting to interpret their actions and words, and especially noting ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Software Walkthrough
In software engineering, a walkthrough or walk-through is a form of software peer review "in which a designer or programmer leads members of the development team and other interested parties through a software product, and the participants ask questions and make comments about possible errors, violation of development standards, and other problems".IEEE Std. 1028-1997, ''IEEE Standard for Software Reviews'', clause 3.8 "Software product" normally refers to some kind of technical document. As indicated by the IEEE definition, this might be a software design document or program source code, but use cases, business process definitions, test case specifications, and a variety of other technical documentation may also be walked through. A walkthrough differs from software technical reviews in its openness of structure and its objective of familiarization. It differs from software inspection in its ability to suggest direct alterations to the product reviewed. It lacks of direct focus ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Desk Checking
Informal methods of validation and verification are some of the more frequently used in modeling and simulation. They are called informal because they are more qualitative than quantitative. While many methods of validation or verification rely on numerical results, informal methods tend to rely on the opinions of experts to draw a conclusion. While numerical results are not the primary focus, this does not mean that the numerical results are completely ignored. There are several reasons why an informal method might be chosen. In some cases, informal methods offer the convenience of quick testing to see if a model can be validated. In other instances, informal methods are simply the best available option. Informal methods are not less effective than formal methods and should be performed with the same discipline and structure that one would expect in "formal" methods. When executed properly, solid conclusions can be made.Balci, Osman ; (1997) ''VERIFICATION, VALIDATION AND ACC ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Socratic Method
The Socratic method (also known as method of Elenchus, elenctic method, or Socratic debate) is a form of cooperative argumentative dialogue between individuals, based on asking and answering questions to stimulate critical thinking and to draw out ideas and underlying presuppositions. It is named after the Classical Greek philosopher Socrates and is introduced by him in Plato's Theaetetus as midwifery ( maieutics) because it is employed to bring out definitions implicit in the interlocutors' beliefs, or to help them further their understanding. The Socratic method is a method of hypothesis elimination, in that better hypotheses are found by steadily identifying and eliminating those that lead to contradictions. The Socratic method searches for general commonly held truths that shape beliefs and scrutinizes them to determine their consistency with other beliefs. The basic form is a series of questions formulated as tests of logic and fact intended to help a person or group di ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Pair Programming
Pair programming is an software development technique in which two programmers work together at one workstation. One, the ''driver'', writes code while the other, the ''observer'' or ''navigator'', reviews each line of code as it is typed in. The two programmers switch roles frequently. While reviewing, the observer also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address. This is intended to free the driver to focus all of their attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide. Economics Pair programming increases the person-hours required to deliver code compared to programmers working individually. However, the resulting code has fewer defects. Along with code development time, other factors like field support costs and quality assurance also figure into the return on investment. Pair programming might theoretically offset these expenses by re ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Code Review
Code review (sometimes referred to as peer review) is a software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interruption of implementation. At least one of the persons must not be the code's author. The persons performing the checking, excluding the author, are called "reviewers". Although direct discovery of quality problems is often the main goal, code reviews are usually performed to reach a combination of goals: * ''Better code quality'' improve internal code quality and maintainability (readability, uniformity, understandability, etc.) * ''Finding defects'' improve quality regarding external aspects, especially correctness, but also find performance problems, security vulnerabilities, injected malware, ... * ''Learning/Knowledge transfer'' help in transferring knowledge about the codebase, solution approaches, expectations regarding quality, e ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Malware
Malware (a portmanteau for ''malicious software'') is any software intentionally designed to cause disruption to a computer, server, client, or computer network, leak private information, gain unauthorized access to information or systems, deprive access to information, or which unknowingly interferes with the user's computer security and privacy. By contrast, software that causes harm due to some deficiency is typically described as a software bug. Malware poses serious problems to individuals and businesses on the Internet. According to Symantec's 2018 Internet Security Threat Report (ISTR), malware variants number has increased to 669,947,865 in 2017, which is twice as many malware variants as in 2016. Cybercrime, which includes malware attacks as well as other crimes committed by computer, was predicted to cost the world economy $6 trillion USD in 2021, and is increasing at a rate of 15% per year. Many types of malware exist, including computer viruses, worms, Trojan horses, ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]