Question: Joris and Srikant/user28's exchange here got me wondering (again) if my internal explanations for the difference between confidence intervals and credible intervals were the correct ones.  How you would explain the difference?

I agree completely with Srikant's explanation. To give a more heuristic spin on it:
Classical approaches generally posit that the world is one way (e.g., a parameter has one particular true value), and try to conduct experiments whose resulting conclusion -- no matter the true value of the parameter -- will be correct with at least some minimum probability.
As a result, to express uncertainty in our knowledge after an experiment, the frequentist approach uses a "confidence interval" -- a range of values designed to include the true value of the parameter with some minimum probability, say 95%. A frequentist will design the experiment and 95% confidence interval procedure so that out of every 100 experiments run start to finish, at least 95 of the resulting confidence intervals will be expected to include the true value of the parameter. The other 5 might be slightly wrong, or they might be complete nonsense -- formally speaking that's ok as far as the approach is concerned, as long as 95 out of 100 inferences are correct. (Of course we would prefer them to be slightly wrong, not total nonsense.)
Bayesian approaches formulate the problem differently. Instead of saying the parameter simply has one (unknown) true value, a Bayesian method says the parameter's value is fixed but has been chosen from some probability distribution -- known as the prior probability distribution. (Another way to say that is that before taking any measurements, the Bayesian assigns a probability distribution, which they call a belief state, on what the true value of the parameter happens to be.) This "prior" might be known (imagine trying to estimate the size of a truck, if we know the overall distribution of truck sizes from the DMV) or it might be an assumption drawn out of thin air. The Bayesian inference is simpler -- we collect some data, and then calculate the probability of different values of the parameter GIVEN the data. This new probability distribution is called the "a posteriori probability" or simply the "posterior." Bayesian approaches can summarize their uncertainty by giving a range of values on the posterior probability distribution that includes 95% of the probability -- this is called a "95% credibility interval."
A Bayesian partisan might criticize the frequentist confidence interval like this: "So what if 95 out of 100 experiments yield a confidence interval that includes the true value? I don't care about 99 experiments I DIDN'T DO; I care about this experiment I DID DO. Your rule allows 5 out of the 100 to be complete nonsense [negative values, impossible values] as long as the other 95 are correct; that's ridiculous."
A frequentist die-hard might criticize the Bayesian credibility interval like this: "So what if 95% of the posterior probability is included in this range? What if the true value is, say, 0.37? If it is, then your method, run start to finish, will be WRONG 75% of the time. Your response is, 'Oh well, that's ok because according to the prior it's very rare that the value is 0.37,' and that may be so, but I want a method that works for ANY possible value of the parameter. I don't care about 99 values of the parameter that IT DOESN'T HAVE; I care about the one true value IT DOES HAVE. Oh also, by the way, your answers are only correct if the prior is correct. If you just pull it out of thin air because it feels right, you can be way off."
In a sense both of these partisans are correct in their criticisms of each others' methods, but I would urge you to think mathematically about the distinction -- as Srikant explains.

Here's an extended example from that talk that shows the difference precisely in a discrete example.
When I was a child my mother used to occasionally surprise me by ordering a jar of chocolate-chip cookies to be delivered by mail. The delivery company stocked four different kinds of cookie jars -- type A, type B, type C, and type D, and they were all on the same truck and you were never sure what type you would get. Each jar had exactly 100 cookies, but the feature that distinguished the different cookie jars was their respective distributions of chocolate chips per cookie. If you reached into a jar and took out a single cookie uniformly at random, these are the probability distributions you would get on the number of chips:

A type-A cookie jar, for example, has 70 cookies with two chips each, and no cookies with four chips or more! A type-D cookie jar has 70 cookies with one chip each. Notice how each vertical column is a probability mass function -- the conditional probability of the number of chips you'd get, given that the jar = A, or B, or C, or D, and each column sums to 100.
I used to love to play a game as soon as the deliveryman dropped off my new cookie jar. I'd pull one single cookie at random from the jar, count the chips on the cookie, and try to express my uncertainty -- at the 70% level -- of which jars it could be. Thus it's the identity of the jar (A, B, C or D) that is the value of the parameter being estimated. The number of chips (0, 1, 2, 3 or 4) is the outcome or the observation or the sample.
Originally I played this game using a frequentist, 70% confidence interval. Such an interval needs to make sure that no matter the true value of the parameter, meaning no matter which cookie jar I got, the interval would cover that true value with at least 70% probability.
An interval, of course, is a function that relates an outcome (a row) to a set of values of the parameter (a set of columns). But to construct the confidence interval and guarantee 70% coverage, we need to work "vertically" -- looking at each column in turn, and making sure that 70% of the probability mass function is covered so that 70% of the time, that column's identity will be part of the interval that results. Remember that it's the vertical columns that form a p.m.f.
So after doing that procedure, I ended up with these intervals:

For example, if the number of chips on the cookie I draw is 1, my confidence interval will be {B,C,D}. If the number is 4, my confidence interval will be {B,C}. Notice that since each column sums to 70% or greater, then no matter which column we are truly in (no matter which jar the deliveryman dropped off), the interval resulting from this procedure will include the correct jar with at least 70% probability.
Notice also that the procedure I followed in constructing the intervals had some discretion. In the column for type-B, I could have just as easily made sure that the intervals that included B would be 0,1,2,3 instead of 1,2,3,4. That would have resulted in 75% coverage for type-B jars (12+19+24+20), still meeting the lower bound of 70%.
My sister Bayesia thought this approach was crazy, though. "You have to consider the deliverman as part of the system," she said. "Let's treat the identity of the jar as a random variable itself, and let's assume that the deliverman chooses among them uniformly -- meaning he has all four on his truck, and when he gets to our house he picks one at random, each with uniform probability."
"With that assumption, now let's look at the joint probabilities of the whole event -- the jar type and the number of chips you draw from your first cookie," she said, drawing the following table:

Notice that the whole table is now a probability mass function -- meaning the whole table sums to 100%.
"Ok," I said, "where are you headed with this?"
"You've been looking at the conditional probability of the number of chips, given the jar," said Bayesia. "That's all wrong! What you really care about is the conditional probability of which jar it is, given the number of chips on the cookie! Your 70% interval should simply include the list jars that, in total, have 70% probability of being the true jar. Isn't that a lot simpler and more intuitive?"
"Sure, but how do we calculate that?" I asked.
"Let's say we know that you got 3 chips. Then we can ignore all the other rows in the table, and simply treat that row as a probability mass function. We'll need to scale up the probabilities proportionately so each row sums to 100, though." She did:

"Notice how each row is now a p.m.f., and sums to 100%. We've flipped the conditional probability from what you started with -- now it's the probability of the man having dropped off a certain jar, given the number of chips on the first cookie."
"Interesting," I said. "So now we just circle enough jars in each row to get up to 70% probability?" We did just that, making these credibility intervals:

Each interval includes a set of jars that, a posteriori, sum to 70% probability of being the true jar.
"Well, hang on," I said. "I'm not convinced. Let's put the two kinds of intervals side-by-side and compare them for coverage and, assuming that the deliveryman picks each kind of jar with equal probability, credibility."
Here they are:
Confidence intervals:

Credibility intervals:

"See how crazy your confidence intervals are?" said Bayesia. "You don't even have a sensible answer when you draw a cookie with zero chips! You just say it's the empty interval. But that's obviously wrong -- it has to be one of the four types of jars. How can you live with yourself, stating an interval at the end of the day when you know the interval is wrong? And ditto when you pull a cookie with 3 chips -- your interval is only correct 41% of the time. Calling this a '70%' confidence interval is bullshit."
"Well, hey," I replied. "It's correct 70% of the time, no matter which jar the deliveryman dropped off. That's a lot more than you can say about your credibility intervals. What if the jar is type B? Then your interval will be wrong 80% of the time, and only correct 20% of the time!"
"This seems like a big problem," I continued, "because your mistakes will be correlated with the type of jar. If you send out 100 'Bayesian' robots to assess what type of jar you have, each robot sampling one cookie, you're telling me that on type-B days, you will expect 80 of the robots to get the wrong answer, each having >73% belief in its incorrect conclusion! That's troublesome, especially if you want most of the robots to agree on the right answer."
"PLUS we had to make this assumption that the deliveryman behaves uniformly and selects each type of jar at random," I said. "Where did that come from? What if it's wrong? You haven't talked to him; you haven't interviewed him. Yet all your statements of a posteriori probability rest on this statement about his behavior. I didn't have to make any such assumptions, and my interval meets its criterion even in the worst case."
"It's true that my credibility interval does perform poorly on type-B jars," Bayesia said. "But so what? Type B jars happen only 25% of the time. It's balanced out by my good coverage of type A, C, and D jars. And I never publish nonsense."
"It's true that my confidence interval does perform poorly when I've drawn a cookie with zero chips," I said. "But so what? Chipless cookies happen, at most, 27% of the time in the worst case (a type-D jar). I can afford to give nonsense for this outcome because NO jar will result in a wrong answer more than 30% of the time."
"The column sums matter," I said.
"The row sums matter," Bayesia said.
"I can see we're at an impasse," I said. "We're both correct in the mathematical statements we're making, but we disagree about the appropriate way to quantify uncertainty."
"That's true," said my sister. "Want a cookie?"


Question: With social-distancing measures being implemented in many countries I would expect other viruses, like the ones that cause seasonal flus, to have also a hard time propagating in these circumstances. Are there any estimates or research (epidemiological models) I can check, about the possibility we are winning by accident a war against many other less alarming viruses?

Yes, this helps as well with other infectious diseases. A good example is the flu, which season was measurably shorter this year than in other years on record. See the figure from the reference 1 for comparision:

Reference 2 shows that this is also true for other respiratory diseases (figure 2):

This shows very well that the isolation measures and the social distancing work very well to control such transmissable diseases.
References:

How coronavirus lockdowns stopped flu in its tracks
Monitoring respiratory infections in covid-19 epidemics


Question: I'm by no means an expert in the field, merely a curious visitor, but I've been thinking about this and Google isn't of much help. Do we know of any lifeforms that don't have the conventional double-helix DNA as we know it? Have any serious alternatives been theorized?

To follow up what mbq said, there have been a number of "origin of life" studies which suggest that RNA was a precursor to DNA,  the so-called "RNA world" (1). Since RNA can carry out both roles which DNA and proteins perform today. Further speculations suggest things like a Peptide-Nucleic Acids "PNA"  may have preceded RNA and so on.
Catalytic molecules and genetic molecules are generally required to have different features. For example, catalytic molecules should be able to fold and have many building blocks (for catalytic action), whereas genetic molecules should not fold (for template synthesis) and have few building blocks (for high copy fidelity). This puts a lot of demands on one molecule. Also, catalytic biopolymers can (potentially) catalyse their own destruction.
RNA seems to be able to balance these demands, but then the difficulty is in making RNA prebiotically - so far his has not been achieved. This has lead to interest in "metabolism first" models where early life has no genetic biopolymer and somehow gives rise to genetic inheritance. However, so far this seems to have been little explored and largely unsuccessful (2).
edit
I just saw this popular article in New Scientist which also discusses TNA (Threose nucleic acid) and gives some background reading for PNA, GNA (Glycol nucleic acid) and ANA (amyloid nucleic acid).

(1) Gilbert, W., 1986, Nature, 319, 618 "Origin of life: The RNA world"
(2) Copley et al., 2007, Bioorg Chem, 35, 430 "The origin of the RNA world: co-evolution of genes and metabolism."


Question:
Apologies in advance for the naivety of this question. I am a 50 year old artist trying to properly understand computers really for the first time. So here goes.
I have been trying to understand how data types and variables are handled by a compiler (in a very general sense, I know there is a lot to it). I'm missing something in my understanding of the relationship between storage in "the stack" and value types, and storage on "the heap" and reference types (the quotation marks are meant to signify that I understand that these terms are abstractions and not to be taken too literally in such a simplified context as the way I am framing this question). Anyway, my simplistic idea is that types like Booleans and integers go on "the stack" because they can, because they are known entities in terms of storage space, and their scope is easily controlled accordingly.
But what I don't get is how variables on the stack are then read by an application- if I declare and assign x as an integer, say x = 3, and storage is reserved on the stack and then its value of 3 is stored there, and then in the same function I declare and assign y as, say 4, and then following that I then use x in another expression, (say z = 5 + x) how can the program read x in order to evaluate z when it is below y on the stack? I am clearly missing something. Is it that the location on the stack is only about the lifetime/ scope of the variable, and that the whole stack is actually accessible to the program all the time? If so, does that imply there is some other index that holds the addresses only of the variables on the stack to allow the values to be retrieved? But then I thought the whole point of the stack was that values were stored in the same place as the variable address? In my puny mind it seems that if there is this other index, then we are talking about something more like a heap? I'm clearly very confused, and I'm just hoping there is a simple answer to my simplistic question.
Thanks for reading this far.

Storing local variables on a stack is an implementation detail – basically an optimization. You can think of it this way. When entering a function, space for all local variables is allocated somewhere. You can then access all variables, since you know their location somehow (this is part of the process of allocation). When leaving a function, the space is deallocated (freed).
The stack is one way of implementing this process – you can think of it as a kind of "fast heap" which has limited size and so is only appropriate for small variables. As an additional optimization, all local variables are stored in one block. Since each local variable has known size, you know the offset of each variable in the block, and that is how you access it. This is in contrast to variables allocated on the heap, whose addresses are themselves stored in other variables.
You can think of the stack as very similar to the classical stack data structure, with one crucial difference: you are allowed to access items below the top-of-stack. Indeed, you can access the $k$th item from the top. This is how you can access all your local variables with pushing and popping. The only pushing being done is upon entering the function, and the only popping upon leaving the function.
Finally, let me mention that in practice, some of the local variables are stored in registers. This is since access to registers is faster than access to the stack. This is another way of implementing a space for local variables. Once again, we know exactly where a variable is stored (this time not via offset, but via the name of a register), and this kind of storage is only appropriate for small data.


Question:
How can the gravitational n-body problem be solved numerically in parallel?
Is precision-complexity tradeoff possible?
How does precision influence the quality of the model?

There is a wide variety of algorithms; Barnes Hut is a popular $\mathcal{O}(N \log N)$ method, and the Fast Multipole Method is a much more sophisticated $\mathcal{O}(N)$ alternative.
Both methods make use of a tree data structure where nodes essentially only interact with their nearest neighbors at each level of the tree; you can think of splitting the tree between the set of processes at a sufficient depth, and then having them cooperate only at the highest levels.
You can find a recent paper discussing FMM on petascale machines here.


Question:
Most modern day Cathode Ray Tube (CRT) televisions manufactured after the 1960s (after the introduction of NTSC and PAL standards) supported the circuit-based decoding of colored signals. It is well known that the new color standards was created to permit the new TV sets to be backwards compatible with old black and white broadcasts of the day (among also being religiously backwards compatible with numerous other legacy features). The new color standards added the color information on a higher carrier frequency (but at the same duration of the luminosity). The color information is synchronized after the beginning of each horizontal line and is  known as the colorburst.
It would seem that when you feed noise into a television, the TV should create not only black and white noise but also color noise as there would be color information at each new horizontal line where each frame should be. But this is the not the case as all color TVs still make black and white noise!
Why is this the case?

Here is an example signal of a single horizontal scan.

And here is the resulting picture if all horizontal scans are the same (you get bars!).

The color burst is also an indicator that there is a color signal.
This is for compatibility with black and white signals. No color burst means B&W signal, so only decode the luminance signal (no croma).
No signal, no color burst, so the decoder falls back to B&W mode.
Same idea goes to FM stereo/mono. If there is no 19 kHz subcarrier present, then the FM demodulator falls back to mono.


Question:
I'm going to start developing a USB 1.1 device using a PIC microcontroller. I'm going to keep one of the USB ports of my PC connected to a bread board during this process. I don't want to destroy my PC's USB port by a short circuit or connecting \$\pm\$Data lines to each other or a power line accidentally.
How can I protect the USB ports? Does a standard USB port has built-in short circuit protection? Should I connect diodes, resistors, fuses on/through/across some pins?

This is to expand on Leon's suggestion to use a hub.
The USB hubs are not all created equal.  Unofficially, there are several "grades":

Cheap hubs.  These are cost optimized to the point where they don't adhere to the USB spec any more.  Often, the +5V lines of the downstream ports are wired directly to the computer.  No protection switches.  Maybe a polyfuse, if lucky.
edit: Here's a thread where the O.P. is complaninig that an improperly designed USB hub is back-feeding his PC.
Decent hubs.  The downstream +5V is connected through a switch with over-current protection.  ESD protection is usually present.
Industrial hubs.  There's usually respectable overvoltage protection in the form of TVS and resettable fuses.
Isolated hubs.  There's actual galvanic isolation between upstream port and downstream ports.  Isolation rating tends to be 2kV to 5kV.  Isolated hubs are used when a really high voltage can come from a downstream port (e.g. mains AC, defibrillator, back EMF from a large motor).   Isolated hubs are also used for breaking ground loops in vanilla conditions.

What to use depends on the type of threat you're expecting.

If you're concerned with shorts between power and data lines, you could use a decent hub.  In the worst case, the hub controller will get sacrificed, but it will save the port on the laptop.
If you're concerned that a voltage higher than +5V can get to the PC, you can fortify the hub with overvoltage protection consisting of TVS & polyfuse.  However, I'm still talking about relatively low voltages on the order of +24V.
If you're concerned with really high voltages, consider isolated hub, gas discharge tubes.  Consider using a computer which you can afford to lose.


Question:
I think this is a fairly common observation that if one does some significant amount of exercise, he/she may feel alright for the rest of the day, but it  generally hurts bad the next day. Why is this the case?
I would expect that if the muscles have undergone significant strain (say I started pushups/plank today), then it should cause pain while doing the strenuous activity, or during rest of the day, but it happens often that we don't feel the pain while doing the activity or even on that day, but surely and sorely feel it the next day.
Another example - say after a long time, you played a long game of basketball/baseball/cricket. You generally don't feel any pain during the game/that day, but there is a good chance it will hurt bad the next day.
I am trying to understand both - why does the pain not happen on that day, and why it does, the next day (or the day after that).

Unlike the conventional wisdom, the pain you feel the next day (after a strenuous exercise) has nothing to do with lactic acid.
Actually, lactic acid is rapidly removed from the muscle cell and converted to other substances in the liver (see Cori cycle). If you start to feel your muscles "burning" during exercise (due to lactic acid), you just need to rest for some seconds, and the "burning" sensation disappears.
According to Scientific American:

Contrary to popular opinion, lactate or, as it is often called, lactic acid buildup is not responsible for the muscle soreness felt in the days following strenuous exercise. Rather, the production of lactate and other metabolites during extreme exertion results in the burning sensation often felt in active muscles. Researchers who have examined lactate levels right after exercise found little correlation with the level of muscle soreness felt a few days later. (emphasis mine)

So if it's not lactic acid, what is the cause of the pain?
What you're feeling in the next day is called Delayed Onset Muscle Soreness
 (DOMS).
DOMS is basically an inflammatory process (with accumulation of histamine and prostaglandins), due to microtrauma or micro ruptures in the muscle fibers. The soreness can last from some hours to a couple of days or more, depending on the severity of the trauma (see below).
According to the "damage hypothesis" (also known as "micro tear model"), microruptures are necessary for hypertrophy (if you are working out seeking hypertrophy), and that explains why lifting very little weight doesn't promote hypertrophy.
However, this same microtrauma promotes an inflammatory reaction (Tiidus, 2008). This inflammation can take some time to develop (that's why you normally feel the soreness the next day) and, like a regular inflammation, has as signs pain, edema and heat.
This figure from McArdle (2010) shows the proposed sequence for DOMS:

Figure: proposed sequence for delayed-onset muscle soreness. Source:
 McArdle (2010).
As anyone who works out at the gym knows, deciding how much weight to add to the barbell can be complicated: too little weight promotes no microtrauma, and you won't have any hypertrophy. Too much weight leads to too much microtraumata, and you'll have trouble to get out of the bed the next day.
EDIT: This comment asks if there is evidence of the "micro tear model" or "damage model" (also EIMD, or Exercise-induced muscle damage). First, that's precisely why I was careful when I used the term hypothesis. Second, despite the matter not being settled, there is indeed evidence supporting EIMD. This meta-analysis (Schoenfeld, 2012) says:

There is a sound theoretical rationale supporting a potential role for EIMD in the hypertrophic response. Although it appears that muscle growth can occur in the relative absence of muscle damage, potential mechanisms exist whereby EIMD may enhance the accretion of muscle proteins including the release of inflammatory agents, activation of satellite cells, and upregulation of IGF-1 system, or at least set in motion the signaling pathways that lead to hypertrophy.

The same paper, however, discuss the problems of EIMD and a few alternative hypotheses (some of them not mutually exclusive, though).
Sources:

Tiidus, P. (2008). Skeletal muscle damage and repair. Champaign: Human Kinetics.
McArdle, W., Katch, F. and Katch, V. (2010). Exercise physiology. Baltimore: Wolters Kluwer Health/Lippincott Williams & Wilkins.
Roth, S. (2017). Why Does Lactic Acid Build Up in Muscles? And Why Does It Cause Soreness?. [online] Scientific American. Available at:  [Accessed 22 Jun. 2017].
Schoenfeld, B. (2012). Does Exercise-Induced Muscle Damage Play a Role in Skeletal Muscle Hypertrophy?. Journal of Strength and Conditioning Research, 26(5), pp.1441-1453.


Question:
On many boards I've seen, there are little copper dots used for the purpose of "Copper Thieving". They're small round copper dots connected to nothing and arranged in an array. Supposedly they're for balancing the copper on the boards to improve manufacturability, but no explanation I've heard has convinced me that they're needed or useful. What are they for and do they actually work?
Below is an example with squares.

Unfortunately the other 3 answers to the question are incorrect, but helps keeping a common misunderstanding alive :-)
Thieving is added to the outer layers in order to help a more balanced chemical process for the plating.
Also notice that there is no need to "balance copper" (or stackups for that matter) in modern PCB fabrication to avoid "warped boards".
I wrote about this on my blog recently. You can find other references on the net.


Question:
It's very easy to filter a signal by performing an FFT on it, zeroing out some of the bins, and then performing an IFFT.  For instance:
t = linspace(0, 1, 256, endpoint=False)
x = sin(2 * pi * 3 * t) + cos(2 * pi * 100 * t)
X = fft(x)
X[64:192] = 0
y = ifft(X)

The high frequency component is completely removed by this "brickwall" FFT filter.
But I've heard this is not a good method to use.

Why is it generally a bad idea?
Are there circumstances in which it's an ok or good choice?

[as suggested by pichenettes]

Zeroing bins in the frequency domain is the same as multiplying by a rectangular window in the frequency domain.  Multiplying by a window in the frequency domain is the same as circular convolution by the transform of that window in the time domain.  The transform of a rectangular window is the Sinc function ($\sin(\omega t)/\omega t$).  Note that the Sinc function has lots of large ripples and ripples that extend the full width of time domain aperture.  If a time-domain filter that can output all those ripples (ringing) is a "bad idea", then so is zeroing bins.
These ripples will be largest for any spectral content that is "between bins" or non-integer-periodic in the FFT aperture width.  So if your original FFT input data is a window on any data that is somewhat non-periodic in that window (e.g. most non-synchronously sampled "real world" signals), then those particular artifacts will be produced by zero-ing bins.
Another way to look at it is that each FFT result bin represents a certain frequency of sine wave in the time domain.  Thus zeroing a bin will produce the same result as subtracting that sine wave, or, equivalently, adding a sine wave of an exact FFT bin center frequency but with the opposite phase.  Note that if the frequency of some content in the time domain is not purely integer periodic in the FFT width, then trying to cancel a non-integer periodic signal by adding the inverse of an exactly integer periodic sine wave will produce, not silence, but something that looks more like a "beat" note (AM modulated sine wave of a different frequency).  Again, probably not what is wanted.
Conversely, if your original time domain signal is just a few pure unmodulated sinusoids that are all exactly integer periodic in the FFT aperture width, then zero-ing FFT bins will remove the designated ones without artifacts.


Question:
I searched and couldn't find it on the site, so here it is (quoted to the letter):

On this infinite grid of ideal one-ohm resistors, what's the equivalent resistance between the two marked nodes?

With a link to the source.
I'm not really sure if there is an answer for this question. However, given my lack of expertise with basic electronics, it could even be an easy one.

This is the XKCD Nerd Sniping problem. It forced me to abandon everything else I was doing to research and write up this answer. Then, years later, it compelled me to return and edit it for clarity.
The following full solution is based on the links posted in the other answer. But in addition to presenting this information in a convenient form, I've also made some significant simplifications of my own. Now, nothing more than high school integration is needed!
The strategy in a nutshell is to

Write down an expression for the resistance between any two points as an integral.

Use integration tricks to evaluate the integral found in Step 1 for two diagonally separated points.

Use a recurrence relation to determine all other resistances from the ones found in Step 2.

The result is an expression for all resistances, of which the knight's move is just one. The answer for it turns out to be
$$ \frac{4}{\pi} - \frac{1}{2} $$
Setting up the problem
While we're ultimately interested in a two-dimensional grid, to start with nothing will depend on the dimension. Therefore we will begin by working in $N$ dimensions, and specialise to $N = 2$ only when necessary.
Label the grid points by $\vec{n}$, an $N$-component vector with integer components.
Suppose the voltage at each point is $V_\vec{n}$. Then the current flowing into $\vec{n}$ from its $2N$ neighbours is
$$ \sum_{i, \pm} ( V_{\vec{n} \pm \vec{e}_i} - V_\vec{n} ) $$
($\vec{e}_i$ is the unit vector along the $i$-direction.)
Insist that an external source is pumping one amp into $\vec{0}$ and out of $\vec{a}$. Current conservation at $\vec{n}$ gives
$$ \sum_{i, \pm} ( V_{\vec{n} \pm \vec{e}_i} - V_\vec{n} ) = -\delta_\vec{n} + \delta_{\vec{n} - \vec{a}} \tag{1}\label{eqv} $$
($\delta_\vec{n}$ equals $1$ if $\vec{n} = \vec{0}$ and $0$ otherwise.)
Solving this equation for $V_\vec{n}$ will give us our answer. Indeed, the resistance between $\vec{0}$ and $\vec{a}$ will simply be
$$ R_\vec{a} = V_\vec{0} - V_\vec{a} $$
Unfortunately, there are infinitely many solutions for $V_\vec{n}$, and their results for $R_\vec{a}$ do not agree! This is because the question does not specify any boundary conditions at infinity. Depending on how we choose them, we can get any value of $R_\vec{a}$ we like! It will turn out that there's a unique reasonable choice, but for now, let's forget about this problem completely and just find any solution.
Solution by Fourier transform
To solve our equation for $V_\vec{n}$, we will look for a Green's function $G_\vec{n}$ satisfying a similar equation:
$$ \sum_{i, \pm} ( G_{\vec{n} \pm \vec{e}_i} - G_\vec{n} ) = \delta_\vec{n} \tag{2}\label{eqg} $$
A solution to $\eqref{eqv}$ will then be
$$ V_n = -G_\vec{n} + G_{\vec{n} - \vec{a}} $$
To find $G_\vec{n}$, assume (out of the blue) that it can be represented as
$$ G_\vec{n} = \int_0^{2\pi} \frac{d^N \vec{k}}{(2\pi)^N} (e^{i \vec{k} \cdot \vec{n}} - 1) g(\vec{k}) $$
for some unknown function $g(\vec{k})$. Then noting that the two sides of $\eqref{eqg}$ can be written as
\begin{align}
\sum_{i, \pm} ( G_{\vec{n} \pm \vec{e}_i} - G_\vec{n} )
&=
\int_0^{2\pi} \frac{d^N \vec{k}}{(2\pi)^N} e^{i \vec{k} \cdot \vec{n}} \left( \sum_{i, \pm} e^{\pm i k_i} - 2N \right) g(\vec{k})
\\
\delta_\vec{n}
&=
\int_0^{2\pi} \frac{d^N \vec{k}}{(2\pi)^N} e^{i \vec{k} \cdot \vec{n}}
\end{align}
we see $\eqref{eqg}$ can be solved by choosing
$$ g(\vec{k}) = \frac{1}{\sum_{i, \pm} e^{\pm k_i} - 2N} $$
which leads to the Green's function
$$ G_\vec{n} = \frac{1}{2} \int_0^{2\pi} \frac{d^N \vec{k}}{(2\pi)^N} \frac{\cos(\vec{k} \cdot \vec{n}) - 1}{\sum_i \cos(k_i) - N} $$
By the way, the funny $-1$ in the numerator doesn't seem to be doing much other than shifting $G_\vec{n}$ by the addition of an overall constant, so you might wonder what it's doing there. The answer is that it's technically needed to make the integral finite, but other than that it doesn't matter as it will cancel out of the answer.
So the final answer for the resistance is
$$ R_\vec{a} = V_\vec{0} - V_\vec{a} = 2(G_\vec{a} - G_\vec{0}) = \int_0^{2\pi} \frac{d^N \vec{k}}{(2\pi)^N} \frac{1 - \cos(\vec{k} \cdot \vec{a})}{N - \sum_i \cos(k_i)} $$
Why is this the right answer?
(From this point on, $N = 2$.)
I said earlier that there were infinitely many solutions for $V_\vec{n}$. But the one above is special, because at large distances $r$ from the origin, the voltages and currents behave like
$$ V = \mathcal{O}(1/r) \qquad I = \mathcal{O}(1/r^2) $$
A standard theorem (Uniqueness of solutions to Laplace's equation) says there can be only one solution satisfying this condition. So our solution is the unique one with the least possible current flowing at infinity and with $V_\infty = 0$. And even if the question didn't ask for that, it's obviously the only reasonable thing to ask.
Or is it? Maybe you'd prefer to define the problem by working on a finite grid, finding the unique solution for $V_\vec{n}$ there, then trying to take some sort of limit as the grid size goes to infinity. However, one can argue that the $V_\vec{n}$ obtained from a size-$L$ grid should converge to our $V_\vec{n}$ with an error of order $1/L$. So the end result is the same.
The diagonal case
It turns out the integral for $R_{n,m}$ is tricky to do when $n \neq m$, but much easier to do when $n = m$. Therefore, we'll deal with that case first. We want to calculate
\begin{align}
R_{n,n}
&= \frac{1}{(2\pi)^2} \int_A dx \, dy \, \frac{1 - \cos(n(x + y))}{2 - \cos(x) - \cos(y)} \\
&= \frac{1}{2(2\pi)^2} \int_A dx \, dy \, \frac{1 - \cos(n(x + y))}{1 - \cos(\frac{x+y}{2}) \cos(\frac{x-y}{2})}
\end{align}
where $A$ is the square $0 \leq x,y \leq 2 \pi$.
Because the integrand is periodic, the domain can be changed from $A$ to $A'$ like so:

Then changing variables to
$$ a = \frac{x+y}{2} \qquad b = \frac{x-y}{2} \qquad dx \, dy = 2 \, da \, db $$
the integral becomes
$$ R_{n,n} = \frac{1}{(2\pi)^2} \int_0^\pi da \int_{-\pi}^\pi db \, \frac{1 - \cos(2na)}{1 - \cos(a) \cos(b)} $$
The $b$ integral can be done with the half-tan substitution
$$ t = \tan(b/2) \qquad \cos(b) = \frac{1-t^2}{1+t^2} \qquad db = \frac{2}{1+t^2} dt $$
giving
$$ R_{n,n} = \frac{1}{2\pi} \int_0^\pi da \, \frac{1 - \cos(2na)}{\sin(a)} $$
The trig identity
$$ 1 - \cos(2na) = 2 \sin(a) \big( \sin(a) + \sin(3a) + \dots + \sin((2n-1)a) \big) $$
reduces the remaining $a$ integral to
\begin{align}
R_{n,n}
&=
\frac{2}{\pi} \left( 1 + \frac{1}{3} + \dots + \frac{1}{2n-1} \right)
\end{align}
A recurrence relation
The remaining resistances can in fact be determined without doing any more integrals! All we need is rotational/reflectional symmetry,
$$ R_{n,m} = R_{\pm n, \pm m} = R_{\pm m, \pm n} $$
together with the recurrence relation
$$ R_{n+1,m} + R_{n-1,m} + R_{n,m+1} + R_{n,m-1} - 4 R_{n,m} = 2 \delta_{(n,m)} $$
which follows from $R_\vec{n} = 2 G_\vec{n}$ and $\eqref{eqg}$. It says that if we know all resistances but one in a "plus" shape, then we can determine the missing one.
Start off with the trivial statement that
$$ R_{0,0} = 0 $$
Applying the recurrence relation at $(n,m) = (0,0)$ and using symmetry gives
$$ R_{1,0} = R_{0,1} = 1/2 $$
The next diagonal is done like so:

Here the turquoise square means that we fill in $R_{1,1}$ using the formula for $R_{n,n}$. The yellow squares indicate an appliation of the recurrence relation to determine $R_{2,0}$ and $R_{0,2}$. The dotted squares also indicate resistances we had to determine by symmetry during the previous step.
The diagonal after that is done similarly, but without the need to invoke the formula for $R_{n,n}$:

Repeatedly alternating the two steps above yields an algorithm for determining every $R_{m,n}$. Clearly, all are of the form
$$ a + b/\pi $$
where $a$ and $b$ are rational numbers. Now this algorithm can easily be performed by hand, but one might as well code it up in Python:
import numpy as np
import fractions as fr

N = 4
arr = np.empty((N * 2 + 1, N * 2 + 1, 2), dtype='object')

def plus(i, j):
    arr[i + 1, j] = 4 * arr[i, j] - arr[i - 1, j] - arr[i, j + 1] - arr[i, abs(j - 1)]

def even(i):
    arr[i, i] = arr[i - 1, i - 1] + [0, fr.Fraction(2, 2 * i - 1)]
    for k in range(1, i + 1): plus(i + k - 1, i - k)

def odd(i):
    arr[i + 1, i] = 2 * arr[i, i] - arr[i, i - 1]
    for k in range(1, i + 1): plus(i + k, i - k)

arr[0, 0] = 0
arr[1, 0] = [fr.Fraction(1, 2), 0]

for i in range(1, N):
    even(i)
    odd(i)

even(N)

for i in range(0, N + 1):
    for j in range(0, N + 1):
        a, b = arr[max(i, j), min(i, j)]
        print('(', a, ')+(', b, ')/π', sep='', end='\t')
    print()

This produces the output
$$
\Large
\begin{array}{|c:c:c:c:c}
40 - \frac{368}{3\pi} & \frac{80}{\pi} - \frac{49}{2} & 6 - \frac{236}{15\pi} & \frac{24}{5\pi} - \frac{1}{2} & \frac{352}{105\pi} \\
\hdashline
\frac{17}{2} - \frac{24}{\pi} & \frac{46}{3\pi} - 4 & \frac{1}{2} + \frac{4}{3\pi} & \frac{46}{15\pi} & \frac{24}{5\pi} - \frac{1}{2} \\
\hdashline
2 - \frac{4}{\pi} & \frac{4}{\pi} - \frac{1}{2} & \frac{8}{3\pi} & \frac{1}{2} + \frac{4}{3\pi} & 6 - \frac{236}{15\pi} \\
\hdashline
\frac{1}{2} & \frac{2}{\pi} & \frac{4}{\pi} - \frac{1}{2} & \frac{46}{3\pi} - 4 & \frac{80}{\pi} - \frac{49}{2} \\
\hdashline
0 & \frac{1}{2} & 2 - \frac{4}{\pi} & \frac{17}{2} - \frac{24}{\pi} & 40 - \frac{368}{3\pi} \\
\hline
\end{array}
$$
from which we can read off the final answer,
$$ R_{2,1} = \frac{4}{\pi} - \frac{1}{2} $$


Question:
I was just wondering whether or not there have been mistakes in mathematics. Not a conjecture that ended up being false, but a theorem which had a proof that was accepted for a nontrivial amount of time before someone found a hole in the argument. Does this happen anymore now that we have computers? I imagine not. But it seems totally possible that this could have happened back in the Enlightenment.
Feel free to interpret this how you wish!

In 1933, Kurt Gödel showed that the class called $\lbrack\exists^*\forall^2\exists^*, {\mathrm{all}}, (0)\rbrack$ was decidable.  These are the formulas that begin with $\exists a\exists b\ldots \exists m\forall n\forall p\exists q\ldots\exists z$, with exactly two $\forall$ quantifiers, with no intervening $\exists$s. These formulas may contain arbitrary relations amongst the variables, but no functions or constants, and no equality symbol. Gödel showed that there is a method which takes any formula in this form and decides whether it is satisfiable. (If there are three $\forall$s in a row, or an $\exists$ between the $\forall$s, there is no such method.)
In the final sentence of the same paper, Gödel added:

In conclusion, I would still like to remark that Theorem I can also be proved, by the same method, for formulas that contain the identity sign.

Mathematicians took Gödel's word for it, and proved results derived from this one, until the mid-1960s, when Stål Aanderaa  realized that Gödel had been mistaken, and the argument Gödel used would not work.  In 1983, Warren Goldfarb showed that not only was Gödel's argument invalid, but his claimed result was actually false, and the larger class was not decidable.
Gödel's original 1933 paper is Zum Entscheidungsproblem des logischen Funktionenkalküls (On the decision problem for the functional calculus of logic) which can be found on pages 306–327 of volume I of his Collected Works. (Oxford University Press, 1986.) There is an introductory note by Goldfarb on pages 226–231, of which pages 229–231 address Gödel's error specifically.


Question:
I am running linear regression models and wondering what the conditions are for removing the intercept term.
In comparing results from two different regressions where one has the intercept and the other does not, I notice that the $R^2$ of the function without the intercept is much higher. Are there certain conditions or assumptions I should be following to make sure the removal of the intercept term is valid?

The shortest answer: never, unless you are sure that your linear approximation of the data generating process (linear regression model) either by some theoretical or any other reasons is forced to go through the origin. If not the other regression parameters will be biased even if intercept is statistically insignificant (strange but it is so, consult Brooks Introductory Econometrics for instance). Finally, as I do often explain to my students, by leaving the intercept term you insure that the residual term is zero-mean.
For your two models case we need more context. It may happen that linear model is not suitable here. For example, you need to log transform first if the model is multiplicative. Having exponentially growing processes it may occasionally happen that $R^2$ for the model without the intercept is "much" higher.
Screen the data, test the model with RESET test or any other linear specification test, this may help to see if my guess is true. And, building the models highest $R^2$ is one of the last statistical properties I do really concern about, but it is nice to present to the people who are not so well familiar with econometrics (there are many dirty tricks to make determination close to 1 :)).


Question:
Complex numbers involve the square root of negative one, and most non-mathematicians find it hard to accept that such a number is meaningful. In contrast, they feel that real numbers have an obvious and intuitive meaning. What's the best way to explain to a non-mathematician that complex numbers are necessary and meaningful, in the same way that real numbers are?
This is not a Platonic question about the reality of mathematics, or whether abstractions are as real as physical entities, but an attempt to bridge a comprehension gap that many people experience when encountering complex numbers for the first time. The wording, although provocative, is deliberately designed to match the way that many people actually ask this question.

There are a few good answers to this question, depending on the audience. I've used all of these on occasion.
A way to solve polynomials
We came up with equations like $x - 5 = 0$, what is $x$?, and the naturals solved them (easily). Then we asked, "wait, what about $x + 5 = 0$?" So we invented negative numbers. Then we asked "wait, what about $2x = 1$?" So we invented rational numbers. Then we asked "wait, what about $x^2 = 2$?" so we invented irrational numbers.
Finally, we asked, "wait, what about $x^2 = -1$?" This is the only question that was left, so we decided to invent the "imaginary" numbers to solve it. All the other numbers, at some point, didn't exist and didn't seem "real", but now they're fine. Now that we have imaginary numbers, we can solve every polynomial, so it makes sense that that's the last place to stop.
Pairs of numbers
This explanation goes the route of redefinition. Tell the listener to forget everything he or she knows about imaginary numbers. You're defining a new number system, only now there are always pairs of numbers. Why? For fun. Then go through explaining how addition/multiplication work. Try and find a good "realistic" use of pairs of numbers (many exist).
Then, show that in this system,  $(0,1) * (0,1) = (-1,0)$, in other words, we've defined a new system, under which it makes sense to say that $\sqrt{-1} = i$, when $i=(0,1)$. And that's really all there is to imaginary numbers: a definition of a new number system, which makes sense to use in most places. And under that system, there is an answer to $\sqrt{-1}$.
The historical explanation
Explain the history of the imaginary numbers. Showing that mathematicians also fought against them for a long time helps people understand the mathematical process, i.e., that it's all definitions in the end.
I'm a little rusty, but I think there were certain equations that kept having parts of them which used $\sqrt{-1}$, and the mathematicians kept  throwing out the equations since there is no such thing.
Then, one mathematician decided to just "roll with it", and kept working, and found out that all those square roots cancelled each other out.
Amazingly, the answer that was left was the correct answer (he was working on finding roots of polynomials, I think). Which lead him to think that there was a valid reason to use $\sqrt{-1}$, even if it took a long time to understand it.


Question: Searched high and low and have not been able to find out what AUC, as in related to prediction, stands for or means.

Abbreviations

AUC = Area Under the Curve.
AUROC = Area Under the Receiver Operating Characteristic curve.

AUC is used most of the time to mean AUROC, which is a bad practice since as Marc Claesen pointed out AUC is ambiguous (could be any curve) while AUROC is not.

Interpreting the AUROC
The AUROC has several equivalent interpretations:

The expectation that a uniformly drawn random positive is ranked before a uniformly drawn random negative.
The expected proportion of positives ranked before a uniformly drawn random negative.
The expected true positive rate if the ranking is split just before a uniformly drawn random negative.
The expected proportion of negatives ranked after a uniformly drawn random positive.
The expected false positive rate if the ranking is split just after a uniformly drawn random positive.

Going further: How to derive the probabilistic interpretation of the AUROC?

Computing the AUROC
Assume we have a probabilistic, binary classifier such as logistic regression.
Before presenting the ROC curve (= Receiver Operating Characteristic curve), the concept of confusion matrix must be understood. When we make a binary prediction, there can be 4 types of outcomes:

We predict 0 while the true class is actually 0: this is called a True Negative, i.e. we correctly predict that the class is negative (0). For example, an antivirus did not detect a harmless file as a virus .
We predict 0 while the true class is actually 1: this is called a False Negative, i.e. we incorrectly predict that the class is negative (0). For example, an antivirus failed to detect a virus.
We predict 1 while the true class is actually 0: this is called a False Positive, i.e. we incorrectly predict that the class is positive (1). For example, an antivirus considered a harmless file to be a virus.
We predict 1 while the true class is actually 1: this is called a True Positive, i.e. we correctly predict that the class is positive (1). For example, an antivirus rightfully detected a virus.

To get the confusion matrix, we go over all the predictions made by the model, and count how many times each of those 4 types of outcomes occur:

In this example of a confusion matrix, among the 50 data points that are classified, 45 are correctly classified and the 5 are misclassified.
Since to compare two different models it is often more convenient to have a single metric rather than several ones, we compute two metrics from the confusion matrix, which we will later combine into one:

True positive rate (TPR), aka. sensitivity, hit rate, and recall, which is defined as $ \frac{TP}{TP+FN}$. Intuitively this metric corresponds to the proportion of positive data points that are correctly considered as positive, with respect to all positive data points. In other words, the higher TPR, the fewer positive data points we will miss.
False positive rate (FPR), aka. fall-out, which is defined as $ \frac{FP}{FP+TN}$. Intuitively this metric corresponds to the proportion of negative data points that are mistakenly considered as positive, with respect to all negative data points.  In other words, the higher FPR, the more negative data points will be missclassified.

To combine the FPR and the TPR into one single metric, we first compute the two former metrics with many different threshold (for example $0.00; 0.01, 0.02, \dots, 1.00$) for the logistic regression, then plot them on a single graph, with the FPR values on the abscissa and the TPR values on the ordinate. The resulting curve is called ROC curve, and the metric we consider is the AUC of this curve, which we call AUROC.
The following figure shows the AUROC graphically:

In this figure, the blue area corresponds to the Area Under the curve of the Receiver Operating Characteristic (AUROC). The dashed line in the diagonal we present the ROC curve of a random predictor: it has an AUROC of 0.5. The random predictor is commonly used as a baseline to see whether the model is useful.
If you want to get some first-hand experience:

Python:
MATLAB:


Question:
I am looking to design a set of FIR filters to implement a low pass filter. I am also trying to reduce the latency of the signal through the filter so I am wondering what the minimum number of taps I can use might be.
I know that more taps can lead to a sharper cutoff of the frequency and better stop band rejection etc. However what I'm interested in is more fundamental - if I want to implement a low pass filter with cutoff at $\frac{f_s}{100}$ say does that mean that I need at least 100 taps in order to attenuate the lower frequency signals? Or can I get away with less taps and if so is there some theoretical lower limit?

Citing Bellanger's classic Digital Processing of Signals – Theory and Practice, the point is not where your cut-off frequency is, but how much attenuation you need, how much ripple in the signal you want to preserve you can tolerate and, most importantly, how narrow your transition from pass- to stopband (transition width) needs to be.
I assume you want a linear phase filter (though you specify minimum latency, I don't think a minimum phase filter is a good idea, in general, unless you know damn well what you're going to be doing with your signal afterwards). In that case, the filter order (which is the number of taps) is
$$N\approx \frac 23 \log_{10} \left[\frac1{10 \delta_1\delta_2}\right]\,\frac{f_s}{\Delta f}$$
with
$$\begin{align}
f_s &\text{ the sampling rate}\\
\Delta f& \text{ the transition width,}\\
        & \text{ ie. the difference between end of pass band and start of stop band}\\
\delta_1 &\text{ the ripple in passband,}\\
         &\text{ ie. "how much of the original amplitude can you afford to vary"}\\
\delta_2 &\text{ the suppresion in the stop band}.
\end{align}$$
Let's plug in some numbers! You specified a cut-off frequency of $\frac{f_s}{100}$, so I'll just go ahead and claim your transition width will not be more than half of that, so $\Delta f=\frac{f_s}{200}$.
Coming from SDR / RF technology, 60 dB of suppression is typically fully sufficient – hardware, without crazy costs, won't be better at keeping unwanted signals out of your input, so meh, let's not waste CPU on having a fantastic filter that's better than what your hardware can do. Hence, $\delta_2 = -60\text{ dB} = 10^{-3}$.
Let's say you can live with a amplitude variation of 0.1% in the passband (if you can live with more, also consider making the suppression requirement less strict). That's $\delta_1 = 10^{-4}$.
So, plugging this in:
$$\begin{align}
N_\text{Tommy's filter} &\approx \frac 23 \log_{10} \left[\frac1{10 \delta_1\delta_2}\right]\,\frac{f_s}{\Delta f}\\
&= \frac 23 \log_{10} \left[\frac1{10 \cdot 10^{-4}\cdot10^{-3}}\right]\,\frac{f_s}{\frac{f_s}{200}}\\
&= \frac 23 \log_{10} \left[\frac1{10 \cdot 10^{-7}}\right]\,200\\
&= \frac 23 \log_{10} \left[\frac1{10^{-6}}\right]\,200\\
&= \frac 23 \left(\log_{10} 10^6\right) \,200\\
&= \frac 23 \cdot 6 \cdot 200\\
&= 800\text{ .}
\end{align}$$
So with your 200 taps, you're far off, iff you use an extremely narrow pass band in your filter like I assumed you would.
Note that this doesn't have to be a problem – first of all,  a 800-taps filter is scary, but frankly, only at first sight:

As I tested in this answer over at StackOverflow: CPUs nowadays are fast, if you use someone's CPU-optimized FIR implementation. For example, I used GNU Radio's FFT-FIR implementation with exactly the filter specification outline above. I got a performance of 141 million samples per second – that might or might not be enough for you. So here's our question-specific test case (which took me seconds to produce):
Decimation: If you are only going to keep a fraction of the input bandwidth, the output of your filter will be drastically oversampled. Introducing a decimation of $M$ means that your filter doesn't give you every output sample, but every $M$th one only – which normally would lead to lots and lots of aliasing, but since you're eradicating all signal that could alias, you can savely do so. Clever filter implementations (polyphase decimators) can reduce the computational effort by M, this way. In your case, you could easily decimate by $M=50$, and then, your computer would only have to calculate $\frac{1200}{50}= 24$ multiplications/accumulations per input sample – much much easier. The filters in GNU Radio generally do have that capability. And this way, even out of the FFT FIR (which doesn't lend itself very well to a polyphasing decimator implementation), I can squeeze another factor of 2 in performance. Can't do much more. That's pretty close to RAM bandwidth, in my experience, on my system. For
Latency: Don't care about it. Really, don't, unless you need to. You're doing this with typical audio sampling rates? Remember, $96\,\frac{\text{kS}}{\text{s}}\overset{\text{ridiculously}}{\ll}141\,\frac{\text{MS}}{\text{s}}$ mentioned above. So the time spent computing the filter output will only be relevant for MS/s live signal streaming. For DSP with offline data: well, add a delay to whatever signal you have in parallel to your filter to compensate. (If your filter is linear phase, it's delay will be half the filter length.) This might be relevant in a hardware implementation of the FIR filter.
Hardware implementation: So maybe your PC's or embedded device's CPU and OS really don't allow you to fulfill your latency constraints, and so you're looking into FPGA-implemented FIRs. The first thing you'll notice is that for hardware, there's different design paradigma – a "I suppress everything but $\frac1{100}$ of my input rate" filter needs a large bit width for the fixed point numbers you'd handle in Hardware (as oppposed to the floating point numbers on a CPU). So that's the first reason why you'd typically split that filter into multiple, cascaded, smaller, decimating FIR filters. Another reason is that you can, with every cascade "step", let your multipliers (typically, "DSP slices") run at a lower rate, and hence, multiplex them (number of DSP slices is usually very limited), using one multiplier for multiple taps. Yet another reason is that especially half-band filters, i.e. lowpasses that suppress half the input band and deliver half the input rate, are very efficiently implementable in hardware (as they have half the taps being zero, something that is hard to exploit in a CPU/SIMD implementation).


Question:
Now I have been learning chemistry for five years. I remember when I started organic chemistry, it was fun to draw arrows between molecules to show, as if in a mathematical demonstration, how the reactions occurred. In every lesson I had, teachers explained to us how a specific reaction (for example the Shapiro reaction) occurs step by step, explaining the chemistry of each group in each intermediate as if things were obvious (you know how teachers are).

But I've been wondering for some weeks now how does a mechanism come to be considered as accepted or still discussed?
If they use some, what kind of spectrometry techniques are used to measure the amount of each intermediate? If not how do they proceed? Do they use computational chemistry? Because for example for a reaction such like a $\mathrm{S_N2}$ it doesn't look too tricky to find how it works, whereas for Fries rearrangement (I don't know if the mechanism is considered as accepted or not) it seems to be more tricky.

(Ref.)

So can you explain the methods (at least the most used) to confirm a mechanism? I am aware that "confirm" does not mean that we are 100% sure, but rather that it is simply the best we have found so far.

Great question!
When I was teaching, Anslyn and Dougherty was a decent text for this. Here are some general comments:

First, please note that you cannot be sure about a mechanism. That's the real killer. You can devise experiments that are consistent with the mechanism but because you cannot devise and run all possible experiments, you can never be sure that your mechanism is correct.

It only takes one good experiment to refute a mechanism. If it's inconsistent with your proposed mechanism, and you're unable to reconcile the differences, then your mechanism is wrong (or incomplete at best).

Writing mechanisms for new reactions is hard. Good thing we have a whole slew of existing reactions that people already have established (highly probable, but not 100% guaranteed) mechanisms for.

Computational chemistry is pretty awesome now and provides some really good insights into how a specific reaction takes place. It doesn't always capture all relevant factors so you need to be careful. Like any tool, it can be used incorrectly.

The types of reactions you run really depend heavily on the kind of reaction you're studying. Here are some typical ones:

Labeling -- very good for complex rearrangements
Kinetics (including kinetic isotope effects) -- good for figuring out rate-determining steps
Stereochemistry -- Good for figuring out if steps are concerted (see this example mechanism I wrote for a different question)
Capturing intermediates -- This can be pretty useful but some species that you capture aren't involved in the reaction, so be careful.
Substitution effects and LFER studies -- Great for determining if charge build-up is accounted for in your mechanism

For named reactions, the Kurti-Czako book generally has seminal references if you want to actually dig through the literature for experiments.
For your specific reaction, what do we think the rate-determining step is? Probably addition into the acylium? You could try to capture the acylium intermediate.
You could run the reaction with reactants that have two labelled oxygens and reactants that have no labelled oxygens. Do they mix? If not, it's fully intramolecular. Otherwise, there's an intermolecular component and the mechanism as written is incomplete.
A quick Google search suggests that the boron trichloride mediated version has been studied via proton, deuterium, and boron NMR. I didn't follow up on this, but there's clearly some depth here.
When I was T.A.ing for Greg Fu, he really liked to use an example with the von Richter reaction. I might be able to find those references...


Question:
In my math lectures, we talked about the Gram-Determinant where a matrix times its transpose are multiplied together.
Is $A A^\mathrm T$ something special for any matrix $A$?

The main thing is presumably that $AA^T$ is symmetric. Indeed $(AA^T)^T=(A^T)^TA^T=AA^T$. For symmetric matrices one has the Spectral Theorem which says that we have a basis of eigenvectors and every eigenvalue is real.
Moreover if $A$ is invertible, then $AA^T$ is also positive definite, since $$x^TAA^Tx=(A^Tx)^T(A^Tx)> 0$$
Then we have: A matrix is positive definite if and only if it's the Gram matrix of a linear independent set of vectors.
Last but not least if one is interested in how much the linear map represented by $A$ changes the norm of a vector one can compute
$$\sqrt{\left<Ax,Ax\right>}=\sqrt{\left<A^TAx,x\right>}$$
which simplifies for eigenvectors $x$ to the eigenvalue $\lambda$ to
$$\sqrt{\left<Ax,Ax\right>}=\sqrt \lambda\sqrt{\left<x,x\right>},$$
The determinant is just the product of these eigenvalues.


Question:
I vaguely remember, that the original plan of Oxford Nanopore was to provide cheap sequencers (MinION), but charge for base-calling. For that reason the base-calling was performed in the cloud, and the plan was to make it commercial once the technology is established.
Of course, this limits the potential uses of MinION in the field, since huge areas do not have decent internet connection. Also, not all the data can be legally transferred to a third-party company in the clinical studies.
For example for the Ebola paper, they had to create a special version of their software:

An offline-capable version of MinKNOW, with internet ‘ping’ disabled
  and online updates disabled was made available to us by Oxford
  Nanopore Technologies specifically for the project

There are couple of third-party base-callers available today. I am aware of Nanocall and DeepNano, but since they are not official, it can be hard for them to keep-up with the latest versions of sequencers and cells.

Is it possible as of today to sequence offline without a special arrangement (like the Ebola one).
If not, what's the policy of Oxford Nanopore toward third-party base-callers? Are they going to help them, or to sue them eventually?

Short answer: yes, but you need to get permission (and modified software) from ONT before doing that.
... but that doesn't tell the whole story. This question has the potential to be very confusing, and that's through no fault of the questioner. The issue is that for the MinION, sequencing (or more specifically, generating the raw data in the form of an electrical signal trace) is distinct and separable from base calling. Many other sequencers also have distinct raw data and base-calling phases, but they're not democratised to the degree they are on the MinION.
The "sequencing" part of MinION sequencing is carried out by ONT software, namely MinKNOW. As explained to me during PoreCampAU 2017, when the MinION is initially plugged into a computer it is missing the firmware necessary to carry out the sequencing. The most recent version of this firmware is usually downloaded at the start of a sequencing run by sending a request to ONT servers. In the usual case, you can't do sequencing without being able to access those servers, and you can't do sequencing without ONT knowing about it. However, ONT acknowledge that there are people out there who won't have Internet access when sequencing (e.g. sequencing Ebola in Africa, or metagenomic sequencing in the middle of the ocean), and an email to <support@nanoporetech.com> with reasons is likely to result in a quick software fix to the local sequencing problem.
Once the raw signals are acquired, the "base-calling" part of MinION sequencing can be done anywhere. The ONT-maintained basecaller is Albacore, and this will get the first model updates whenever the sequencing technology is changed (which happens a lot). Albacore is a local basecaller which can be obtained from ONT by browsing through their community pages (available to anyone who has a MinION); ONT switched to only allowing people to do basecalling locally in about April 2017, after establishing that using AWS servers was just too expensive. Albacore is open source and free-as-in-beer, but has a restrictive licensing agreement which limits the distribution (and modification) of the program. However, Albacore is not the only available basecaller. ONT provide a FOSS basecaller called nanonet. It's a little bit behind Albacore on technology, but ONT have said that all useful Albacore changes will eventually propagate through to nanonet. There is another non-ONT basecaller that I'm aware of which uses a neural network for basecalling: deepnano. Other basecallers exist, each varying distances away technology-wise, and I expect that more will appear in the future as the technology stabilises and more change-resistant computer scientists get in on the act.
Edit: ONT has just pulled back the curtain on their basecalling software; all the repositories that I've looked at so far (except for the Cliveome) have been released under the Mozilla Public License (free and open source, with some conditions and limitations). Included in that software repository is Scrappie, which is their testing / bleeding-edge version of Albacore.


Question:
I would like to run some simple simulations of scattering of wavepackets off of simple potentials in one dimension.
Are there simple ways to numerically solve the one-dimensional TDSE for a single particle? I know that, in general, trying to use naïve approaches to integrate partial differential equations can quickly end in disaster. I am therefore looking for algorithms which

are numerically stable,
are simple to implement, or have easily accessible code-library implementations,
run reasonably fast, and hopefully
are relatively simple to understand.

I would also like to steer relatively clear of spectral methods, and particularly of methods which are little more than solving the time-independent Schrödinger equation as usual. However, I would be interested in pseudo-spectral methods which use B-splines or whatnot. If the method can take a time-dependent potential then that's definitely a bonus.
Of course, any such method will always have a number of disadvantages, so I would like to hear about those. When does it not work? What are common pitfalls? Which ways can it be pushed, and which ways can it not?

In the early 90s we were looking for a method to solve the TDSE fast enough to do animations in real time on a PC and came across a surprisingly simple, stable, explicit method described by PB Visscher in Computers in Physics: "A fast explicit algorithm for the time-dependent Schrödinger equation".  Visscher notes that if you split the wavefunction into real and imaginary parts, $\psi=R+iI$, the SE becomes the system:
\begin{eqnarray}\frac{dR}{dt}&=&HI \\
\frac{dI}{dt}&=&-HR \\
H&=&-\frac{1}{2m}\nabla^2+V\end{eqnarray}
If you then compute $R$ and $I$ at staggered times ($R$ at $0,\Delta t,2\Delta t,...$ and $I$ at $0.5\Delta t, 1.5\Delta t,...)$, you get the discretization:
$$R(t+\frac{1}{2} \Delta t)=R(t-\frac{1}{2} \Delta t)+\Delta t HI(t)$$
$$I(t+\frac{1}{2} \Delta t)=I(t-\frac{1}{2} \Delta t)-\Delta t HR(t)$$
with
$$\nabla^2\psi(r,t)=\frac{\psi(r+\Delta r,t)-2\psi(r,t)+\psi(r-\Delta r,t)}{\Delta r^2}$$ (standard three-point Laplacian).
This is explicit, very fast to compute, and second-order accurate in $\Delta t$.
Defining the probability density as
$$P(x,t)=R^2(x,t)+I(x,t+\frac{1}{2} \Delta t)I(x,t-\frac{1}{2} \Delta t)$$ at integer time steps and,
$$P(x,t)=R(x,t+\frac{1}{2} \Delta t)R(x,t-\frac{1}{2} \Delta t)+I^2(x,t)$$ at half-integer time steps
makes the algorithm unitary, thus conserving probability.
With enough code optimization, we were able to get very nice animations computed in real-time on 80486 machines.  Students could "draw" any potential, choose a total energy, and watch the time-evolution of a gaussian packet.


Question:
I read some methods but they're not accurate. They use the Archimedes principle and they assume uniform body density which of course is far from true. Others are silly like this one:
Take a knife then remove your head.
Place it on some scale
Take the reading
re-attach your head.
I'm looking for some ingenious way of doing this accurately without having to lie on your back  and put your head on a scale which isn't a good idea.

Get someone to relax their neck as much as possible, stabilize their torso, then punch them in the head with a calibrated fist and measure the initial acceleration.  Apply $\vec F=m \vec a$.


Question:
In these notes by Terence Tao is a proof of Stirling's formula.  I really like most of it, but at a crucial step he uses the integral identity
$$n! = \int_{0}^{\infty} t^n e^{-t}  dt$$
, coming from the Gamma function.  I have a mathematical confession to make: I have never "grokked" this identity.  Why should I expect the integral on the right to give me the number of elements in the symmetric group on $n$ letters?
(It's not that I don't know how to prove it.  It's quite fun to prove; my favorite proof observes that it is equivalent to the integral identity $\int_{0}^{\infty} e^{(x-1)t}  dt = \frac{1}{1 - x}$.  But if someone were to ask me, "Yes, but why, really?" I would have no idea what to say.)
So what are more intuitive ways of thinking about this identity?  Is there a probabilistic interpretation?  What kind of random variable has probability density function $\frac{t^n}{n!} e^{-t}$?  (What does this all have to do with Tate's thesis?)
As a rough measure of what I'm looking for, your answer should make it obvious that $t^n e^{-t}$ attains its maximum at $t = n$.
Edit:  The kind of explanation I'm looking for, as I described in the comments, is similar to this explanation of the beta integral.

I haven't quite got this straight yet, but I think one way to go is to think about choosing points at random from the positive reals. This answer is going to be rather longer than it really needs to be, because I'm thinking about this in a few (closely related) ways, which probably aren't all necessary, and you can decide to reject the uninteresting parts and keep anything of value. Very roughly, the idea is that if you "randomly" choose points from the positive reals and arrange them in increasing order, then the probability that the $(n+1)^\text{th}$ point is in a small interval $(t,t+dt)$ is a product of probabilities of independent events, $n$ factors of $t$ for choosing $n$ points in the interval $[0,t]$, one factor of $e^{-t}$ as all the other points are in $[t,\infty)$, one factor of $dt$ for choosing the point in $(t,t+dt)$, and a denominator of $n!$ coming from the reordering. At least, as an exercise in making a simple problem much harder, here it goes...
I'll start with a bit of theory before trying to describe intuitively why the probability density $\dfrac{t^n}{n!}e^{-t}$ pops out.
We can look at the homogeneous Poisson process (with rate parameter $1$). One way to think of this is to take a sequence on independent exponentially distributed random variables with rate parameter $1$, $S_1,S_2,\ldots$, and set $T_n=S_1+\cdots+S_n$. As has been commented on already, $T_{n+1}$ has the probability density function $\dfrac{t^n}{n!}e^{-t}$. I'm going to avoid proving this immediately though, as it would just reduce to manipulating some integrals. Then, the Poisson process $X(t)$ counts the number of times $T_i$ lying in the interval $[0,t]$.
We can also look at Poisson point processes (aka, Poisson random measures, but that Wikipedia page is very poor). This is just makes rigorous the idea of randomly choosing unordered sets of points from a sigma-finite measure space $(E,\mathcal{E},\mu)$. Technically, it can be defined as a set of nonnegative integer-valued random variables $\{N(A)\colon A\in\mathcal{E}\}$ counting the number of points chosen from each subset A, such that $N(A)$ has the Poisson distribution of rate $\mu(A)$ and $N(A_1),N(A_2),\ldots$ are independent for pairwise disjoint sets $A_1,A_2,\ldots$. By definition, this satisfies
$$
\begin{array}{}\mathbb{P}(N(A)=n)=\dfrac{\mu(A)^n}{n!}e^{-\mu(A)}.&&(1)\end{array}
$$
The points $T_1,T_2,\ldots$ above defining the homogeneous Poisson process also define a Poisson random measure with respect to the Lebesgue measure $(\mathbb{R}\_+,{\cal B},\lambda)$. Once you forget about the order in which they were defined and just regard them as a random set that is, which I think is the source of the $n!$. If you think about the probability of $T_{n+1}$ being in a small interval $(t,t+\delta t)$ then this is just the same as having $N([0,t])=n$ and $N((t,t+\delta t))=1$, which has probability $\dfrac{t^n}{n!}e^{-t}\delta t$.
So, how can we choose points at random so that each small set $\delta A$ has probability $\mu(\delta A)$ of containing a point, and why does $(1)$ pop out? I'm imagining a hopeless darts player randomly throwing darts about and, purely by luck, hitting the board with some of them. Consider throwing a very large number $N\gg1$ of darts, independently, so that each one only has probability $\mu(A)/N$ of hitting the set, and is distributed according to the probability distribution $\mu/\mu(A)$. This is consistent, at least, if you think about the probability of hitting a subset $B\subseteq A$. The probability of missing with all of them is $(1-\mu(A)/N)^N=e^{-\mu(A)}$. This is a multiplicative function due to independence of the number hitting disjoint sets. To get the probability of one dart hitting the set, multiply by $\mu(A)$ (one factor of $\mu(A)/N$ for each individual dart, multiplied by $N$ because there are $N$ of them). For $n$ darts, we multiply by $\mu(A)$ $n$ times, for picking $n$ darts to hit, then divide by $n!$ because we have over-counted the subsets of size $n$ by this factor (due to counting all $n!$ ways of ordering them). This gives $(1)$. I think this argument can probably be cleaned up a bit.
Getting back to choosing points randomly on the positive reals, this gives a probability of $\dfrac{t^n}{n!}e^{-t}dt$ of picking $n$ in the interval $[0,t]$ and one in $(t,t+dt)$. If we sort them in order as $T_1\lt T_2\lt\cdots$ then $\mathbb{P}(T_1\gt t)=e^{-t}$, so it is exponentially distributed. Conditional on this, $T_2,T_3,\ldots$ are chosen randomly from $[T_1,\infty)$, so we see that the differences $T_{i+1}-T_{i}$ are independent and identically distributed.
Why is $\dfrac{t^n}{n!}e^{-t}$ maximized at $t=n$? I'm not sure why the mode should be a simple property of a distribution. It doesn't even exist except for unimodal distributions. As $T_{n+1}$ is the sum of $n+1$ IID random variables of mean one, the law of large numbers suggests that it should be peaked approximately around $n$. The central limit theorem goes further, and gives $\dfrac{t^n}{n!}e^{-t}\approx\dfrac{1}{\sqrt{2\pi n}}e^{-(t-n)^2/{2n}}$. Stirling's formula is just this evaluated at $t=n$.
What's this to do with Tate's thesis? I don't know, and I haven't read it (but intend to), but have a vague idea of what it's about. If there is anything to do with it, maybe it is something to do with the fact that we are relating the sums of independent random variables $S_1+\cdots+S_n$ distributed with respect to the Haar measure on the multiplicative group $\mathbb{R}_+$ (edit: oops, that's not true, the multiplicative Haar measure has cumulative distribution given by $\log$, not $\exp$) with randomly chosen sets according to the Haar measure on the additive group $\mathbb{R}$.


Question:
I have a reference genome and now I would like to call structural variants from Illumina pair-end whole genome resequencing data (insert size 700bp).
There are many tools for SV calls (I made an incomplete list of tools bellow). There is also a tool for merging SV calls from multiple methods / samples - SURVIVOR. Is there a combination of methods for SV detection with optimal balance between sensitivity and specificity?
There is a benchmarking paper, evaluating sensitivity and specificity of SV calls of individual methods using simulated pair-end reads. However, there is no elaboration on the combination of methods.
List of tools for calling structural variants:

Lumpy
BreakDancer
Manta
Delly
GRIDSS
Meerkat
Pindel
Softsv
Prism

I think the best method or combination of methods will depend on aspects of the data that might vary from one dataset to another. E.g. the type, size, and frequency of structural variants, the number SNVs, the quality of the reference, contaminants or other issues (e.g. read quality, sequencing errors) etc.
For that reason, I'd take two approaches:

Try a lot of methods, and look at their overlap
Validate a subset of calls from different methods by wet lab experiments - in the end this is the only real way of knowing the accuracy for a particular case.


Question:
Among my friends it is a sort of 'common wisdom' that you should throw away water after a couple of days if it was taken from the tap and stored in a bottle outside the fridge, because it has 'gone bad'.
First of all, the couple of days is not very well defined, which already makes me a bit suspicious. Second, I cannot think of anything in tap water that would make the water undrinkable after a couple of days already.
Can someone clarify this issue for me? Does tap water really 'go bad' after a couple of days outside the fridge? Why?

First of all, it depends on how the tap water was treated before it was piped to your house. In most cases, the water was chlorinated to remove microorganisms. By the time the water arrives at your house, there is very little (if any) chlorine left in the water. When you fill you container, there is likely to be some microorganisms present (either in the container or in the water).
In a nutrient rich environment, you can see colonies within 3 days. For tap water, it will probably take 2 to 3 weeks. But that doesn't mean that the small amount of growth doesn't produce bad tasting compounds (acetic acid, urea, etc.).
BTW Nicolau Saker Neto, cold water dissolves more gas than hot water. Watch when you heat water on your stove. Before it boils, you will see gas bubbles that form on the bottom and go to the surface (dissolved gases) and bubbles that disappear while rising to the surface (water vapor).


Question:
If I have sampled a signal using proper sampling methods (Nyquist, filtering, etc) how do I relate the length of my FFT to the resulting frequency resolution I can obtain?
Like if I have a 2,000 Hz and 1,999 Hz sine wave, how would I determine the length of FFT needed to accurately tell the difference between those two waves?

The frequency resolution is dependent on the relationship between the FFT length and the sampling rate of the input signal.
If we collect 8192 samples for the FFT then we will have:
$$\frac{8192\ \text{samples}}{2} = 4096\ \,\text{FFT bins}$$
If our sampling rate is 10 kHz, then the Nyquist-Shannon sampling theorem says that our signal can contain frequency content up to 5 kHz. Then, our frequency bin resolution is:
$$\frac{5\ \text{kHz}}{4096\ \,\text{FFT bins}} \simeq \frac{1.22\ \text{Hz}}{\text{bin}}$$
This is may be the easier way to explain it conceptually but simplified:  your bin resolution is just \$\frac{f_{samp}}{N}\$, where \$f_{samp}\$ is the input signal's sampling rate and \$N\$ is the number of FFT points used (sample length).
We can see from the above that to get smaller FFT bins we can either run a longer FFT (that is, take more samples at the same rate before running the FFT) or decrease our sampling rate.
The Catch:
There is always a trade-off between temporal resolution and frequency resolution.
In the example above, we need to collect 8192 samples before we can run the FFT, which when sampling at 10 kHz takes 0.82 seconds.
If we tried to get smaller FFT bins by running a longer FFT it would take even longer to collect the needed samples.
That may be OK, it may not be.  The important point is that at a fixed sampling rate, increasing frequency resolution decreases temporal resolution. That is the more accurate your measurement in the frequency domain, the less accurate you can be in the time domain. You effectively lose all time information inside the FFT length.
In this example, if a 1999 Hz tone starts and stops in the first half of the 8192 sample FFT and a 2002 Hz tone plays in the second half of the window, we would see both, but they would appear to have occurred at the same time.
You also have to consider processing time.  A 8192 point FFT takes some decent processing power.  A way to reduce this need is to reduce the sampling rate, which is the second way to increase frequency resolution.
In your example, if you drop your sampling rate to something like 4096 Hz, then you only need a 4096 point FFT to achieve 1 Hz bins and can still resolve a 2 kHz signal. This reduces the FFT bin size, but also reduces the bandwidth of the signal.
Ultimately with an FFT there will always be a trade-off between frequency resolution and time resolution. You have to perform a bit of a balancing act to reach all goals.


Question: After some google searches, I found multiple tools with overlapping functionality for viewing, merging, pileuping, etc. I have not got time to try these tools, so will just see if anyone already know the answer: what is the difference between them? Performance? Features? Or something else? Which one is generally preferred? Samtools?

The obvious answer is that different people wrote them. It's fairly common in bioinformatics for people with a computer science background to get frustrated with existing tools and create their own alternative tool (rather than improving an existing tool). Over time, tools with similar initial aims will have popular functionality implemented in them (and eventually have bugs fixed), such that it matters less which particular tool is used for common methods.
Here's my impression of the tools:

samtools -- originally written by Heng Li (who also wrote BWA). The people who now work on samtools also maintain the alignment file format specification for SAM, BAM, and CRAM, so any new file format features are likely to be implemented in samtools first.
bamtools -- this looks like it was written by Derek Barnett, Erik Garrison, Gabor Marth, Michael Stromberg to mirror the samtools toolkit, but using C++ instead of C
picard -- Java tools written by the Broad Institute for manipulating BAM/SAM files. Being written in Java makes it easier to port to other operating systems, so it may work better on Windows systems. I'm more familiar with picard being used at a filtering level (e.g. removing PCR duplicates), and for statistical analysis, but it links in with the Java HTS library from samtools, so probably shares a lot of the functionality.
sambamba -- a GPL2-licensed toolkit written in the D programming language (presumably by Artem Tarasov and Pjotr Prins). I haven't used it (and don't know people who have used it), but the github page suggests "For almost 5 years the main advantage over samtools was parallelized BAM reading. Finally in March 2017 samtools 1.4 was released, reaching parity on this."
biobambam -- written by German Tischler in C++. I also have no experience with this toolkit. This seems to have some multithreading capability, but is otherwise similar to other toolkits.


Question:
I've been using the $K$-fold cross-validation a few times now to evaluate performance of some learning algorithms, but I've always been puzzled as to how I should choose the value of $K$.
I've often seen and used a value of $K = 10$, but this seems totally arbitrary to me, and I now just use $10$ by habit instead of thinking it over. To me it seems that you're getting a better granularity as you improve the value of $K$, so ideally you should make your $K$ very large, but there is also a risk to be biased.
I'd like to know what the value of $K$ should depend on, and how I should be thinking about this when I evaluate my algorithm. Does it change something if I use the stratified version of the cross-validation or not?

The choice of $k = 10$ is somewhat arbitrary. Here's how I decide $k$:

first of all, in order to lower the variance of the CV result, you can and should repeat/iterate the CV with new random splits.  This makes the argument of high $k$ => more computation time largely irrelevant, as you anyways want to calculate many models. I tend to think mainly of the total number of models calculated (in analogy to bootstrapping). So I may decide for 100 x 10-fold CV or 200 x 5-fold CV.
@ogrisel already explained that usually large $k$ mean less (pessimistic) bias. (Some exceptions are known particularly for $k = n$, i.e. leave-one-out).
If possible, I use a $k$ that is a divisor of the sample size, or the size of the groups in the sample that should be stratified.
Too large $k$ mean that only a low number of sample combinations is possible, thus limiting the number of iterations that are different.

For leave-one-out: $\binom{n}{1} = n = k$ different model/test sample combinations are possible. Iterations don't make sense at all.
E.g. $n = 20$ and $k = 10$: $\binom{n=20}{2} = 190 = 19 ⋅ k$ different model/test sample combinations exist. You may consider going through all possible combinations here as 19 iterations of $k$-fold CV or a total of 190 models is not very much.

These thoughts have more weight with small sample sizes. With more samples available $k$ doesn't matter very much. The possible number of combinations soon becomes large enough so the (say) 100 iterations of 10-fold CV do not run a great risk of being duplicates. Also, more training samples usually means that you are at a flatter part of the learning curve, so the difference between the surrogate models and the "real" model trained on all $n$ samples becomes negligible.


Question:
Are all Morse code strings uniquely decipherable?  Without the spaces,
......-...-..---.-----.-..-..-..

could be Hello World but perhaps the first letter is a 5 -- in fact it looks very unlikely an arbitrary sequence of dots and dashes should have a unique translation.

One might possibly use the Kraft inequality but that only applies to prefix codes.
Morse code with spaces is prefix code in which messages can always be uniquely decoded.  Once we remove the spaces this is no longer true.

In the case I am right, and all Morse code message can't be uniquely decoded, is there a way to list all the possible messages?  Here are some related exercise I found on codegolf.SE

The following are both plausible messages, but have a completely different meaning:
SOS HELP      = ...---...  .... . .-.. .--.        => ...---.........-...--.
I AM HIS DATE = ..  .- --  .... .. ...  -.. .- - . => ...---.........-...--.


Question:
It is known that acid should be added to water and not the opposite because it results in an exothermic reaction.
Our stomach contains HCl, so why don't we explode when we drink water?

The hydrochloric acid in the stomach is already quite dilute; its pH is in fact no less than 1.5 so that at the extreme maximum there is only 0.03 molar hydrochloric acid.  And even that small amount is, of course, stabilized by being dissociated into solvated ions.  There is just not enough stuff to react violently.


Question:
Every scientist needs to know a bit about statistics: what correlation means, what a confidence interval is, and so on. Similarly, every scientist ought to know a bit about computing: the question is, what? What it is reasonable to expect every working scientist to know about building and using software? Our list of core skills---the things people ought to know before they tackle anything with "cloud" or "peta" in its name---is:

basic programming (loops, conditionals, lists, functions, and file I/O)
the shell/basic shell scripting
version control
how much to test programs
basic SQL

There's a lot that isn't in this list: matrix programming (MATLAB, NumPy, and the like), spreadsheets when used well, they're as powerful as most programming languages), task automation tools like Make, and so on.
So: what's on your list? What do you think it's fair to expect every scientist to know these days? And what would you take out of the list above to make room for it? Nobody has enough time to learn everything.

"Computational Scientist" is somewhat broad because it includes people who doing numerical analysis with paper/LaTeX and proof-of-concept implementations, people writing general purpose libraries, and people developing applications that solve certain classes of problems, and end users that utilize those applications. The skills needed for these groups are different, but there is a great advantage to having some familiarity with the "full stack". I'll describe what I think are the critical parts of this stack, people who work at that level should of course have deeper knowledge.
Domain knowledge (e.g. physics and engineering background)
Everyone should know the basics of the class of problems they are solving. If you work on PDEs, this would mean some general familiarity with a few classes of PDE (e.g. Poisson, elasticity, and incompressible and compressible Navier-Stokes), especially what properties are important to capture "exactly" and what can be up to discretization error (this informs method selection regarding local conservation and symplectic integrators). You should know about some functionals and analysis types of interest to applications (optimization of lift and drag, prediction of failure, parameter inversion, etc).
Mathematics
Everyone should have some general familiarity with classes of methods relevant to their problem domain. This includes basic characteristics of sparse versus dense linear algebra, availability of "fast methods", properties of spatial and temporal discretization techniques and how to evaluate what properties of a physical problem are needed for a discretization technique to be suitable. If you are mostly an end user, this knowledge can be very high level.
Software engineering and libraries
Some familiarity with abstraction techniques and library design is useful for almost everyone in computational science. If you work on proof-of-concept methods, this will improve the organization of your code (making it easier for someone else to "translate" it into a robust implementation). If you work on scientific applications, this will make your software more extensible and make it easier to interface with libraries. Be defensive when developing code, such that errors are detected as early as possible and the error messages are as informative as possible.
Tools
Working with software is an important part of computational science. Proficiency with your chosen language, editor support (e.g. tags, static analysis), and debugging tools (debugger, valgrind) greatly improves your development efficiency. If you work in batch environments, you should know how to submit jobs and get interactive sessions. If you work with compiled code, a working knowledge of compilers, linkers, and build tools like Make will save a lot of time. Version control is essential for everyone, even if you work alone. Learn Git or Mercurial and use it for every project. If you develop libraries, you should know the language standards reasonably completely so that you almost always write portable code the first time, otherwise you will be buried in user support requests when your code doesn't build in their funky environment.
LaTeX
LaTeX is the de-facto standard for scientific publication and collaboration. Proficiency with LaTeX is important to be able to communicate your results, collaborate on proposals, etc. Scripting the creation of figures is also important for reproducibility and data provenance.


Question:
We know the halting problem (on Turing Machines) is undecidable for Turing Machines. Is there some research into how well the human mind can deal with this problem, possibly aided by Turing Machines or general purpose computers?
Note: Obviously, in the strictest sense, you can always say no, because there are Turing Machines so large they couldn't even be read in the life span of a single human. But this is a nonsensical restriction that doesn't contribute to the actual question. So to make things even, we'd have to assume humans with an arbitrary life span.
So we could ask: Given a Turing Machine T represented in any suitable fashion, an arbitrarily long-lived human H and an arbitrary amount of buffer (i.e. paper + pens), can H decide whether T halts on the empty word?

Corollary: If the answer is yes, wouldn't this also settle if any computer has a chance of passing the turing-test?

It is very hard to define a human mind with a such mathematical rigor as it is possible to define a Turing machine. We still do not have a working model of a mouse brain however we have the hardware capable of simulating it. A mouse has around 4 million neurons in the cerebral cortex. A human being has 80-120 billion neurons (19-23 billion neocortical). Thus, you can imagine how much more research will need to be conducted in order to get a working model of a human mind.
You could argue that we only need to do top-down approach and do not need to understand individual workings of every neuron. In that case you might study some non-monotonic logic, abductive reasoning, decision theory, etc. When the new theories come, more exceptions and paradoxes occur. And it seems we are nowhere close to a working model of a human mind.

After taking propositional and then predicate calculus  I asked my logic professor:
"Is there any logic that can define the whole set of human language?"
He said:
"How would you define the following?
To see a World in a grain of sand
And a Heaven in a wild flower,
Hold Infinity in the palm of your hand
And Eternity in an hour.
If you can do it, you will become famous."

There have been debates that a human mind might be equivalent to a Turing machine. However, a more interesting result would be for a human mind not to be Turing-equivalent, that it would give a rise to a definition of an algorithm that is not possibly computable by a Turing machine. Then the Church's thesis would not hold and there could possibly be a general algorithm that could solve a halting problem.
Until we understand more, you might find some insights in a branch of philosophy. However, no answer to your question is generally accepted.


Question:
I have been looking into C++ linear algebra libraries for a project I've been working on. Something that I still don't have any grasp on is the connection of BLAS and LAPACK to other linear algebra libraries.
Looking through this article on linear algebra libraries I found it interesting that:

some libraries are independent from BLAS and LAPACK
some require BLAS and LAPACK
some have optional interfaces to BLAS and LAPACK
and, as I understand it, you can use BLAS and LAPACK to solve linear algebra problems directly

I can imagine that some libraries are simply C++ interfaces to BLAS and LAPACK libraries written in C and Fortran and others have implemented their own substitute routines, but

What are the implications of the optional interfaces to BLAS and LAPACK? What are you loosing by opting out, and what are the libraries doing instead?
Do any of the libraries provide more than just an interface? For example, UMFPACK is written in C and has optional interfaces to BLAS and LAPACK. What can UMFPACK (or other libraries) do that BLAS and LAPACK can't on their own?

As far as I know, Lapack is the only publicly available implementation of a number of algorithms (nonsymmetric dense eigensolver, pseudo-quadratic time symmetric eigensolver, fast Jacobi SVD). Most libraries that don't rely on BLAS+Lapack tend to support very primitive operations like matrix multiplication, LU factorization, and QR decomposition. Lapack contains some of the most sophisticated algorithms for dense matrix computations that I don't believe are implemented anywhere else.
So to answer your questions (at least partially),

By opting out of BLAS/Lapack, you are typically not missing functionality (unless the optional interface was designed so that there is no substitute implementation, which is rare). If you wanted to do very sophisticated operations, those other libraries probably don't implement it themselves anyways. Since BLAS can be highly tuned to your architecture, you could be missing out on huge speedups (an order of magnitude speed difference is not unheard of).
You mention UMFPACK, which is for sparse matrix factorization. BLAS/Lapack is only concerned about dense matrices. UMFPACK at some level needs to work on medium size dense problems, which it can do using custom implementations or by calling BLAS/Lapack. Here the difference is only in speed.

If speed is of great concern, try to use a library that supports optional BLAS/Lapack bindings, and use them in the end when you want things faster.