In plain English, what is recursion?

Question: The idea of recursion is not very common in real world. So, it seems a bit confusing to the novice programmers. Though, I guess, they become used to the concept gradually. So, what can be a nice explanation for them to grasp the idea easily?
Comment: See also: http://programmers.stackexchange.com/questions/25052/in-plain-english-what-is-recursion
Comment: Recursion is when a function can call itself.  "If you totally understand namespaces and scope and how parameters are passed to a function, then you know recursion already.  I can show examples, but you should be able to figure out how they work on your own."  Students generally struggle with recursion not so much because it's confusing, but because they don't have a firm grasp of variable scope/namespace.  Before diving into recursion, make sure the students can properly trace through a program where you've purposely given variables at different scopes the same name to confuse them.
Comment: http://en.wikipedia.org/wiki/Turtles_all_the_way_down
Comment: To Understand Recursion, You Must First Understand Recursion
Comment: More information is being shared on this subject at [Resources for improving your comprehension of recursion?](http://programmers.stackexchange.com/q/57243/15466)
Comment: See also: http://stackoverflow.com/questions/3021/what-is-recursion-and-when-should-i-use-it
Comment: There is a famous book that tackles the difficult problem of recursion *in the real world*: https://en.wikipedia.org/wiki/Gödel,_Escher,_Bach
Comment: https://softwareengineering.stackexchange.com/questions/25052/in-plain-english-what-is-recursion
Comment: Mirror in a mirror.  Dream in a dream. Story in a story.
Answer: To explain recursion, I use a combination of different explanation, usually to both try to:

explain the concept,
explain why it matters,
explain how to get it.

For starters, Wolfram|Alpha defines it in more simple terms than Wikipedia:

An expression such that each term is generated by repeating a particular mathematical operation.

Maths
If your student (or the person you explain too, from now on I'll say student) has at least some mathematical background, they've obviously already encountered recursion by studying series and their notion of recursivity and their recurrence relation.
A very good way to start is then to demonstrate with a series and tell that it's quite simply what recursion is about:

a mathematical function...
... that calls itself to compute a value corresponding to an n-th element...
... and which defines some boundaries.

Usually, you either get a "huh huh, whatev'" at best because they still do not use it, or more likely just a very deep snore.

Coding Examples
For the rest, it's actually a detailed version of what I presented in the Addendum of my answer for the question you pointed to regarding pointers (bad pun).
At this stage, my students usually know how to print something to the screen. Assuming we are using C, they know how to print a single char using write or printf. They also know about control loops.
I usually resort to a few repetitive and simple programming problems until they get it:

the factorial operation,
an alphabet printer,
a reversed alphabet printer,
the exponentation operation.

Factorial
Factorial is a very simple math concept to understand, and the implementation is very close to its mathematical representation. However, they might not get it at first.

Alphabets
The alphabet version is interesting to teach them to think about the ordering of their recursive statements. Like with pointers, they will just throw lines randomly at you. The point is to bring them to the realization that a loop can be inverted by either modifying the conditions OR by just inverting the order of the statements in your function. That's where printing the alphabet helps, as it's something visual for them. Simply have them write a function that will print one character for each call, and calls itself recursively to write the next (or previous) one.
FP fans, skip the fact that printing stuff to the output stream is a side effect for now... Let's not get too annoying on the FP-front. (But if you use a language with list support, feel free to concatenate to a list at each iteration and just print the final result. But usually I start them with C, which is unfortunately not the best for this sort of problems and concepts).
Exponentiation
The exponentiation problem is slightly more difficult (at this stage of learning). Obviously the concept is exactly the same as for a factorial and there is no added complexity... except that you have multiple parameters. And that is usually enough to confuse people and throw them off at the beginning.
Its simple form:

can be expressed like this by recurrence:

Harder
Once these simple problems have been shown AND re-implemented in tutorials, you can give slightly more difficult (but very classic) exercises:

The Fibonacci numbers,
The Greatest Common Divisor,
The 8-Queens problem,
The Towers of Hanoi game,
And if you have a graphical environment (or can provide code stubs for it or for a terminal output or they can manage that already), things like:

Koch's Snow Flake Fractal,
Sierpinski's Triangle.

And for for practical examples, consider writing:

a tree traversal algorithm,
a simple mathematical expression parser,
a minesweeper game.

Note: Again, some of these really aren't any harder... They just approach the problem from exactly the same angle, or a slightly different one. But practice makes perfect.

Helpers
A Reference
Some reading never hurts. Well it will at first, and they'll feel even more lost. It's the sort of thing that grows on you and that sits in the back of your head until one day your realize that you finally get it. And then you think back of these stuff you read. The recursion,  recursion in Computer Science and recurrence relation pages on Wikipedia would do for now.
Level/Depth
Assuming your students do not have much coding experience, provide code stubs. After the first attempts, give them a printing function that can display the recursion level. Printing the numerical value of the level helps.
The Stack-as-Drawers Diagram
Indenting a printed result (or the level's output) helps as well, as it gives another visual representation of what your program is doing, opening and closing stack contexts like drawers, or folders in a file system explorer.
Recursive Acronyms
If your student is already a bit versed into computer culture, they might already use some projects/softwares with names using recursive acronyms. It's been a tradition going around for some time, especially in GNU projects. Some examples include:
Recursive:

GNU - "GNU's Not Unix"
Nagios - "Nagios Ain't Gonna Insist On Sainthood"
PHP - "PHP Hypertext Preprocessor" (and originall "Personal Home Page")
Wine - "Wine Is Not an Emulator"
Zile - "Zile Is Lossy Emacs"

Mutually Recursive:

HURD - "HIRD of Unix-Replacing Daemons" (where HIRD is "HURD of Interfaces representing Depth")

Have them try to come up with their own.
Similarly, there are many occurrences of recursive humor, like Google's recursive search correction. For more information on recursion, read this answer.

Pitfalls and Further Learning
Some issues that people usually struggle with and for which you need to know answers.
Why, oh God Why???
Why would you do that? A good but non-obvious reason is that it is often simpler to express a problem that way. A not-so-good but obvious reason is that it often takes less typing (don't make them feel soooo l33t for just using recursion though...).
Some problems are definitely easier to solve when using a recursive approach. Typically, any problem you can solve using a Divide and Conquer paradigm will fit a multi-branched recursion algorithm.
What's N again??
Why is my n or (whatever your variable's name) different every time? Beginners usually have a problem understanding what a variable and a parameter are, and how to things named n in your program can have different values. So now if this value is in the control loop or recursion, that's even worse! Be nice and do not use the same variable names everywhere, and make it clear that parameters are just variables.
End Conditions
How do I determine my end condition? That's easy, just have them say the steps out loud. For instance for the factorial start from 5, then 4, then ... until 0.
The Devil is in the Details
Do not talk to early abut things like tail call optimization. I know, I know, TCO is nice, but they don't care at first. Give them some time to wrap their heads around the process in a way that works for them. Feel free to shatter their world again later on, but give them a break.
Similarly, don't talk straight from the first lecture about the call stack and its memory consumption and ... well... the stack overflow. I often tutor students privately who show me lectures where they have 50 slides about everything there's to know about recursion when they can barely write a loop correctly at this stage. That's a good example of how a reference will help later but right now just confuses you deeply.
But please, in due time, make it clear that there are reasons to go the iterative or recursive route.
Mutual Recursion
We've seen that functions can be recursive, and even that they can have multiple call points (8-queens, Hanoi, Fibonacci or even an exploration algorithm for a minesweeper). But what about mutually recursive calls? Start with maths here as well. f(x) = g(x) + h(x) where g(x) = f(x) + l(x) and h and l just do stuff.
Starting with just mathematical series makes it easier to write and implement as the contract is clearly defined by the expressions. For instance, the Hofstadter Female and Male Sequences:

However in terms of code, it is to be noted that the implementation of a mutually recursive solution often leads to code duplication and should rather be streamlined into a single recursive form (See Peter Norvig's Solving Every Sudoku Puzzle.
Comment: @Gulshan, I think this answer is about as comprehensive as any is going to be and is easily 'skimmed' by a casual reader. Hence, it gets a `static unsigned int vote = 1;` from me. Forgive the static humor, if you will :) This is the best answer so far.
Comment: I am reading your answer after seeing it after almost 5th or 6th time. It was nice but too long for attracting other users here I think. I learned many things about teaching recursion here. As a teacher, would you please evaluate my idea for teaching recursion- http://programmers.stackexchange.com/questions/25052/a-nice-explanation-for-recursion/25098#25098
Comment: @Gulsan: only the one who wants to learn is willing to take the time to do is properly :) I don't really mind. Sometimes, a short answer is elegant and conveys a lot of useful and necessary information to get started or explain a general concept. I just wanted a longer answer for that one, and considering the OP mentions a question for which I was awarded the "correct" answer and asks a similar one, I tought it appropriate to deliver the same sort of answer. Glad you learned something.
Comment: @Gulshan: Now regarding your answer: the first point confused me a lot, I have to say. I like that you describe the concept of recursive functions as something that changes state incrementally over time, but I think that your way of presenting is a bit strange. After reading your 3 points, I wouldn't expect many students to suddenly be able to solve Hanoi. But it might just be a wording issue.
Comment: I've come across of good way of showing that the same variable can have different values in differing depths of recursion: consider having students write down the steps they're taking,  and the values of variables, in following some recursive code. When they reach a recursion, have them start again on a new piece. Once they reach an exit condition, have them move back to the previous piece. This is essentially emulating a call stack, but it's a good way to show these differences.
Comment: @AndyBursh: Yes, that's what I call the "stack-as-drawers" diagram. An another approach is to have them take small sheets of paper, and write each state of a new card, and pile them up, thus literally representating the stacked values for the same variable name.
Comment: @DeadMG: :) I understand it may not necessarily be the best approach. This is the standard way things were done in my engineering school. Very intensive C/UNIX for the first 2 years (and it's C89), then eventually picking up other stuff (C++, Java, Perl) during year 2 and 3, and some other stuff and more freedom to use other languages for years 4 and 5 (C#). We have a rather strict approach.
Comment: @DeadMG: Problem with starting with C is that it puts people off. The good thing is that you start with the basics, and that in this school we absolutely don't care about putting people off, as it's meant for very motivated people with a passion for programming. They like it or leave. Wherever and whenever I teach, I try to keep that alive as much as possible, though in classic university programs some students don't really want to be here, so you need to be more lenient for them. I try to adapt my course to pass this spirit to the motivated ones, while keeping it OK for the others.
Comment: @DeadMG: Also, starting with C allows you to then be able to bridge or make relatively educated assumptions (that you should verify whenever possible though) about how higher-level languages work, like [understanding array and string differences in Java vs C](http://stackoverflow.com/a/3874035/453590) :) But I agree with you, sometimes it's better to start with fun languages, and I advocate that as well sometimes especially if motivation is lacking, like I was trying to convey in this othe question about [how to keep learning](http://programmers.stackexchange.com/a/151242/3631).
Comment: I thought the question specified "plain English".
Comment: Pleased to see this question (and thus this answer) made it to the Dec 31, 2019, Software Engineering.SE newsletter. I thought that question looked familiar! :D
Answer: The calling of a function from within that same function.
Comment: This is the best explanation to start from really. Simple and to the point; once you've established this summary, then go into all the head-trip details.
Answer: Recursion is a function that calls itself.
How to use it, when to use it and how to avoid bad design are important to know, which requires you to try it out for yourself, and understand what happens.
The most important thing you need to know is to be very careful to not get a loop that never ends. The answer from pramodc84 to your question has this fault: It never ends...
A recursive function must always check for a condition to determine if it should call itself again or not.
The most classic example to use recursion, is to work with a tree with no static limits in depth. This is a task that you must use recursion.
Comment: @santiagozky: As **kindall** said, it is still recursion. However, I would recommend not to do it. When using recursion, it should be very clear in the code that recursion is in place. If calling itself indirectly through another function, it makes it much harder to see what's going on. If you don't know that a function effectively calls itself, you can get in the situation where you (or someone else that did not create this function) break some condition for the recursion (while changing functionality in the code), and you end up in a dead-lock with a never-ending loop.
Comment: You can still implement your last paragraph in an iterative manner, though recursively would obviously be better. "How to use it, when to use it and how to avoid bad design are important to know, which requires you to try it out for yourself, and understand what happens."I thought the point of the question was to get an explanation for that sort of things.
Comment: @haylem: You are right about that answer to the "How to use it, when to use it and how to avoid bad design.." would be more on spot to what the OP asks for (not just "try it out for yourself" as I said), but that would require an extensive lecture of the more teaching kind, rather than a quick answer to a question here. You did a very good job with [your answer](http://programmers.stackexchange.com/questions/25052/whats-a-nice-explanation-for-recursion/25545#25545) though. +1 for that... Those who really need to get a better grasp of the concept will benefit from reading your answer.
Comment: what about a pair of functions that call each other. A calls B which calls A again until some condition is reached. will this still be considered recursion?
Comment: Yes, the function `a` still calls itself, just indirectly (by calling `b`).
Answer: Recursive programming is the process of progressively reducing a problem in to easier to solve versions of itself.
Every recursive function tends to:

take a list to process, or some other structure, or problem domain
deal with the current point/step
call itself on the remainder(s)/subdomain(s)
combine or use the results of the subdomain work

When step 2 is before 3, and when step 4 is trivial (a concatenation, sum, or nothing) this enables tail recursion.  Step 2 often must come after step 3, as the results from the subdomain(s) of the problem may be needed in order to complete the current step.
Take the traversal of a straight forward binary tree.  The traversal can be made in pre-order, in-order, or post-order, depending on what is required.
   B
A     C

Pre-order: B A C
traverse(tree):
    visit the node
    traverse(left)
    traverse(right)

In-order: A B C
traverse(tree):
    traverse(left)
    visit the node
    traverse(right)

Post-order: A C B
traverse(tree):
    traverse(left)
    traverse(right)
    visit the node

Very many recursive problems are specific cases of a map operation, or a fold - understanding just these two operations can lead to significant understanding of good use-cases for recursion.
Comment: @Sean McMillan: Recursion is a powerful tool when used in domains that suit it.  All too often I see it used as a *[clever](http://programmers.stackexchange.com/questions/25276/why-is-cleverness-considered-harmful-in-programming-by-some-people)* way to handle some relatively trivial issue, that massively obfuscates the true nature of the task at hand.
Comment: The key component to practical recursion is the idea of using the solution to a slightly smaller problem to solve a larger one. Otherwise, you just have infinite recursion.
Comment: @Barry Brown: Quite right. Hence my statement *"... reducing a problem in to easier to solve versions of itself"*
Comment: I wouldn't necessarily say so... It is often the case, especially in divide and conquer problems or for situations where you really define a recurrence relation that comes down to a simple case. But I'd say it's more about proving that for each iteration N of your problem, there's a computable case N + 1.
Answer: The OP said that recursion doesn't exist in the real world, but I beg to differ.
Let's take the real world 'operation' of cutting up a pizza. You've taken the pizza out of the oven and in order to serve it up you have to cut it in half, then cut those halves in half, then again cut those resultant halves in half.
The operation of cutting the pizza you performing again and again until you've got the result you want (the number of slices). And for arguments sake let's say that an uncut pizza is a slice itself.
Here's an example in Ruby:

def cut_pizza(existing_slices, desired_slices)
  if existing_slices != desired_slices
    # we don't have enough slices yet to feed everyone, so
    # we're cutting the pizza slices, thus doubling their number
    new_slices = existing_slices * 2
    # and this here is the recursive call
    cut_pizza(new_slices, desired_slices)
  else
    # we have the desired number of slices, so we return
    # here instead of continuing to recurse
    return existing_slices
  end
end

pizza = 1 # a whole pizza, 'one slice'
cut_pizza(pizza, 8) # => we'll get 8

So the real world operation is cutting a pizza, and the recursion is doing the same thing over and over until you have what you want.
Operations you'll find that crop up that you can implement with recursive functions are:

Calculating compound interest over a number of months.
Looking for a file on a file system (because file systems are trees because of directories).
Anything that involves working with trees in general, I guess.

I recommend writing a program to look for a file based on it's file name, and try to write a function that calls itself until it's found, the signature would look like this:
find_file_by_name(file_name_we_are_looking_for, path_to_look_in)
So you could call it like this:
find_file_by_name('httpd.conf', '/etc') # damn it i can never find apache's conf
It's simply programming mechanics in my opinion, a way of cleverly removing duplication. You can rewrite this by using variables, but this is a 'nicer' solution. There is nothing mysterious or difficult about it. You'll write a couple of recursive functions, it'll click and huzzah another mechanical trick in your programming tool box.
Extra Credit The cut_pizza example above will give you a stack level too deep error if you ask it for a number of slices that isn't a power of 2 (i.e 2 or 4 or 8 or 16). Can you modify it so that if someone asks for 10 slices it wont run for ever?
Answer: Okay i am going to try to keep this simple and concise.
Recursive function are functions that call themselves. Recursive function consist of three things:

Logic
A call to itself
When to terminate.

Best ways to write recursive methods, is to think of the method that you trying to write as a simple example only handling one loop of the process you want to iterate over, then add the call to the method itself, and add when you want to terminate. Best way to learn is to practice like all things.
Since this is programmers website I will refrain from writing code but here is a good link
if you got that joke you got what recursion means.
Comment: Strictly, recursion doesn't need a termination condition; guaranteeing that recursion terminates limits the types of problems that the recursive function can solve, and there are some types of semantic presentations that do not require termination at all.
Comment: See also this answer: http://programmers.stackexchange.com/questions/25052/a-nice-explanation-for-recursion/25057#25057 (-:
Answer: Recursion is a tool a programmer can use to invoke a function call on itself. Fibonacci sequence is the textbook example of how recursion is used.
Most recursive code if not all can be expressed as iterative function, but its usually messy. Good examples of other recursive programs are Data Structures such as trees, binary search tree and even quicksort.
Recursion is used to make code less sloppy, keep in mind it is usually slower and requires more memory.
Comment: Fibonacci sequence calculation is a terrible thing to do recursively.  Tree traversal is a much more natural use of recursion.  Typically, when recursion is used well, it isn't slower and doesn't require more memory, since you'd have to maintain a stack of your own instead of the call stack.
Comment: @Dave: I wouldn't dispute that, but I think Fibonacci is a good example to start with.
Comment: Whether it is slower or requires more memory very much depends on the use at hand.
Answer: I like to use this one:
How do you walk to the store?
If you're at the entrance to the store, simply go through it.
Otherwise, take one step, then walk the rest of the way to the store.
It's critical to include three aspects:

A trivial base case
Solving a small piece of the problem
Solving the rest of the problem recursively

We actually use recursion a lot in daily life; we just don't think of it that way.
Comment: This is recursion. This isn't divide and conquer, but it is only one type of recursion. Graph algorithms (like path finding) are full of recursive concepts.
Comment: This is recursion, but I consider it a poor example, as it is too easy to mentally translate "take one step, then walk the rest of the way to the store" into an iterative algorithm.  I feel like this is equivalent to converting a nicely written `for` loop into a pointless recursive function.
Comment: THat is not recursion.  It would be if you split it in two:  Walk half the way to the store, walk the other half.  Recurse.
Answer: The best example that I would point you to is C Programming Language by K & R. In that book (and I am quoting from memory), the entry in index page for recursion (alone) lists the actual page where they talk about recursion and the index page as well.
Answer: Josh K already mentioned the Matroshka dolls. Assume that you want to learn something that only the shortest doll knows. The problem is that you can't really talk to her directly, because she originally lives inside the taller doll which on the first picture is placed on her left. This structure goes like that (a doll lives inside the taller doll) until ending up only with the tallest one.
So the only thing that you can do is to ask your question to the tallest doll. The tallest doll (who doesn't know the answer) will need to pass your question to the shorter doll (which on the first picture is on her right). Since she also doesn't have the answer she needs to ask the next shorter doll. This will go like that until the message reaches the shortest doll. The shortest doll (who is the only one who knows the secret answer) will pass the answer to the next taller doll (found on her left), which will pass it to the next taller doll... and this will continue until the answer reaches its final destination, which is the tallest doll and finally... you :)
This is what recursion really does. A function/method calls itself until getting the expected answer. That's why when you write recursive code it's very important to decide about when recursion should terminate.
Not the best explanation but it hopefully helps.
Answer: Recursion n. - A pattern of algorithm design where an operation is defined in terms of itself.
The classic example is finding the factorial of a number, n!. 0!=1, and for any other natural number N, the factorial of N is the product of all natural numbers less than or equal to N. So, 6! = 6*5*4*3*2*1 = 720. This basic definition would allow you to create a simple iterative solution:
int Fact(int degree)
{
    int result = 1;
    for(int i=degree; i>1; i--)
       result *= i;

    return result;
}

However, examine the operation again. 6! = 6*5*4*3*2*1. By the same definition, 5! = 5*4*3*2*1, meaning that we can say 6! = 6*(5!). In turn, 5! = 5*(4!) and so on. By doing this, we reduce the problem to an operation performed on the result of all previous operations. This eventually reduces to a point, called a base case, where the result is known by definition. In our case, 0!=1 (we could in most cases also say that 1!=1). In computing, we are often allowed to define algorithms in a very similar way, by having the method call itself and pass a smaller input, thus reducing the problem through many recursions to a base case:
int Fact(int degree)
{
    if(degree==0) return 1; //the base case; 0! = 1 by definition
    else return degree * Fact(degree -1); //the recursive case; N! = N*(N-1)!
}

This can, in many languages, be further simplified using the ternary operator (sometimes seen as an Iif function in languages that don't provide the operator as such):
int Fact(int degree)
{
    //reads equivalently to the above, but is concise and often optimizable
    return degree==0 ? 1: degree * Fact(degree -1);
}

Advantages:

Natural expression - for many types of algorithms, this is a very natural way to express the function.
Reduced LOC - It's often much more concise to define a function recursively.
Speed - In certain cases, depending on language and computer architecture, recursion of an algorithm is faster than the equivalent iterative solution, usually because making a function call is a faster operation at the hardware level than the operations and memory access required to loop iteratively.
Divisibility - Many recursive algorithms are of the "divide and conquer" mentality; the result of the operation is a function of the result of the same operation performed on each of two halves of the input. This allows you to split the work in two at each level, and if available you can give the other half to another "execution unit" to process. This is typically harder or impossible with an iterative algorithm.

Disadvantages:

Requires understanding - You simply must "grasp" the concept of recursion in order to understand what's going on, and therefore write and maintain effective recursive algorithms. Otherwise it just looks like black magic.
Context-dependent - Whether recursion is a good idea or not depends on how elegantly the algorithm can be defined in terms of itself. While it is possible to build, for example, a recursive SelectionSort, the iterative algorithm is typically the more understandable.
Trades RAM access for call stack - Typically, function calls are cheaper than cache access, which can make recursion faster than iteration. But, there's usually a limit to the depth of the call stack that can cause recursion to error where an iterative algorithm will work.
Infinite recursion - You have to know when to stop. Infinite iteration is also possible but the looping constructs involved are usually easier to understand and thus to debug.
Answer: The example I use is a problem I faced in real life. You have a container (such as a large backpack you intend to take on a trip) and you want to know the total weight. You have in the container two or three loose items, and some other containers (say, stuff sacks.) The weight of the total container is obviously the weight of the empty container plus the weight of everything in it. For the loose items, you can just weigh them, and for the stuff sacks you could just weigh them or you could say "well the weight of each stuffsack is the weight of the empty container plus the weight of everything in it". And then you keep going into containers into containers and so on until you get to a point where there are just loose items in a container. That's recursion.
You may think that never happens in real life, but imagine trying to count, or add up the salaries of, people in a particular company or division, which has a mixture of people who just work for the company, people in divisions, then in the divisions there are departments and so on.  Or sales in a country that has regions, some of which have subregions, etc etc.  These sorts of problems happen all the time in business.
Answer: Recursion can be used to solve a lot of counting problems. For example, say you have a group of n people at a party (n > 1), and everyone shakes everyone else's hand exactly once. How many handshakes take place? You may know that the solution is C(n,2) = n(n-1)/2, but you can solve recursively as follows:
Suppose there are just two people. Then (by inspection) the answer is obviously 1.
Suppose you have three people. Single out one person, and note that he/she shakes hands with two other people. After that you have to count just the handshakes between the other two people. We already did that just now, and it is 1. So the answer is 2 + 1 = 3.
Suppose you have n people. Following the same logic as before, it is (n-1) + (number of handshakes between n-1 people). Expanding, we get (n-1) + (n-2) + ... + 1.
Expressed as a recursive function,
f(2) = 1
f(n) = n-1 + f(n-1), n > 2
Answer: In life (as opposed to in a computer programme) recursion rarely happens under our direct control, because it can be confusing to make happen. Also, perception tends to be about the side effects, rather than being functionally pure, so if recursion is happening you might not notice it.
Recursion does happen out here in the world though. A lot.
A good example is (a simplified version of) the water cycle:

The sun heats the lake
The water goes up into sky and forms clouds
The clouds drift over to a mountain
At the mountain the air becomes too cold for their moisture to be retained
Rain falls
A river forms
The water in the river runs into the lake

This is a cycle that causes its self to happen again. It is recursive.
Another place you can get recursion is in English (and human language in general). You might not recognise it at first, but the way we can generate a sentence is recursive, because the rules allow us to embed one instance of a symbol in side another instance of the same symbol.
From Steven Pinker's The Language Instinct:

if either the girl eats ice cream or the girl eats candy then the boy eats hot dogs

That is a whole sentence that contains other whole sentences:

the girl eats ice cream
the girl eats candy
the boy eats hot dogs

The act of understanding the full sentence involves understanding smaller sentences, which use the same set of mental trickery to be understood as the full sentence.
To understand recursion from a programming perspective it's easiest to look at a problem that can be solved with recursion, and understand why it should be and what that means you need to do.
For the example I will use the greatest common divisor function, or gcd for short.
You have your two numbers a and b. To find their gcd (assuming neither is 0) you need to check if a is evenly divisible into b. If it is then b is the gcd, otherwise you need to check for the gcd of b and the remainder of a/b.
You should already be able to see that this is a recursive function, as you have the gcd function calling the gcd function. Just to hammer it home, here it is in c# (again, assuming 0 never gets passed in as a parameter):
int gcd(int a, int b)
{
    if (a % b == 0) //this is a stopping condition
    {
        return b;
    }

    return (gcd(b, a % b)); //the call to gcd here makes this function recursive
}

In a programme, it is important to have a stopping condition, otherwise you function will recur forever, which will eventually cause a stack overflow!
The reason to use recursion here, rather than a while loop or some other iterative construct, is that as you read the code it tells you what it is doing and what will happen next, so it is easier to figure out if it is working correctly.
Comment: I found the water-cycle example iterative. The second language-example seems more divide-and-conquer than recursion.
Comment: The water cycle is a while loop.  Sure, a while loop can be expressed using recursion, but doing so will blow the stack.  Please don't.
Comment: @Gulshan: I would say the water cycle is recursive because it causes its self to repeat, like a recursive function. It's not like painting a room, where you carry out the same set of steps over several objects (walls, ceiling, etc.), like in a for loop. The language example does use divide and conquer, but also the "function" that is called calls its self to work on the nested sentences, so is recursive in that way.
Comment: In water-cycle, the cycle is started by sun and no other element of the cycle is making the sun starting it again. So, where is the recursive call?
Comment: There isn't a recursive call! Isn't not a function. :D It is recursive because it causes its self to recur. The water from the lake comes back to the lake, and the cycle starts again. If some other system was putting water into the lake, then it would be iterative.
Answer: Here is a real world example for recursion.
Let them imagine that they have a comic collection and you're going to mix it all up into a big pile. Careful -- if they really have a collection, they may instantly kill you when you just mention the idea to do so.
Now let them sort this big unsorted pile of comics with the help of this manual:
Manual: How to sort a pile of comics

Check the pile if it is already sorted. If it is, then done.

As long as there are comics in the pile, put each one on another pile,
ordered from left to right in ascending order:

    If your current pile contains different comics, pile them by comic.
    If not and your current pile contains different years, pile them by year.
    If not and your current pile contains different tenth digits, pile them
    by this digit: Issue 1 to 9, 10 to 19, and so on.
    If not then "pile" them by issue number.

Refer to the "Manual: How to sort a pile of comics" to separately sort each
of the new piles.

Collect the piles back to a big pile from left to right.

Done.

The nice thing here is: When they are down to single issues, they have the full "stack frame" with the local piles visible before them on the ground. Give them multiple printouts of the manual and put one aside each pile level with a mark where you currently are on this level (ie. the state of the local variables), so you can continue there on each Done.
That's what recursion basically is about: Performing the very same process, just on a finer detail level the more you go into it.
Answer:
Terminate if exit condition reached
do something to alter the state of things
do the work all over starting with the present state of things

Recursion is a very concise way to express something that has to be repeated until something is reached.
Answer: Not plain english, not really real life examples, but two ways of learning recursion by playing:

Tower of Hanoi
Baguenaudier
Answer: A nice explanaition of recursion is literally 'an action that reoccurs from within itself".
Consider a painter painting a wall, it's recursive because the action is "paint a strip from ceiling to floor than scoot over a little to the right and (paint a strip from ceiling to floor than scoot over a little to the right and (paint a strip from ceiling to floor than scoot over a little to the right and ( etc )))".
His paint() function calls itself over and over again to make up his bigger paint_wall() function.
Hopefully this poor painter has some kind of stop condition :)
Comment: To me, the example seems more like an iterative procedure, not recursive.
Comment: @Gulshan:  Recursion and iteration do similar things, and often things will work well with either.  Functional languages typically use recursion instead of iteration.  There are better examples of recursion where it would be awkward to write the same thing iteratively.

In plain English, what is recursion?


How do I hook up a laptop to a Mac monitor?

Question: Is it possible to connect a Windows laptop (Dell XPS) with a Mac monitor (cinema HD display)?
If so, what do I need to make it happen?
Comment: Retagged and added [belongs-on-superuser]. I removed [hdd] since it has nothing to do with the question
Answer: There is actually no such thing as a "Mac monitor"!
The Apple Cinema HD Display is just a normal monitor with a DVI input. If your Windows computer (in your case, Dell XPS laptop) has a DVI port (which most do these days), then you can just plug it right in and it should work straight away (assuming you have the graphics power to power such a 'large' display). If your computer does not have DVI-out, then you should be able to pick up a VGA > DVI from a local electronics store for a few bucks.
Answer: The Cinema HD should take DVI input. If your laptop is a newer model with a DVI output, you're good to go.
There are USB->DVI adapters, but you're probably not going to get a good result with such a high-res display.
(But the question belongs on SuperUser.com...)
Answer: Most Apple displays have a DVI port, which as the other answers note your Dell should also have.
The exception is the newer 24" LED Cinema Display which has a "Mini DisplayPort." You can get an adapter to convert your DVI port to a DisplayPort (a quick Google came up with this).


Cheapest ways to get from Charleroi to Brussels Midi?

Question: I'm thinking of going to FOSDEM (last weekend in January) and my cheapest plane connection is by the Charleroi airport. It seems that I would pay just about the price of plane tickets again for the transportation to city center. Assuming that I arrive on Friday on 21:00, is there a way I could reach Midi for cheaper than 14 EUR? Riding a bicycle, renting a car or walking doesn't sound like an option to me.
Comment: FOSDEM? CRL? I know it's a conference, and CRL is an airport, but it's sometimes handy to expand acronyms for people reading it.
Comment: http://travel.stackexchange.com/questions/37389/how-to-travel-cheaply-between-charleroi-airport-and-brussels/37392#37392
Answer: Yes. The Brussels City Shuttle starts from €5 when booking early, but quickly rises to €14. This is probably what you found and why you ask for cheaper than €14.
When the Brussels City Shuttle is at €14, a cheaper alternative is the Euro Coach Shuttle. They always ask €10, even when paying on the spot. The last buses leave at 21:45, 22:45 and 23:30. A return (only bookable beforehand, not on the spot) is available for €16. Disadvantage of booking beforehand is that you commit to a certain bus. I never tried to board a different bus using a booked ticket, but it might work because the buses are always rather empty (in my experience at least).
Make sure that you remember the Euro Coach Shuttle logo (or print it), because the Brussels City Shuttle it way better signposted and that is where you will end up if you follow the natural flow.
Other options (apart from hitching a ride, but I doubt it will be easy) will be more expensive.
UPDATE: Unfortunately, this answer is outdated. The Euro Coach Shuttle stopped operating on 01/01/2016. From their website:

FROM 1st JANUARY 2016, WE STOP THE "EURO COACH SHUTTLE", thus it is
  not possible anymore to book tickets on our web site
Comment: @JoErNanO That is why the Brussels City Shuttle gets away with higher prices, I think.
Comment: +1 for the Euro Coach Shuttle: neither the airport website nor rome2rio talk about it
Answer: The Brussels City Shuttle (operated by Flibco) will cost you 14EUR at most. Indeed you can also find cheaper fares starting from 5EUR by booking long in advance.


How to use the "system-installation" tag?

Question: I didn't meant to lay rules about this tag, I presumed there will not be problems and the only one would be software-installation... apparently I was wrong.
When I envisioned the system-installation tag, my thinking was that users interested in questions about "installing Ubuntu" would follow the tag and questions about the same topic would use it. This was reflected when I wrote my petition to separate the infamous installation in two tags:

system-installation: For installations of Ubuntu. Remember that Ubiquity is the graphical installer of Ubuntu and questions about it should use also the ubiquity. This tag should be used for problems with the installation process itself and the use of the installer. Post/pre installations problems, ie. boot, dual-boot, partitioning schemes, have their own tags. The questions that fit from installation, i.e. about installing Ubuntu itself.

Now, what happened instead? A bunch of questions where the final goal is not about "installing Ubuntu" predates the tag instead:

Lost windows xp data by installing 12.04, can I recover it? data-recovery
How do I recover my accidentally lost Windows partitions after installing Ubuntu? data-recovery
Boot failure : No DEFAULT or UI configuration directive found! boot
What do I have to do before giving away my Ubuntu machine? (this I wonder why the installation tag in first place) I'm temporally saying that "security" should be used, be my guess if you find something more useful.

Most of these questions is about problems post-installation. Things that happened after installing Ubuntu. Experts about installing Ubuntu may not know the answer to those questions, I mean, Ubuntu is already installed, what can an expert about doing what is already done tell you? What you did wrong? But isn't more useful how can I revert back?
These questions are of little interest to people that would potentially follow the tag and answer those questions.
So, I've said what should be not tagged with this, but what should?

Install Ubuntu touch on Nexus? system-installation ubuntu-touch
How I tell ubiquity that I want a LVM partition? system-installation ubiquity and maybe lvm if the question sways to LVM more than anything
USB drive install of Ubuntu 12.04 Server fails - can't find components from CD-ROM system-installation and perhaps debian-installer
Installing Ubuntu in a LXC container? lxc system-installation (lxc takes precedence here)

As you can notice, the final goal is "installing Ubuntu" or problems found "while installing Ubuntu". Now there are some that are pre-installation that may use the tag but those are weird like "Should I leave an no assigned space before installing Ubuntu?" which the question is "should I do X before installing Ubuntu".
I hope this clears up some misunderstandings about the tag. If you have any edge case or doubt please ask, but as general rule "is about installing Ubuntu, us the tag" is pretty solid already.
Once this is agreed I would write an excerpt and tag wiki to reflect this.
Comment: @NoTime beats me
Comment: Why is this downvoted?
Answer: Misplaced tags happen.  I agree the way you have it is perfect and awesome in every way.  It points to a very specfic point in Ubuntus life on a PC.  Anything post install should not be allowed.  As a community it is also our job to clean up tags as nessicary.  If I see a question with a system-install tag(God forbid) on WINe, then it needs to be fixed to something.
On a side note does the order of tags have to matter?


Difference between 忘れてた and 忘れちゃった

Question: Who knows the difference between 忘れてた and 忘れちゃった? In what kind of situations you use each of those?
Answer: ちゃう is the shortened form of ちまう. Which is the shortened version of 〜てしまう.
In this case, ちゃう represents, "Implying that something unexpected happened".
So if you say 忘れてた it means, "I forgot". But わすれちゃった means "I forgot having unexpected consequences".
In my experience, using ~てしまう or ~ちゃう is more of a "whoops!" sort of comment, whereas 忘れてた is more of a statement of fact. "Do you remember coming here as a child?" would be more of the latter, while waiting in line for a baseball game and realizing you forgot the tickets would be more of the former 「チケットを忘れちゃった!」
In general, the use of either ~ちゃう or ~てしまう when referring to a personal screw-up is incredibly casual and not appropriate for work settings (you would generally apologize first, as it comes off a bit too light-hearted and as if you don't take the mistake seriously).
Comment: Personally, I can't upvote this answer because copying and pasting from a Japanese dictionary isn't all that helpful. A person who is able to read through that much Japanese text in a Japanese dictionary is unlikely to need to come to JLU to ask questions about basic things like what `~ちゃう` means. The explanation at the bottom is helpful, but it's hindered by the assumption that people have already differentiated the "6th definition" from others before getting there.
Comment: @DaveMG Feel free to improve on my answer either with an edit, or with a better version of your own. The goal is not upvotes, but answering the question. If mine does a poor job, you're better served creating a better answer than a snide remark in the comments, no?
Answer: I think the important thing here is to understand the word しまう,and then to understand that ちゃう is the colloquial contraction of shimau.  For simplicity's sake, I'll just write everything in romaji.
Shimau: Means to "completely" do something.  Yatteshimau zo! means something like "I'm going for it!"  It can have some sense of daring or regret associated with it.  Little kids say "chau" all the time ("nichau yo", "I'll cry!), and parents use it to scold them: "Naicha dame da yo!" ("Don't you cry!").  In any case, shimau is used frequently (in both formal and informal speech and writing) and chau is also used frequently, albeit in speech. It is interesting to note that if you add the conditional "-ba" to the end of "-shimau" ("shimaeba") then it becomes more of an challenge or proposition of difficulty ("wasurete shimaeba" = "if you can manage to forget").
So, to answer your question, when used with wasureru, the only real way to interpret wasurete shimau is to see it as a statement of regret at having forgotten or unintentional forgetting, and "wasurechatta" means something similar although would not be said in quite the same circumstances.
This is in contrast to "wasureteta" which is a contraction of "wasurete ita" (sic "I had forgotten") which implies that you had forgotten but that someone or something just reminded you of that.  The difference between "wasureta" and "wasureteta" is like the difference between "I had forgotten" (which implies that you now remember) and "I forgot."
Comment: [ちゃう](http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E3%81%A1%E3%82%83%E3%81%86&dtype=0&dname=0ss&stype=0&pagenum=1&index=112613300000) is a contraction of て plus しまう.   The [ちゃ](http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E3%81%A1%E3%82%83&dtype=0&dname=0ss&stype=0&pagenum=1&index=112609200000) in `泣いちゃだめだよ` is not from しまう, but from て plus は.
Answer: 忘れちゃった you forgot and there was a consequence to it.
忘れてた does not imply consequence.
Comment: Does anyone on this site with points actually live in Japan and use Japanese on a daily basis? I'm beginning to think the only people with points enough to downvote are bored academics who've never used Japanese.
Comment: 日本人は、いつもいる人は少ないけど(最近は2人くらい。)、たまに来る人なら数人います。日本語話者じゃなくて日本に住んでる人は、結構いっぱいいます。ところでダウンボートしたの私じゃないです。
Answer: They're mostly the same, but 忘れちゃった has more of a sense of 'whoops' than just plain 忘れてた. I'd probably be more likely to use 忘れちゃった in a situation where the forgetting something had some kind of negative consequence (though probably a small one, as it's not a particularly formal form and it tends to have a sense of downplaying the consequences - if you really screw something up by forgetting something, you'd want to go the distance and say 忘れてしまいました.) It sounds kind of weird to use 忘れちゃった to mean something was forgotten but nothing bad came of it.
Answer: 忘れてた means 'I forgot', but it carries a sort of 'continuous' meaning, i.e. somebody has forgotten something for a period of time. At least that's how I've come to understand it.
On the other hand, 忘れちゃった is a colloquial, shortened version of 忘れてしまった.
~てしまう is a verb-only conjugation and has three basic meanings, which are:

The action expressed by the verb was done unintentionally, by accident.
The action was done completely, finalized.

In this case, 忘れちゃった may mean both, as in:
Whoops, I totally forgot.
Comment: The question is about 忘れてた and 忘れちゃった, not about 忘れた and 忘れちゃった.
Comment: You're right! I don't know how I missed that :) Editing accordingly.

Difference between 忘れてた and 忘れちゃった


Antichrist, Man of Lawlessness, Beast of Revelation 13

Question: It is generally assumed that the antichrist, the man of lawlessness, and the beast in Revelation 13 all refer to the same end time enemy of God.
What is the basis for this assumption?
Are there any reasons to believe they are not the same?
Comment: Question edit: change the words "end time enemy of God" to "entity" since "end time" and "enemy of God" are both disputable since John said that "many antichrists are already in the world" and Paul said that "the mystery of iniquity is already at work" and Paul also says that it is God that sends the "strong delusion" (or as I like to translate anachronistically, "error factory"). IMHO opinion they are all the same: the worshiped Jesus. Worshiping a man as God - even if that man is God's son - is blasphemous.
Comment: Do you mean the "man of lawlessness" mentioned in 2 Thessalonians 2:3? And which "antichrist" does get questioned pertaining to the question, and where?
Comment: There seems to be connection between being anti marriage, and being lawless.
Answer: Tau's answer explains why the antichrist may be synonymous with the man of lawlessness and the beast described in Revelation 13. I would add to that as the question also asks:

Are there any reasons to believe they are not the same?

There are some reasons to believe they are not the same.
First, the term antichrist is not used anywhere other than 1 and 2 John. Although not using the word does not mean they are not the same, the fact that the authors of Revelation and Thessalonians failed to use the word is a reason to believe they are not the same.
Another reason is the antichrist was already in the world:

Little children, it is the last hour; and as you have heard that the Antichrist is coming, even now many antichrists have come, by which we know that it is the last hour. (1 John 2:18 NKJV)

Not only is the antichrist already in the world, there are many. This means that antichrist is not a singular entity.
The Greek word "antichrist" is ἀντίχριστος. It is a compound word made from ἀντί and Χριστός. The key to the meaning is ἀντί which is opposite, corresponding to, off-setting, in place of [anti]. An example of how Jesus used the word:

just as the Son of Man did not come to be served, but to serve, and to give His life a ransom for (ἀντὶ) many. (Matthew 20:28 NKJV)

Jesus gave His life as a ransom ἀντί - in the place of many. The antichrist is anyone that tries to take the place of Christ.
The description of the man of lawlessness and the beast indicate they are trying to take the place of Christ: they meet the definition of "antichrist." At the same time, it is possible they are not the same entity. It is possible they are different entities and that there will be more than one antichrist in the world, as when John wrote in the letter.
Comment: Glad you pointed out the "now" part, then let's consider "soon" (Rev 1:1, Rev 3:11, Rev 22:7, Rev 22:12, Rev 22:20).
Answer: The "Beast" and the Antichrist have been interpreted as being one in the same because from the days of the Early Church Fathers, they have been considered as one and the same.
Even prior to the writing of Revelations, the Apostle Paul says,(2 Thess. 2:8-9 KJV)

And then shall that Wicked be revealed, whom the Lord shall consume
  with the spirit of his mouth, and shall destroy with the brightness of
  his coming: 9Even him, whose coming is after the working of Satan with
  all power and signs and lying wonders,

This directly parallels the book of Revelations, which says,(Rev. 19:20 KJV)

And the beast was taken, and with him the false prophet that wrought
  miracles before him, with which he deceived them that had received the
  mark of the beast, and them that worshipped his image. These both were
  cast alive into a lake of fire burning with brimstone.

Hippolytus(170-235) states in "On Christ and Antichrist Ch. 47)

the beast that ascends out of the bottomless pit shall make war
  against them, and shall overcome them, and kill them, because they
  will not give glory to Antichrist. For this is meant by the little
  horn that grows up. He, being now elated in heart, begins to exalt
  himself, and to glorify himself as God, persecuting the saints and
  blaspheming Christ, even as Daniel says, I considered the horn, and,
  behold, in the horn were eyes like the eyes of man, and a mouth
  speaking great things; and he opened his mouth to blaspheme God. And
  that born made war against the saints, and prevailed against them
  until the beast was slain, and perished, and his body was given to be
  burned.

He freely interchanges "Beast" and "Antichrist", having learned from Irenaeus, who learned from Polycarp, who sat under the Apostle John and was appointed Bishop of Smyrna by John. Irenaeus himself in Book V, Chpt. 30, interchanges "Beast" and "Antichrist", recognizing they are one in the same.
In conclusion: The Early Church Fathers understood the "Beast" to be the "Antichrist", not only from Paul's writings but as those closest to John in sucession taught the same. The "Beast" is a prophetic interpretation of the one called "Antichristos", who from Christ, Paul, John, Irenaeus, Hippolytus, and others have taught that "evil one" who is to come.
Answer: The only place in scripture that the word "antichrist" (or "antichrists") appear in scripture is in 1 John and 2 John:

[1Jo 2:18, 22 NLT] (18) Dear children, the last hour is here. You have heard that the Antichrist is coming, and already many such antichrists have appeared. From this we know that the last hour has come. ... (22) And who is a liar? Anyone who says that Jesus is not the Christ. Anyone who denies the Father and the Son is an antichrist.

[1Jo 4:3 NLT] (3) But if someone claims to be a prophet and does not acknowledge the truth about Jesus, that person is not from God. Such a person has the spirit of the Antichrist, which you heard is coming into the world and indeed is already here.

[2Jo 1:7 NLT] (7) I say this because many deceivers have gone out into the world. They deny that Jesus Christ came in a real body. Such a person is a deceiver and an antichrist.

John specifically identifies anyone who misrepresents the Christ Jesus in a prophecy or false teaching is the antichrist. John appears to be referencing more general predictions:

[Mat 24:5, 11, 24 NLT] (5) for many will come in my name, claiming, 'I am the Messiah.' They will deceive many. ... (11) And many false prophets will appear and will deceive many people. ... (24) For false messiahs and false prophets will rise up and perform great signs and wonders so as to deceive, if possible, even God's chosen ones.

[Mar 13:6, 21-22 NLT] (6) for many will come in my name, claiming, 'I am the Messiah.' They will deceive many. ... (21) "Then if anyone tells you, 'Look, here is the Messiah,' or 'There he is,' don't believe it. (22) For false messiahs and false prophets will rise up and perform signs and wonders so as to deceive, if possible, even God's chosen ones.

[Act 20:29-30 NLT] (29) I know that false teachers, like vicious wolves, will come in among you after I leave, not sparing the flock. (30) Even some men from your own group will rise up and distort the truth in order to draw a following.

[1Ti 4:1-3 NLT] (1) Now the Holy Spirit tells us clearly that in the last times some will turn away from the true faith; they will follow deceptive spirits and teachings that come from demons. (2) These people are hypocrites and liars, and their consciences are dead. (3) They will say it is wrong to be married and wrong to eat certain foods. But God created those foods to be eaten with thanks by faithful people who know the truth.

[2Ti 3:1-6 NLT] (1) You should know this, Timothy, that in the last days there will be very difficult times. (2) For people will love only themselves and their money. They will be boastful and proud, scoffing at God, disobedient to their parents, and ungrateful. They will consider nothing sacred. (3) They will be unloving and unforgiving; they will slander others and have no self-control. They will be cruel and hate what is good. (4) They will betray their friends, be reckless, be puffed up with pride, and love pleasure rather than God. (5) They will act religious, but they will reject the power that could make them godly. Stay away from people like that! (6) They are the kind who work their way into people's homes and win the confidence of vulnerable women who are burdened with the guilt of sin and controlled by various desires.

[2Ti 4:3-4 NLT] (3) For a time is coming when people will no longer listen to sound and wholesome teaching. They will follow their own desires and will look for teachers who will tell them whatever their itching ears want to hear. (4) They will reject the truth and chase after myths.

[2Pe 2:1 NLT] (1) But there were also false prophets in Israel, just as there will be false teachers among you. They will cleverly teach destructive heresies and even deny the Master who bought them. In this way, they will bring sudden destruction on themselves.

This is in no way at all congruous with Paul's "man of sin/lawlessness"  or any of the beasts of Revelation. Paul's man is more likely a reference to Simon the Sorcerer/Magician, though it seems conflated in places with the Emperor insisting to be worshiped as a god:

[2Th 2:3-12 NLT] (3) Don't be fooled by what they say. For that day will not come until there is a great rebellion against God and the man of lawlessness is revealed--the one who brings destruction. (4) He will exalt himself and defy everything that people call god and every object of worship. He will even sit in the temple of God, claiming that he himself is God. (5) Don't you remember that I told you about all this when I was with you? (6) And you know what is holding him back, for he can be revealed only when his time comes. (7) For this lawlessness is already at work secretly, and it will remain secret until the one who is holding it back steps out of the way. (8) Then the man of lawlessness will be revealed, but the Lord Jesus will kill him with the breath of his mouth and destroy him by the splendor of his coming. (9) This man will come to do the work of Satan with counterfeit power and signs and miracles. (10) He will use every kind of evil deception to fool those on their way to destruction, because they refuse to love and accept the truth that would save them. (11) So God will cause them to be greatly deceived, and they will believe these lies. (12) Then they will be condemned for enjoying evil rather than believing the truth.

[Act 8:9-11 NASB] (9) Now there was a man named Simon, who formerly was practicing magic in the city and astonishing the people of Samaria, claiming to be someone great; (10) and they all, from smallest to greatest, were giving attention to him, saying, "This man is what is called the Great Power of God." (11) And they were giving him attention because he had for a long time astonished them with his magic arts.
Answer: Antichrist
The Greek word, "antichrist", means "one who is opposed to Christ".  Therefore, strictly speaking, the New Testament only has four places where this idea is explicitly expressed, all in John's epistles:

1 John 2:18 – the existence of antichrist(s) proves that John was writing in the "last hour".  That is, "antichrist" existed in John's time.
1 John 2:22 – defines antichrist as anyone who denies that Jesus is Christ or Messiah.
1 John 4:2, 3 – defines antichrist as anyone who denies that Jesus came in the flesh, that is, denies that Jesus was fully human.
2 John 7 – again defines antichrist as anyone who denies that Jesus was human.

Sea Beast of Rev 13
The description of the sea beast in Rev 13 never mentions "antichrist" but is associated with "antichrist" because it is part of the "beast trinity" in the book of Revelation.  The beast trinity form a coalition that need not delay us here other than to observe that there are three beasts whose description matches the divine trinity.
Beast from the abyss: (Rev 11:7, 12:1-17, 17:8) This beast is the seven headed dragon, namely the devil or Satan (12:9 & 20:2), of 12:3, who comes from and is thrown back into the abyss (20:3).  The fact that this beast is mentioned in 11:7 without further explanation, suggests that it has already been introduced (in 9:1, 11 and 8:12) - a consistent pattern elsewhere in Revelation.  A comparison of 12:9, 13 with 8:10, 13, 9:1 - fallen from heaven to earth - lends weight to this view.  Isa 14:12 and Eze 28:8, 13-17 records in allegorical form the origin of Satan in heaven, his decent to earth and his ambition to be worshipped like the Most High.  See "Satan".
Beast from the Sea: (Rev 13:1-10) This is Revelation's most notorious and blasphemous beast whose distinguishing mark is administered by the land beast on the forehead or hand (13:17, 20:4) of the wicked.  This beast is the one usually intended when The Beast is mentioned without further explanation (eg, 16:13, 19:20, 20:10 etc).  The close parallels between Dan 7 and Rev 13:1-8 strongly suggest the same power.  See also "Abomination of Desolation".
Beast from the Land (or Earth): (Rev 13:11-17) This third beast completes the unholy trinity and is called from the land to help the dragon fight the woman by assisting the sea beast, 12:17, 13:1, 11.  In Rev 16:13, 19:20, 20:10, this land beast is also called the false prophet as can be seen by comparing 19:20 with 13:13.  As the false prophet, the land beast acts as a counterpoint to the (true) two prophets of 11:10.  The land beast is mentioned by name just once - otherwise only by pronoun.  The land beast creates a sea beast like organization called the image to the beast that is used to help enforce (under death threat) worship of the sea beast and its image.
In the case of the sea beast, we have the following points that make it like a false Christ:

Jesus begins ministry in water (Luke 3:21); The sea beast come out of water (Rev 13:1)
Jesus (the Lamb) Has seven horns (Rev 5:6); the sea beast has 10 horns (Rev 13:1)
Jesus is like the Father (John 10:30, 14:9); the sea beast has 7 heads & 10 horns like the dragon (who styles himself like God, Isa 14:12-14)
-Jesus is a slaughtered Lamb (Rev 5:6); the sea beast is also slaughtered (same verb Rev 13:3)
Jesus miraculously lives (John 11:25, Rom 1:4); the sea beast miraculously lives (Rev 13:3)
Jesus receives throne from Father (Rev 5:7, Matt 28:18); the sea beast receives throne from dragon (Rev 13:2)
Jesus wears a crown (Rev 19:12); the sea beast wears crowns (Rev 13:1)
Jesus' ministry lasts 3½ years; the sea beast reigns 42 months (Rev 13:5)

Thus, a more accurate title for the sea beast might be pseudochrist as per Mark 13:6 and Luke 21:8.
Man of Lawlessness in 2 Thess 2
The man of lawlessness in 2 Thess 2:3ff is also associated with the sea beast because both of them such similar characteristics:

Both are blasphemous, 2 Thess 2:4, Rev 13:4, 5, 6
Both appear to be false religious systems because both accept worship, 2 Thess 2:4, Rev 13:4, 8
Both appear in God's temple, 2 Thess 2:4 , Rev 13:6
Both work closely with Satan, 2 Thess 2:9, Rev 13:2
Answer: Peace.
They are all not exactly the same but they work together and have one goal:  to deceive MANY.
The 1st beast of Revelation 13= the false Christs (the antichrist) that arise to deceive.
The 2nd beast of Revelation 13 = the false prophets that arise to deceive and that preach the false Christs.  They perform outward signs of supposed inward realities in behalf of their "another Jesus" who is not the Christ.  They use "wonders"...flattery for person's admiration in mind.

Matthew 24:23-25 KJV (23)  Then if any man shall say unto you, Lo,
  here is Christ, or there; believe it not. (24)  For there shall arise
  false Christs, and false prophets, and shall shew great signs and
  wonders; insomuch that, if it were possible, they shall deceive the
  very elect. (25)  Behold, I have told you before.

They work together to deceive many.
Many false prophets come in His Name (supposedly in the authority of "Jesus") saying that their "Jesus" that they preach is the true Christ and shall deceive many.  The "Jesus "that they preach though is really "another Jesus" the antichrist (the instead-of-Christ) and not the true One…the true Christ.

Matthew 24:3-5 KJV (3)  And as he sat upon the mount of Olives, the
  disciples came unto him privately, saying, Tell us, when shall these
  things be? and what shall be the sign of thy coming, and of the end of
  the world? (4)  And Jesus answered and said unto them, Take heed that
  no man deceive you. (5)  For many shall come in my name, saying, I am
  Christ; and shall deceive many.

The antichrist is the 1st beast of Revelation 13 that the dragon uses to make war with the people of God.

Revelation 12:17- 13:1  KJV (17)  And the dragon was wroth with the
  woman, and went to make war with the remnant of her seed, which keep
  the commandments of God, and have the testimony of Jesus Christ.

Satan in this war against us has his "son" being preached also in order to deceive many (the sand of the sea= many people) into thinking this is the real Son that they hear.
Yet, this "son" is "another Jesus" who is not the real Christ but is the "antichrist"…the instead-of-Christ.
There are many antichrists being preached today….as the beast rises up out of the "sea" of them.  It only takes one "Jesus" to deceive each of us though into thinking this is the one true Christ.   Yet, there are many "another Jesuses being preached today to deceive multitudes of different people into thinking that the "Jesus" that they follow is the true Christ.
These are the last days….the last week…the last 7…as there are 7 heads.
Upon his 7 heads is the name (singular) of blasphemy as the many false prophets are calling their false Christs that they are preaching "Jesus" in these last days (last 7).
They come in His name "Jesus" and are saying that their "Jesus" that they are preaching is the true Christ (I am the Christ) yet he is not.

(13)  And I stood upon the sand of the sea, and saw a beast rise up
  out of the sea, having seven heads and ten horns, and upon his horns
  ten crowns, and upon his heads the name of blasphemy.

It rises up out of the sea….as there are many antichrists being preached by the many false prophets (the 2nd beast).

1 John 2:18 KJV (18)  Little children, it is the last time: and as ye
  have heard that antichrist shall come, even now are there many
  antichrists; whereby we know that it is the last time.

Again, the 2nd beast of Revelation 13 is the false prophet (and there are many of them) that act in behalf of his "Jesus" that he is preaching.   He comes up out of the earth….that is, he is earthly-minded.

Revelation 13:11-12 KJV (11)  And I beheld another beast coming up out
  of the earth; and he had two horns like a lamb, and he spake as a
  dragon.

The "Jesus" he preaches has his "deadly wound" healed.  That is, the "daily" sacrifice of the true Jesus Christ (the Lamb slain) is stopped in those who wonder after and worship their "jesus" the antichrist.  There is no keeping of the "daily" sacrifice of the Lamb slain when one follows after the false prophets and their "another Jesus". It is "healed".

(12)  And he exerciseth all the power of the first beast before him,
  and causeth the earth and them which dwell therein to worship the
  first beast, whose deadly wound was healed.

These false prophets mind earthly things ( preaching for money's sake in order to get what to eat, drink and wear).   They walk as the enemies of the cross of Christ (as His daily sacrifice is ceased out of the lives of those they deceive) and their collective end is destruction from off this earth as they perish in their mortal bodies.

Philippians 3:17-19 KJV (17)  Brethren, be followers together of me,
  and mark them which walk so as ye have us for an ensample.

The "Jesus" that they preach is one of war (who can make war with the beast?) as they fight among themselves in many divisions over the doctrines and commandments of men that support their brand of "Jesus" they are preaching .  Their "Jesus" that they preach is not the Lamb slain but a predator that brings war among those who are following after the many different "Jesuses".
We must keep the "daily" sacrifice of our Lord Jesus Christ (the Lamb slain) in our mortal bodies so  that His eternal  life is made manifest in our outer mortal flesh giving us His life here in this earth.
Yet, their "Jesus" …the first beast…has his "deadly wound healed".  The keeping of the "daily" sacrifice of the Lamb (the Lamb slain) is stopped in those who wonder after and worship their "Jesus" that they preach. The wound is healed.

(18)  (For many walk, of whom I have told you often, and now tell you
  even weeping, that they are the enemies of the cross of Christ: (19)
  Whose end is destruction, whose God is their belly, and whose glory is
  in their shame, who mind earthly things.)

The 2nd beast of Revelation 13 is the false prophet…the wicked one….whose PRESENCE among us is in accordance with the working of Satan (with his "son" that is being preached by them) with all power (the handwriting of church dogmas that may think in their own minds are true) and signs (performing outward signs of supposed inward realities) and lying wonders and with all deceivableness of unrighteousness in them that PERISH from off this earth as they do not receive the love of the truth that they might be saved.

2 Thessalonians 2:  KJV (9)  Even him, whose coming is after the
  working of Satan with all power and signs and lying wonders, (10)  And
  with all deceivableness of unrighteousness in them that perish;
  because they received not the love of the truth, that they might be
  saved.

They believe and love and practice THE lie…the same lie of the serpent from the beginning…as they perish.  They think they have "peace and safety" in their doings but there is no peace.

(11)  And for this cause God shall send them strong delusion, that
  they should believe a lie: (12)  That they all might be damned who
  believed not the truth, but had pleasure in unrighteousness.

All that "dwell upon the earth"….that is, on the earthly wisdom of envy, strife, wrath, hatred of one another, contentions,  etc…. whose names are not written in the book of life of the Lamb slain (as they cease from the keeping of the "daily" sacrifice of our Lord in their mortal bodies)…are found worshipping  "another Jesus"  (whose deadly wound is healed)  that is being preached by the 2nd beast…the false prophet.

Revelation 13:8-10 KJV (8)  And all that dwell upon the earth shall
  worship him, whose names are not written in the book of life of the
  Lamb slain from the foundation of the world. (9)  If any man have an
  ear, let him hear. (10)  He that leadeth into captivity shall go into
  captivity: he that killeth with the sword must be killed with the
  sword. Here is the patience and the faith of the saints.

The two Jesuses are highlighted here in the account of Barabbas….that is, Jesus "Barabbas" which means "son of the father".   One is released while the other real Jesus is destroyed.
One is Jesus the true Christ…the Son of the Father….and the other is "another Jesus" the "son" of the other "father"  (Barabbas) that many false prophets are working in accordance with.

Matthew 27:20-23 KJV (20)  But the chief priests and elders persuaded
  the multitude that they should ask Barabbas, and destroy Jesus. (21)
  The governor answered and said unto them, Whether of the twain will ye
  that I release unto you? They said, Barabbas.

If we choose the "Jesus" that the church rulers are using persuasive, deceptive  words to support, then the Prince of Life is being extinguished out of our own lives.  His eternal life never is made manifest as the keeping of His "daily" sacrifice (the Lamb slain) is ceased out of our own lives.

(22)  Pilate saith unto them, What shall I do then with Jesus which is
  called Christ? They all say unto him, Let him be crucified. (23)  And
  the governor said, Why, what evil hath he done? But they cried out the
  more, saying, Let him be crucified.

The Holy One and the Just is being denied while the other is being chosen.  This other "another Jesus" being preached by false prophets is a "murderer"…an insurrectionist….a robber.  He is a wild beast…and not the Lamb slain.
The Holy One is the Prince of Life that is being "killed" out of the lives of many when they choose the wrong Jesus to receive.  God has already raised Him from the dead so that we might have His life now in this earth.   We must listen to the witness of the biblical saints who were eyewitnesses of the real Jesus who is called the Christ. Through ignorance and listening to the wrong people do we choose the wrong one.

Acts 3:14-17 KJV (14)  But ye denied the Holy One and the Just, and
  desired a murderer to be granted unto you; (15)  And killed the Prince
  of life, whom God hath raised from the dead; whereof we are witnesses.

Through faith in His name does He make our mortal bodies (this "man") strong in this earth for all who know us to see.  He gives us His eternal  life now in this earth.

(16)  And his name through faith in his name hath made this man
  strong, whom ye see and know: yea, the faith which is by him hath
  given him this perfect soundness in the presence of you all. (17)  And
  now, brethren, I wot that through ignorance ye did it, as did also
  your rulers.

But many, many receive "another Jesus"  (the receiving of the 1st beast) whom the false prophets (the 2nd beast) are preaching.

2 Corinthians 11:3-4 KJV (3)  But I fear, lest by any means, as the
  serpent beguiled Eve through his subtilty, so your minds should be
  corrupted from the simplicity that is in Christ. (4)  For if he that
  cometh preacheth another Jesus, whom we have not preached, or if ye
  receive another spirit, which ye have not received, or another gospel,
  which ye have not accepted, ye might well bear with him.

When "another Jesus" is being followed, then the whole earth (the outside nations) speaks blasphemy of God and His holy Name and His tabernacle and them that dwell in Heaven.   A "mouth" was given him….as the mouth of the outside world blasphemes because of the preaching and following after "another jesus"...the 1st beast who is not the true Christ.

Revelation 13:5-6 KJV (5)  And there was given unto him a mouth
  speaking great things and blasphemies; and power was given unto him to
  continue forty and two months. (6)  And he opened his mouth in
  blasphemy against God, to blaspheme his name, and his tabernacle, and
  them that dwell in heaven.

The false prophets deliver us up to be afflicted and kill us as they are not preaching the true Jesus the true Christ (the Lamb slain which multitudes are not following after and keeping His daily). His eternal life is not being made manifest in the flesh of His people because of the massive deception going on.  They take the real Jesus out of the lives of many by use of guile found in their mouths, and kill Him (Matthew 26:4).
You shall be hated of all nations for His NAME's (the name of "JESUS") sake.
This is the "mouth" that blasphemes  God and His holy Name that the nations use when they see and watch the behavior of earthly -minded worshippers of false Christs…. Of "another Jesus" that the false prophets are preaching.  The nations hate us for His Name (Jesus) sake as they call their false Christ "Jesus" also...the name of blasphemy upon the heads of the 1st beast of Revelation 13.

Matthew 24:9-11 KJV (9)  Then shall they deliver you up to be
  afflicted, and shall kill you: and ye shall be hated of all nations
  for my name's sake. (10)  And then shall many be offended, and shall
  betray one another, and shall hate one another. (11)  And many false
  prophets shall rise, and shall deceive many.


Searching for the most comfortable and cost efficient tool to implement Test Automation for Multiple Environments (Desktop, WEB and Mobile)

Question: Planning to automate testing for Multiple Environments (Desktop, WEB and Mobile).
Searching for the most comfortable and cost efficient tool to use. Found some tools: Ranorex, eggPlant, TestComplete and T-Plan Robot.
Can anybody suggest me any tool I missed or give me advice, what tool is better from the listed ones above? :)
Thanks in advance
Answer: Telerik's Test Studio is also a good tool and will provide you required support and features. You can use this tool for testing Web, Mobile, Desktop (but only WPF) applications. test Complete is also a good tool which will suffice your requirements (advantage is it supports more variety of Desktop applications).
Again, cost wise Test Studio is cheaper than Test Complete and it offers Performance + Load test features too in same license. You may need to consider the Performance testing feature too when selecting tool, as NFRs also vital part of delivery quality (sometimes it got completely neglected).
You can also go for free tools but then you need to use multiple tools for the same like Selenium (web), Selendroid (android) and Robot (desktop).
So, if you can go for paid tools (depending upon project budget and ROI) then Test Complete and/or Test Studio are good tools. Start with evaluation of these tools and create POC using Trial versions, then create a Short Summary (if you require for your own analysis only) or Descriptive Analysis (if you need to provide it to management/client for license procurement) to decide which too is good for you.
Use some technique for analysis like:-
1. Rating method
2. Decision tree analysis, etc.
this will provide you a clear picture which tool you should go for (based on features, requirements, support, cost and others) and can show your Decision Analysis Report and POC to customer/ project members to support your decision.
Comment: +1 for Telerik. If you have a desktop application, like the old winforms, the only reliable tool I have used was AutoIt.
Answer: Personally for me and the company we like using selenium and using Sauce Labs. To be honest it's the best multiple platform tool I have used, so its worth taking a look at.
Comment: But Sauce Labs is only for WEB and Mobile apps testing. I need tool that would be suitable for Desktop, Web and Mobile testing :) Or what did you mean? :)
Comment: Sauce Labs indeed does testing for desktop applications! take a look at their documentation, I have tested a lot of desktop applications with their services.


Can't login to control panel

Question: I've just restored a backup of my site, but now whenever I try and login I get a "Invalid username or password" error. I've tried resetting the password, but even the new password brings up the same message. Any ideas what could be causing this?
Answer: Might seem like a silly question, but are you sure you're looking at the correct database for the site? For example, do you have a development site/database/configuration file?
Cookie/Session problems will normally just bounce you to the homepage or back to the login screen. This sounds more like an actual problem authenticating the username/password which really can only be because what you're typing in doesn't match what's in the database table.
Answer: Try adding these lines on the bottom of your expressionengine/config/config.php file:
$config['cookie_prefix'] = '';
$config['cookie_path'] = '';
$config['cookie_domain'] = '';
$config['user_session_type'] = 'c';
$config['admin_session_type'] = 's';

Comment: Just so you know this is a good solution more than four years later! Thank you.
Comment: Thank you, Nikola -- this saved me from a hours-long fight with a stubborn cp login screen.
Comment: Happy to help :)
Comment: I'm happy to hear this is still being useful. it has been ages since I dealt with that project Expression Engine project. :)
Answer: Few things you can try here, sessions is the likely suspect.
Firstly try clearing your browser cache, or in a browser like Chrome for example, open up an incognito tab, which will temporarily give you a session without any preexisting cookies to mess things up.
In combination with the above, you can try clearing your exp_sessions table, which will force EE to forget any previous sessions stored in the DB.
In theory if it's sessions causing a failure to login then this would solve your problem.
What you can also try, although I wouldn't expect this to make any difference if the above dont:
Open your config.php, and look for this line:
$config['admin_session_type'] = "c"
Insert a random value in there, for example:
$config['admin_session_type'] = "x"
This will change the name of the sessions being created, again fooling EE into creating brand new sessions rather than matching existing ones.
Comment: I've cleared caches, both in browser and on EE. Tried logging in on incognito mode, still can't log in. And the sessions table is blank anyway.
Comment: Try turning on debugging for your admin index.php, look for the line  $debug = 0; and change it to  $debug = 1; Then see if it reports any errors when you try and login.
Answer: Check that the user account you are trying to log in with is present in exp_members in the database. The password will be salted and hashed but you can at least confirm the presence of the account.
Ensure that browser caches are cleared, along with the system cache directory: system > expressionengine > cache.
If that still fails then it may be possible that the restore didn't quite complete successfully for some reason so try it again and ensure that you set it to Drop any existing tables already in the database.
Comment: The account is in exp_members, the system is returning the username and password when I reset it. But it still tells me that same username and/or password are invalid.
Comment: Any success logging in yet?
Comment: I ended up restoring an older backup - the oldest one I have. Now I can log in, but I've got a new problem.

Can't login to control panel


Can I apply for a Schengen visa for an earlier period than my existing one?

Question: I am Chinese and am studying in the US. I have a multiple entry Schengen visa from May 18th but I have to go to another country before May 18th. Can I apply for another Schengen visa that is valid earlier ? Can I apply for early entry ?
Comment: @BurhanKhalid: My understanding is that tou cannot have two Schengen visas _with overlapping validity periods_, but it is possible to have visas for _different_ future periods in one passport, and the periods can be back-to-back and so allow a continued stay.
Comment: You can approach the embassy that offered you the visa and have it revoked voluntarily, and then apply again with the correct dates. Unfortunately you cannot have two Schengen visas at the same time.
Answer: In your case it is now academic (though reporting back your experience would be appreciated) but I am not aware of any regulation to prevent what you suggest and see no reason for one. Schengen visas can be requested up to three month in advance of planned travel and clearly in those three months circumstances may change and give rise to a need for another visit to the Schengen area.
Note also that processing time is likely between 10 and 15 days, possibly more, and your non-routine situation might mean longer than usual. For certain nationalities at certain consulates the processing time may however be much less, "usually 3 - 4 days" is mentioned here but the same site also mentions: a MINIMUM of 15 days.
Nevertheless you should still have time to fit in a quick visit sometime between about May 5 and May 18. Since you would have two visas (the existing multiple entry and, hopefully, a single-entry one) you would need to leave the Schengen area before May 18, even if only to reenter on May 18. If granted a single-entry visa it may well be for a duration of only a few days.
However long you spend on a single-entry visa, the 90/180 day rule applies regardless of the number of visas (and of the number of passports). Rijksoverheid states:

If the visitor used up all the 90 days, he/she has to leave the Schengen area and may only reenter after 3 months of being abroad.

but this is not a requirement for 3 months between visits, rather that after visiting for 90 days a further 90 days must be spent outside the area to comply with the 90/180 rule. Assuming no other visits are involved, a 5 day visit in May under the single entry visa would leave 85 consecutive days available under the multiple entry visa from commencement later the same month.
There is a calculator for the 90/180 rule here.
Comment: (+1) Why do you think leaving the area between both visas would be necessary? That's not obvious to me (definitely not the case if those are multiple entry, for example).
Answer: Considering that you have a student Schengen visa, you cannot travel to the relevant Schengen country before the visa validity. Once a Schengen visa has been issued it must either be used or canceled. There are no "date change" options on it like a travel itinerary.
Futhermore you cannot have two valid visas for an overlapping duration for almost any country.
What you can do is either:

Get your current visa canceled and apply for a new one with the proper dates
Approach the embassy which issued the visa and ask the visa counselor for the best course of action (I'm pretty sure he/she would also cancel your current visa and issue a new one)
Comment: This is unsourced and practically a copy-paste from the comments.


Giant Cream Puff shells

Question: The German restaurant where I worked was famous for their 'giant' cream puffs.  The shells are at least 6" in diameter and 4" high.  I know they used commercial convection ovens to bake them, but that is all I know.  Is it the fan that gives them the size?
I tried to bake them in a conventional oven and failed.  Small ones, no real size.
I have seen them in grocery store bakeries in that area so somebody knows how to make these.
Can anyone tell me how to make these huge choux pastry shells?
Comment: Did you try using a lot more dough in each portion? It seems like a silly question but I don't see how they could turn out small if you used a mound of dough. Maybe not fluffy or crisp but not small.
Comment: I definitely used a large amount of dough; however, in my conventional oven it did not spread nor rise like the ones in the restaurant I mentioned.  I know the restaurant did not pipe the dough either.  They make such huge volumes of shells, it would be cost prohibitive (labor). I'm thinking it's the convection fan. Thanks for your reply,
Answer: You haven't really explained what you did, so it's a bit hard to give useful advice on how to overcome a failure, but my patê à choux pastries have always come out sized proportional to the amount of pastry I use.
Since choux doesn't tend to spread much, make sure your base is close to the diameter you're after; I just pipe inside out, creating a connected spiral, until I reach the desired diameter. I continue piping inward through the middle of the original grooves. My preference is to make tiny ones, but if I needed to make larger ones I'd just continue spiraling in and out as needed until I get to the point where I only have a "tip" left. With a typical Ateco extra-large tip you'll probably get about an inch of puff for each layer, so you probably just need about 3 layers, because you can probably compensate with an overstuffed filling. With more layers than that you may lose structural support.
Some "giant" cream puffs I've seen online just used a large ice cream scoop, but I think that'll probably only get you to about 3-4" diameter at the most. If you don't like the piping approach, you might cluster three scoops near each other and wet-pat them so that they touch.
From then on, it's just a matter of adjusting time and temperature. Larger ones likely need a longer baking time. Additionally, larger ones may benefit from a larger proportion of egg white to encourage a bit crisper outer layer.
Answer: I have recently come across a way to keep the shape of hollow pastries during baking:
Wrap your dough around a handful of marshmallows. The marshmallows will hold the dough structure while the dough expands and hardens.
The marshmallows will eventually melt in to a pool of sugar at the bottom of the pastry that you can remove or leave in as a surprise.
Comment: It's absulutely fine to answer here even if you consider yourself an amateur. In fact, I like the idea of using marshmallows as internal support, sounds pretty ingenious! I only doubt that this is the way to go for *choux pastry*. Besides, I wanted to double check whether you had (wrongly) connected "cream *puffs*" with "*puff* pastry" - a common confusion. If the comunity thought this answer was bad, you'd be getting downvotes, not comments ;-)
Comment: But how would you *wrap* something with [patê à choux](http://en.wikipedia.org/wiki/Choux_pastry)? That's different from [puff pastry](http://en.wikipedia.org/wiki/Puff_pastry).
Comment: I am still an amateur baker. It looks like Jason has a better answer.
Comment: Oh! You are right! Cream puffs and puff pastries are different. Time for more studying :)
Answer: I had a baker give me  a cream puff recipe using ammonia nitrate  in making cream puffs. He also gave me about pound of ammonia nitrate (rising agent), made the best cream puff and also very  light, but finally ran out of ammonia nitrate and  bakery  move so am not able to get the ammonia nitrate.
Comment: I'm removing your last sentence as it is a new question. If you have a question about how to find an ingredient, please ask it as a new question rather than posting it as an answer.

Giant Cream Puff shells


Error after Installing CiviCRM 4.6.4 on Drupal 6, drupal attempts to reinstall at localhost/drupal

Question: I have recently installed Drupal 6 on WAMP, then I downloaded CiviCRM 4.6.4 for Drupal 6. I followed the installation offered on wiki.civicrm.org and everything went very smoothly. When I attempted to follow the final step of "Return to Drupal and enable the CiviCRM module http:///admin/build/modules. Check the box next to CiviCRM, then scroll to the bottom of the page and click the "Save configuration" button.". I punch in localhost/drupal into my browser and Drupal attempts to install itself again. I pressed "Install Drupal in English" and it timed out and showed me this "Fatal error: Maximum execution time of 120 seconds exceeded in C:\wamp\www\drupal\includes\file.inc on line 1078". Help please!!
Comment: Curious -- why Drupal 6, which is essentially end of lifed and unsupported? (actually in a few weeks, but still... https://www.drupal.org/drupal-6-eol )
Answer: Unless there is a good reason why you have chosen to use Drupal 6, I would suggest that you use Drupal 7 instead.  As Laryn points out Drupal will reach end of life soon.  Things are more likely to go smoothly if you are using Drupal 7 and you also find it easier to get help.
I would also recommend that you use the latest version of CiviCRM - currently 4.6.12 (or 4.7.1).
Comment: The internship I recently obtained required that I use Drupal 6, and I installed civiCRM 4.7.1 and Drupal said that it is not compatible with that version of CiviCRM. In any event I got it to work and I want to thank you for your help and time.
Comment: Glad to hear that you got it working but strange that they require Drupal 6.


Who comes out of the penalty box after goal?

Question:
Suppose that Team 1 has players Adam and Bob. Adam takes a double minor penalty, and during the powerplay, Bob takes a 2 minute minor. Then, on the 5-on-3 powerplay, Team 2 scores a goal. Assuming that Adam still has more than 2 minutes left on his penalty, does Bob come out of the box, moving to a 5-on-4 powerplay for the duration of Adam's penalty, or does Adam's penalty time get reduced to 2 minutes, and the 5-on-3 continues?
Suppose that Team 1 has players Adam, Bob, and Chuck. Adams takes a 2 minute minor, then Bob takes a 2 minute minor during that penalty, and then during the 5-on-3, Chuck takes another 2 minute minor. Now, I believe that it's the case that Team 1 plays 5-on-3, but Chuck's penalty time doesn't start until Adam's is finished. Also, assuming that there's no stoppage in play, when Adam's time is finished, he doesn't immediately exit the box. However, if Bob's penalty time also finishes before a stoppage in play, then Adam comes out of the box to bring Team 1 to 5-on-4? Furthermore, if there is still no stoppage in play, and Chuck's penalty time finishes, then Bob comes out of the box putting both teams at even strength, and then Chuck comes out at the next stoppage in play? Also, how might things change if Adam or Bob had a major penalty?
Suppose that we have Adam and Bob on Team 1 and Zack on Team 2. Adam and Zack take offsetting 2 minute minors, and while play is 4-on-4, Bob takes a penalty, but Team 2 scores before Team 1 can touch the puck. Does Adam come out of the box and Bob goes in, with 4-on-4 continuing until Zack comes out of the box, or does Adam stay in the box, and Bob doesn't go to the box?
Answer: In situation 3, the goal washes out Bob's penalty, teams remain 4 on 4.
I believe in situation 1, the way the NHL rule is written, Adam's time above 2 minutes should expire and the 5 on 3 continue, but I'm not sure this is what they would actually follow. Rule 16.2
In situation 2, the NHL rule is that none of the players in box can be released until a stoppage in play occurs (unless the team is entitled to 5 players on the ice), even if their penalties are up. Again, I'm not sure they would follow this to the letter. See Rule 26.2
Comment: I think your explanations for 1 and 3 make sense. For #2, that would mean that Team 1 would be stuck at 5 on 3 until Chuck's penalty expires, even though I would think that they'd be entitled to 4 skaters once Bob's penalty expires.
Comment: It sounds odd, but that's the text of the NHL rulebook. http://www.nhl.com/nhl/en/v3/ext/rules/2017-2018-NHL-rulebook.pdf
Comment: Ahh. I think I see the key point. The rulebook says "During the play,the Penalty Timekeeper shall permit the return to the ice of the penalized players, in the order of expiry of their penalties, but only when the penalized team is entitled to have more than four players on the ice." Now, the key word is "players", as opposed to "skaters". So, I think that when Bob's penalty expires, Team 1 is entitled to 5 players, so Adam leaves the box.