Are diamond berries possible?

Question: Diamonds are carbon.  Plants take in CO2 and use the carbon.  Chemically, could the right kind of plant have diamonds for berries, or is there some other limiting factor?
Comment: It is more likely to have a plant bearing a carbon nanotube melon than a diamond berry.
Comment: "Crystal" is a term that can mean different things. It doesn't specifically mean geology based. A diamond is very much geology based, though (immense pressure and heat). If you're OK with synthetic diamonds, and stretching how plant life works, I suppose you could come up with some sort of vapor-condensing process ala: http://en.wikipedia.org/wiki/Synthetic_diamond#Chemical_vapor_deposition
Comment: Real cool question. Even better would be to get answers with energy requirements, duration of diamond growth, details of the synthesis process... :-) *not asking for much!*
Comment: @DA. Diamonds are crystals.  Some plants can grow other crystals. http://www.asknature.org/strategy/6eb4107cbcdde41d35818191b29f60f5#.VT8Py85h3eQ
Comment: Well, if that's the case, the natural diamond wouldn't work. I think you'd have to leverage playing off of the chemical process for cultured diamonds.
Comment: In what context are they possible? In reality, no. Diamonds are geology. Plants are biology.
Comment: @DA. I'm interested in the diamond carbon crystal structure on a large enough scale that they look like berries.
Comment: Well, I go back to my initial question about context. Is this a hard science fiction story? Pure fantasy? Magic?
Comment: @DA. Hard science fiction, on earth.  This would be a genetically engineered plant probably.
Comment: Cultured diamonds sounds like the way to put it.
Comment: Re berry size: see my main answer. Have diamond forems grow out on their old dead skeletons like coral.
Comment: @user6760 ...I'm not eating that.
Comment: Sounds like a brand new type of alchemy to me
Answer: A plant could produce a diamond chemically by laying down carbon atoms in the right crystalline formation. Heat and pressure are for geological diamonds, they aren't relevant when you're dealing with atoms at a time. There is no reason for them to do this, evolution-wise, but since you're talking about genetic engineering that doesn't matter. Forming diamonds this way would only be limited by how much carbon the plant can get. They could strip hydrogen, oxygen, etc. from any organic compound, but it would probably be much more efficient to feed it carbon directly as either graphite or charcoal.
The problem is not with "diamond" but with "berry". From Wikipedia:

...a berry is a fleshy fruit produced from a single flower and containing one ovary.

Which a diamond definitely is not. But in terms of diamond trees with clusters of jewels, it's possible.
Comment: "laying down carbon atoms" is easier to say than to do. Any time you have a surface of pure carbon, you have to prevent oxygen and hydrogen from attaching to the said surface, and their attachment may be more favorable energetically.
I'm not sure whether a pure biological process may serve as a perfect filter: there certainly isn't one now, but it's hard to say whether this is possible in principle.
Comment: TIL I eat plant ovaries.
Comment: @Sam: Most of the "berries" you eat are probably not berries [botanically speaking](http://www.botanical-online.com/frutoscarnososangles.htm) but drupes, pomes and other things. But yes, you are eating the reproductive organs of other life forms. But then, people happily eat rocky mountain oysters.
Comment: Plants get 100% of their carbon from air (or very close to it, say 99.999%) and since 50% of wood is carbon (45% oxygen, 4% hydrogen) it means that wood is mainly created from air. Plants are very efficient at converting air into solid mass and much, much less efficient at sucking solid mass from the ground or water so feeding them graphite or charcoal directly would be inefficient. Indeed, plants essentially created charcoal from air (we just roast the wood to create charcoal).
Comment: Or just allow hydrogen/oxygen to bond to the surface, and remove it on the fly when you need to. Or perhaps the outermost layer could be a graphene sheet,which wouldn't bond with H/O, and would be 'crumpled' into a new layer of diamond as the next graphene layer is formed?
Comment: If diamonds grew from plants they would be worth way less, as much of it's value comes from it being a scarce and hard to obtain resource. As an example, before humans knew how to make glass, it was considered a jewel in ancient times because the only source came from meteorites that  fell in the desert. See [worthless yellow rocks](http://tvtropes.org/pmwiki/pmwiki.php/Main/WorthlessYellowRocks)
Comment: Sure there's an evolutionary reason if they can attach their seeds to the diamonds. People want sparkly things and will take them all over the place, and then the seeds end up all over the place. It's the same evolutionary principle that made fruit delicious.
Comment: Imagine the evolutionary advantage of being the one plant most protected by the human race on the entire planet. At least until the economy crashes and they all get burned, making the remaining organic diamonds untradable by law.
Comment: Does anyone know the energy input needed to drive this reaction?  Is it something within the range of what a plant could accomplish?
Comment: @SeanBoddy By comparison with the ebony tree, now endangered in much of its natural range, I don't anticipate good things for the diamondberry bush.
Comment: @Resonating, the ebony tree wouldn't be in as much trouble if you didn't have to kill it to get what you wanted. But, yes, poaching would be more troublesome than in the case of exotic lumber, unless it's very easy to pluck the "berries" rather than slash the plant. But can you imagine the security measures? Jeez. This world would be weird.
Comment: It would be extremely expensive to plant a bush and take a long time to bear fruit. I anticipate well-defended greenhouses and well-paid gardeners.
Answer: Quite possibly! Biology has the advantage of being able to micromanage what is going on chemically and mechanically. This often allows life to achieve results that humans currently achieve with huge chambers at incredible temperatures and pressures. With advances in genetic engineering we will become able to leverage this more and more.
We can now make synthetic diamonds quite easily using Chemical vapour deposition. Although it would be quite difficult for a plant to "handle" gaseous carbon due to its extreme temperature, the plant could instead liberate single carbon atoms at high energy. Of course this would be happening simultaneously all over the surface of the diamond, and the diamond would slowly grow, probably over years.
Note that the diamond itself would not be "alive"—it would certainly not have any reproductive capacity. Perhaps living cells could be embedded within it, though. It's possible that the enzymes and/or cells that surround the diamond during its formation would occasionally get trapped within it, particularly with "early prototypes" of the plant. I expect this would manifest as cloudiness of the diamonds. Conceivably such diamonds could become fashionable due to the knowledge that it is caused by living matter trapped inside, at which point genetic engineers might intentionally manipulate the process to create visible patterns within the diamonds.
Comment: Sounds similar to how oysters make pearls. The diamonds could just be an allergic reaction to a foreign irritant.
Comment: We make synthetic *golden-brown, polycrystalline* diamonds quite easily using CVD.  Clear-ish single-crystal diamonds are much more difficult.
Answer: Diamonds are considerably more than just carbon. According to this, there are believed to be four steps to the formation of diamonds:

Bury carbon dioxide 100 miles into Earth.
Heat to about 2,200 degrees Fahrenheit.
Squeeze under pressure of 725,000 pounds per square inch.
Quickly rush towards Earth's surface to cool.

I'm fairly certain that plants combust a few degrees below 2,200 degrees Fahrenheit.
There are a few methods we've managed to produce synthetic diamonds with, but both involve high temperatures.
Comment: This is a description of the geological formation of diamonds. Assuming plants would need to go through that process to produce diamonds is like assuming animals couldn't produce carbon dioxide without being on fire.
Comment: Perhaps the "easiest" path would be pressure and heat, but is it (at least theoretically) possible, for instance, to assemble carbon into diamond on a nano scale using proteins or other biological processes?  Or is there some kind of energy barrier or other limiting factor to overcome?
Comment: @SamWashburn Creating a diamond isn't a chemical process; it's a physical one.
Comment: Reality-check does not mean Earth check. Typically it is used to check if something is possible in our universe without breaking rules of physics.
Comment: I was thinking more along the lines of the plant molecularly assembling diamonds.  But I'm not knowledgable about chemical processes enough to know if that's even feasible.
Comment: @user2357112 it's all semantics at this point, but if we're talking natural diamonds (which would be likely what a plant would make) then we are talking about the geological formation of them.
Comment: @user2357112 The OP used the reality-check tag. I provided the process by which diamonds are formed _on Earth_. Could there be some biological entity somewhere in the universe that can produce diamonds? Sure, it's possible. But it doesn't exist on Earth.
Comment: @Frostfyre: If the OP has a world with plants that produce diamonds then it certainly wouldn't be our Earth. If you say: `Could there be some biological entity somewhere in the universe that can produce diamonds? Sure` - then that answers the question.
Comment: @slebetman Note the reality-check tag. I don't know the biological processes of extraterrestrial organisms. Had the OP not included that tag, I wouldn't have pointed out how diamonds are formed.
Comment: @Frostfyre The tag may be reality check, but the site is *Word Building*. The earth is already built, so questions are *obviously* not asking about the earth.
Comment: @Shane There's been so many up- and downvotes on this answer so far that I can't do anything but laugh. Apparently, the WB community can't decide if this is a good answer or not.
Comment: @Frostfyre I imagine the upvotes are from people who don't know that there are other ways to make diamonds. I would have upvoted this answer because I didn't know better, either.
Comment: It is likely that the natural process for making diamonds includes dissolving carbon in a metal, crystallizing out the carbon, and physically breaking up the products until the metal traces are removed.  The dissolving with metal stage greatly reduces the pressures required.
Answer: Definitely not naturally - for the simple reason this is completely impractical from evolutionary point of view.
Diamond requires a lot of energy to form. Even if the process was atom-by-atom, with the biology handily providing easily detached placeholders preventing the surface from oxidation (forming weak bonds with the diamond's carbon, then breaking them and replacing with more carbon atoms making the diamond grow) attaching each new atom would take a lot of energy; energy the plant must obtain on top of maintaining its own growth and life processes. Energy better spent on more useful endeavors like growing taller to outgrow competing plants, or producing more seeds to increase chance of finding fertile soil for them.
OTOH artificial species like this would be possible. I doubt it would resemble berry bushes as it would need a massive leaf system to acquire all the needed solar energy and carbon dioxide, a massive root system to provide water and nutrients to the massive leaf system, a "skeleton" to support both, and the diamonds would not be exposed to the air, instead growing inside some fruits that would prevent oxidation and contamination of the growth surface.
So - replace  your diamond berries with diamond trees :)
Comment: @SamWashburn: Ask at Chemistry.SE for heat produced by burning a unit weight (say, 1 gram) of diamond. That's the pure energy in Joules. Triple that for all the extraneous processes needed for the construction process (usual estimate for biological processes). Divide by time taken for the diamond growth for "wattage input" and compare to other plants (adding standard plant self-maintenance margin, e.g. if producing diamond takes X, generic plant survival takes Y, your plant takes X+Y (+ some, as Y increases survival costs)).
Comment: @SamWashburn: 1) -50% night time; 2: (integral[0-pi] sin(x)) / pi = 2/pi = 63% - proportion of daylight morning-evening vs peak all the time; 3) 50% for moderate climate area. Probably even less as the light must get through thicker layer of atmosphere, and that's not accounting for cloudy and partially overcast days. I'd say 5% of the peak is closer to the ballpark figure. 100 MJ/day * 5%(exposure) * 5%(efficiency) = 250kJ At ~75% - 60kJ towards building the diamonds; 20kJ per diamond, so closer to 3 carats per day. Of course not three 1-ct per day, rather 400 0.25-ct diamonds per month.
Comment: [Photosynthesis efficiency](http://en.wikipedia.org/wiki/Photosynthetic_efficiency) "3 to 6% of total solar radiation." Peak equatorial zenith [sunlight](http://en.wikipedia.org/wiki/Sunlight) is 1120 W/m^2 but you should rather look at 24h averages in moderate climate; sustainability.SE can give you these as they are related to solar power. "Usable" leaf surface of given plant will be somewhat more (30%?) than area (graphical projection, from direction of the Sun) occupied by the plant. (the extra is from reflections, sky luminescence and light filtering through top leaves).
Comment: @SF. Back of the napkin estimate.  Say 50% peak equatorial wattage, 1m^2 for the leaf area (including the 30% extra), 8 hours of exposure daily, and 3% efficiency.  That's 483kJ? If 75% of that is used to maintain the plant, that's still 6 diamonds a day.  Is that right?  I'm unsure about is the leaf area of a berry bush.
Comment: Re: "Diamond requires a lot of energy to form" – that's actually the opposite of the truth.  Bond formation releases energy (it is exothermic).  To make diamond from (say) methane, you have to put energy in to break the existing C-H bonds, but you get energy out by forming C-C (and H-H) bonds; the overall reaction would be slightly exothermic.  The problem here is NOT that diamond is hard to make, it's that graphite is EASIER to make (more exothermic) at normal temperature / pressure. So, unless you supervise each individual atom, pure carbon will form as graphite rather than diamond.
Comment: Any idea how much energy?  Or how to arrive at that number?
Comment: @SF. this is probably a candidate for "best answer-for-another-SE-site-in-a-comment" :)
Comment: @SF. Looks like -6.527kJ from burning a 1 ct. diamond.  So that's about 19.5kJ using your times 3 estimate.  I'd like to solve for time actually... Any idea where i can find the "wattage input" of other plants?  http://chemistry.stackexchange.com/a/29585/15880
Answer: In A Deepness in the Sky, Vinge referred casually to strata bearing diamond forems.  You might also think about diatoms which produce a cell wall of silica, literally glass.
I think it's plausible that microorganisms could produce structures of crystalline diamond or carbon fiber, in a variety of manners that real life produces inorganic shells in or around itself.  Vinge used forems rather than more familiar diatoms, I think because the test (shell) is like a seashell, extruded around the cell. But diatoms produce glass in their cell walls, so you might imagine a mechanism where it is created in a completely enclosed chamber and then the outer skin is disposable leaving the protective shell to face the harsh environment.
Others have pointed out that nanotechnology or "life" could plausibility deposit crystals atom by atom, but I think carbon fiber is more realistic: look how carbon fiber is actually manufactured: start with an organic molecule that has a very common carbon hexagon backbone, and then removing all the extra atoms leaving only the carbon hexagons.
But I'd like to note that these structures won't be solid rock diamond crystals, but sparse filigree and thin walls, like diatom shells.
What might be the use of something like diatomaceous earth that's composed of diamond rather than silica? Obviously abrasives, but could a useful composite material be made?
If such a thing existed in nature, technological society would figure out how the nanotechnology works inside the cell, and apply the ideas to synthetic processes; or use selective breeding to produce algae that grow long fibers.
Comment: Since plants can use carbo for diamond-berrys. I'd like to use Iron for steel punch (I think steel legs would be too heavy to carry)
Answer: Contrary to some of the answers here, there is no chemical reason why a plant couldn't manufacture diamonds (source: bachelor's degree in chemistry).  The individual alkane bonds that make up diamond are nothing special, and living cells make and break that sort of bond all the time.
Artificial synthesis techniques work on atoms in bulk, whereas biological systems can synthesize molecules more or less atom-by-atom, and for this reason the constraints that make diamond hard to synthesize by bulk methods are mostly irrelevant to biochemistry.
As a very loose analogy, imagine you had a sack of Lego bricks and you wanted to join them all together into a solid block.  In bulk chemistry terms this means continually shaking ("heating") and compressing the sack, and the bricks would join together to some extent, because the joined state is more space-efficient ("thermodynamically stable"), but it would take longer than the lifetime of the universe to get to a single solid block, unless you were shaking the bag really, really fast.  As a living cell, you'd simply open the sack and put the bricks together one by one.
Biochemistry isn't magic, and there are thermodynamic costs to working in this organized way.  In the above analogy, the living cell first needs to manufacture complicated specialist enzymes to grip and combine Lego bricks, and that background work will require a great deal of energy overall.  The difference is, though, the energy isn't expended all at once, so it doesn't necessarily imply high temperatures or pressures.
In terms of evolutionary biology, there would need to be a good reason for the plant to evolve this feature (evolution doesn't waste energy).  Even then, you could debate whether it's feasible at all in terms of energy landscapes; see e.g. the discussion about evolution and wheels.
If it were a genetically engineered feature, the question is not whether it could be done but only how hard it would be.  Possibly the answer is "insanely hard", but that's the kind of question you can't answer until someone does it.
Answer: As a follow-up to knave's answer, for a diamond-fruit, I'm picturing a walnut-like fruit which has a fleshy outer layer, a hard middle layer, and the living part of the seed in the center.
The outer layer would prevent Hydrogen and Oxygen from binding to the Carbon while more layers of Carbon are deposited. A cut in the outer layer could potentially disrupt the carbon-laying process while the fruit is growing.
The diamond layer, like a walnut shell, would need a seam; a weak line along which the shell will split when the living inner part sprouts from the seed. The seam must be much weaker than diamond, as no seedling is going to have the ability to punch through even a thin layer of diamond. The shell might grow with several seams or just one, depending on the plant. It will also need a path for nutrients to enter the inside of the shell, which could be the seam or a hole. Depending on how the shell splits, you may end up with bowl-shaped diamonds...not ideal.
The inner part would need enough food for it to grow until the seedling applies enough force to split the shell along its seam. As such, it would probably be close to the size of a walnut, or even as large as a coconut.
One potential problem is that while diamond is hard, it is not flexible. Most plant matter is flexible because plants are always changing their shape. A diamond fruit would need to grow to its full size before it started growing a diamond layer.
One last thing. Diamonds are "valuable" because of market manipulation. There are much prettier stones and much rarer stones out there. Their scarcity in the jewel market is manufactured scarcity. Industrial diamonds are valuable because of their hardness, but they are common and can be manufactured already. The cost to develop a plant that grows diamonds would far outweigh the value gained from producing diamonds with plants, for both jewelry and industrial uses. It's more likely that an eccentric billionaire would fund development than that a diamond company would.
Comment: If cells can build diamonds layer by layer, there's no reason why cells could not also dissolve the diamond again, it just needs some different enzymes. So the seedling could dissolve the diamond shell when it is ready to emerge.
Answer: While it wouldn't be a berry I can think of a reason for a diamond to evolve:  A plant with diamond needles inside it would be akin to being poisonous but it would be even harder for a creature to evolve resistance.
I doubt there is an evolutionary path that leads to this, though.

Are diamond berries possible?


How do computers remember where they store things?

Question: When a computer stores a variable, when a program needs to get the variable's value, how does the computer know where to look in memory for that variable's value?
Comment: It doesn't; "the computer" is completely oblivious. We have to hardcode all addresses. (Which is simplifying a bit, but not by too much.)
Comment: @Raphael: Let's generalize that to "we have to hardcode base addresses".
Comment: @AbhirathMahipal: a variable need not have an address at compile time or even run time; "namespace" is a language concept while a table (hashed or otherwise) is an implementation detail; the name need nod persist in the programme when it is run.
Comment: Every time you declare a variable the program responsible for running your code includes the variable name with it's address in a hashtable (aka namespace). I'd suggest reading the book "Structure and Implementation of Computer Programs (SICP) to become well acquainted with such little details.
Comment: Your source programme uses a variable. The compiler or interpreter decides how to implement it: it generates instructions for the computer to execute and has to make sure that those intructions fetch values from the places in which previous instructions stored them.
Comment: @PJTraill Thanks for the clarification. Could you recommend a book or a relevant link so that I can dig a little deeper?
Comment: @AbhirathMahipal: I'm afraid I'm not aware of an appropriate reference to cover this; they are things I have picked up over the years, as perhaps you will too – sorry not to be more helpful!
Answer: I'd suggest you look into the wonderful world of Compiler Construction! The answer is that it's a bit of a complicated process.
To try to give you an intuition, remember that variable names are purely there for the programmer's sake. The computer will ultimately turn everything into addresses at the end.
Local variables are (generally) stored on the stack: that is, they're part of the data structure that represents a function call. We can determine the complete list of variables that a function will (maybe) use by looking at that function, so the compiler can see how many variables it needs for this function and how much space each variable takes.
There's a little bit of magic called the stack pointer, which is a register which always stores the address of where the current stack starts.
Each variable is given a "stack offset", which is where in the stack it's stored. Then, when the program needs to access a variable x, the compiler replaces x with STACK_POINTER + x_offset, to get the actual physical place it's stored in memory.
Note that, this is why you get a pointer back when you use malloc or new in C or C++. You can't determine where exactly in memory a heap-allocated value is, so you have to keep a pointer to it. That pointer will be on the stack, but it will point to the heap.
The details of updating stacks for function calls and returns are complicated, so I'd reccomend The Dragon Book or The Tiger Book if you're interested.
Answer:
When a computer stores a variable, when a program needs to get the variable's value, how does the computer know where to look in memory for that variable's value?

The program tells it. Computers do not natively have a concept of "variables" - that's entirely a high-level language thing!
Here's a C program:
int main(void)
{
    int a = 1;
    return a + 3;
}

and here's the assembly code it compiles to: (comments starting with ;)
main:
    ; {
    pushq   %rbp
    movq    %rsp, %rbp

    ; int a = 1
    movl    $1, -4(%rbp)

    ; return a + 3
    movl    -4(%rbp), %eax
    addl    $3, %eax

    ; }
    popq    %rbp
    ret

For "int a = 1;" the CPU sees the instruction "store the value 1 at the address (value of register rbp, minus 4)". It knows where to store the value 1 because the program tells it.
Likewise, the next instruction says "load the value at address (value of register rbp, minus 4) into register eax". The computer doesn't need to know about things like variables.
Comment: To connect this to jmite's answer, `%rsp` is the CPU's stack pointer. `%rbp` is a register that refers to the bit of the stack used by the current function. Using two registers simplifies debugging.
Answer: When the compiler or interpreter encounters the declaration of a variable, it decides what address it will use to store that variable, and then records the address in a symbol table. When subsequent references to that variable are encountered, the address from the symbol table is substituted.
The address recorded in the symbol table may be an offset from a register (such as the stack pointer) but that's an implementation detail.
Answer: The exact methods depend on what specifically you are talking about and how deep you want to go. For example, storing files on a hard drive is different than storing something in memory or storing something in a database. Although the concepts are similar. And how you do it at a programming level is a different explanation than how a computer does it at the I/O level.
Most systems use some sort of directory/index/registry mechanism to allow the computer to find and access the data. This index/directory will contain one or more keys, and the address the data is actually located in (whether that be hard drive, RAM, database, etc.).
Computer Program Example
A computer program can access memory in a variety of ways. Typically the operating system gives the program an address space, and the program can do what it wants with that address space. It can write directly to any address within its memory space, and it can keep track of that how it wants. This will sometimes vary by programming language and operating system, or even according to a programmer's preferred techniques.
As mentioned in some of the other answers, the exact coding or programming used differs, but typically behind the scenes it uses something like a stack. It has a register that stores the memory location where the current stack starts, and then a method of knowing where in that stack a function or variable is.
In many higher level programming languages, it takes care of all that for you. All you have to do is declare a variable, and store something in that variable, and it creates the necessary stacks and arrays behind the scenes for you.
But considering how versatile programming is, there isn't really one answer, since a programmer can choose to write directly to any address within its allocated space any time (assuming he is using a programming language that allows that). Then he could store its location in an array, or even just hard code it into the program (i.e. the variable "alpha" is always stored at the beginning of the stack or always stored in the first 32 bits of allocated memory).
Summary
So basically, there has to be some mechanism behind the scenes that tells the computer where data is stored. One of the most popular ways is some sort of index/directory that contains key(s) and the memory address. This is implemented in all sorts of ways and is usually encapsulated from the user (and sometimes even encapsulated from the programmer).
Reference: How do computers remember where they store things?
Answer: It knows because of templates and formats.
The program/function/computer doesn't actually know where anything is.  It just expects something to be in a certain place.  Let's use an example.
class simpleClass{
    public:
        int varA=58;
        int varB=73;
        simpleClass* nextObject=NULL;
};

Our new class 'simpleClass' contains 3 important variables - two integers that can contain some data when we need them to, and a pointer to another 'simpleClass object'.  Let's assume that we're on a 32-bit machine for the sake of simplicity.  'gcc' or another 'C' compiler would make a template for us to work with to allocate some data.
Simple Types
Firstly, when one uses a keyword for a simple type like 'int', a note is made by the compiler in the executable file's '.data' or '.bss' section so that when it's executed by the operating system, the data is available to the program.  The 'int' keyword would allocate 4 bytes (32 bits), while a 'long int' would allocate 8 bytes (64 bits).
Sometimes, in a cell-by-cell manner, a variable may come right after the instruction that's supposed to load it into memory, so it would look like this in pseudo-assembly:
...
clear register EAX
clear register EBX
load the immediate (next) value into EAX
5
copy the value in register EAX to register EBX
...

This would end with the value '5' in EAX as well as EBX.
While the program executes, every instruction is executed except for the '5' since the immediate load references it and makes the CPU skip over it.
The downside of this method is that it's only really practical for constants, since it would be impractical to keep arrays/buffers/strings in the middle of your code.  So, generally, most variables are kept in program headers.
If one needed to access one of these dynamic variables, then one could treat the immediate value as if it were a pointer:
...
clear register EAX
clear register EBX
load the immediate value into EAX
0x0AF2CE66 (Let's say this is the address of a cell containing '5')
load the value pointed to by EAX into EBX
...

This would end with the value '0x0AF2CE66' in register EAX and the value of '5' in register EBX.  One can also add values in registers together, so we'd be able to find elements of an array or string using this method.
Another important point is that one's able to store values when using addresses in a similar manner, so that one can reference the values at those cells later.
Complex Types
If we make two objects of this class:
simpleClass newObjA;
simpleClass newObjB;

then we can assign a pointer to the second object to the field available for it in the first object:
newObjA.nextObject=&newObjB;

Now the program can expect to find the address of the second object within the first object's pointer field.  In memory, this would look something like:
newObjA:    58
            73
            &newObjB
            ...
newObjB:    58
            73
            NULL

One very important fact to note here is that 'newObjA' and 'newObjB' don't have names when they're compiled.  They're just places where we expect some data to be at.  So, if we add 2 cells to &newObjA then we find the cell that acts as 'nextObject'.  Therefore, if we know the address of 'newObjA' and where the 'nextObject' cell is relative to it, then we can know the address of 'newObjB':
...
load the immediate value into EAX
&newObjA
add the immediate value to EAX
2
load the value in EAX into EBX

This would end with '2+&newObjA' in 'EAX' and '&newObjB' in 'EBX'.
Templates/Formats
When the compiler compiles the class definition, it's really compiling a way to make a format, a way to write to a format, and a way to read from a format.
The example given above is a template for a singly-linked-list with two 'int' variables.  These kinds of constructions are very important for dynamic memory allocation, along with binary and n-ary trees.  Practical applications of n-ary trees would be filesystems composed of directories pointing to files, directories, or other instances recognized by drivers/the operating system.
In order to access all of the elements, think about an inchworm working its way up and down the structure.  This way, the program/function/computer doesn't know anything, it just executes instructions to move data around.
Comment: The words 'template' and 'format' as used here do not appear in any compiler or compiler textbook I have ever seen, and there doesn't appear to be any reason to use both words for the same non-existent thing. Variables have addresses and/or offsets, that's all you need to know.
Comment: I'm using the words since they're abstractions for data arrangement, just like numbers, files, arrays, and variables are abstractions.


Feature Request: Dark Mode

Question: Would it be possible to implement a "Dark Mode" on the Physics Stack Exchange as is being trialed on the Stack Overflow? I personally would prefer that viewing mode. Use the upvote on this comment to express your support if you'd like this feature because it appears they chose to introduce this feature on the Overflow SE due to popular demand.
Comment: Whether this is *possible* is a question for the SE design team. The question, as tagged, should now appear in their issue tracking system.  Feedback from the Physics community about whether this feature is *desirable* would help the SE team to prioritize this project; such feedback might be presented as votes on the question or as community-written answers.
Comment: They also say "For now, we have no plans to bring dark mode to the many sites across the Stack Exchange network. Many of the designs on our sites have been around long enough that converting them to dark mode would require redoing the artwork completely." So I'm wondering if people would support this idea from the physics community for the physics community in particular - they also noted that they were introducing this feature because of popular demand - "a request for Dark Mode is the 12th most upvoted question and the #1 most upvoted on Feature Request overall."
Comment: The blog entry specifically notes they have no plans to bring it to the larger network, which would include Physics.
Comment: @rob Appreciate it
Comment: For what it's worth: the [initial design for the site](https://physics.meta.stackexchange.com/questions/447/design-for-physics-se) was basically in dark mode, and it got pulled after ~3 weeks due to negative feedback on meta. But that was nine years ago, and it's entirely possible that we now host a good fraction of dark-mode-loving users.
Comment: If one prefers a dark mode, extensions such as dark reader work well on SE (Physics SE looks to me as Stack Overflow in Dark mode). Alternatively, on chromium-based browsers, it is possible to use the "Force dark mode" flag, though I personally found dark reader to give better results.
Answer: Is it possible? Sure.
Is Stack Overflow (the company) going to invest enough developer time to produce this (and commit to continue to invest enough developer time to maintain it, which is an even taller barrier)? Who knows.
People have asked for this, repeatedly, both on Meta Stack Overflow and on Meta Stack Exchange, over the better part of the last decade. Whether SO will go forward and use the opportunity to invest on the broader network (particularly now that they've invested enough to make dark mode in SO a reality, and given the investment early last year in unifying the theming for the network sites) is currently an open question.
The current status is best summed up in this MSE answer. This answer gives a short official statement about the current status, but it's too short to tell what the future plans are.
In addition to that, as you noted in the comments, the blog announcement itself states that

For now, we have no plans to bring dark mode to the many sites across the Stack Exchange network. Many of the designs on our sites have been around long enough that converting them to dark mode would require redoing the artwork completely. We would prefer to avoid giving anyone across our network a substandard experience and we don't want to change those elements without the input of these communities.

which leaves the door at least a little bit open for this to be extended to network sites, but sets a clear bar in terms of the amount of work that would be required for this.
(To be honest, I'm rather surprised that they're saying this, since the uniform rollout of this kind of feature was sold as the advantage for the loss of theming during the Great Theming Debacle of 2018 (see here and subsequent posts for details). But then again, they know better, I guess?)
To be honest, I don't thing our site has the clout to request this. We're the 20th site by traffic, down from SO by a full two orders of magnitude. It took the most-requested feature on SO the better part of a decade to get addressed. It would take a close-to-unanimous, vociferous request for the SE devs to put any kind of priority into this.
Instead, the best bet if you really want this is to look for voices calling for dark-mode availability on places with more traffic and more clout on the SE network (my first guesses would be Software Engineering, Serverfault and Super User, but none of them seem to have such requests) and lend your support there.
... or, if not, to try to do it locally using Stylish or the other tools mentioned here.
Answer: Thank you for this. I know Dark Mode is a highly requested feature. We currently don't have plans to bring it to SE, one of the big issues here is the custom designs many of the sites had, it would make it difficult to build something that would work for all 172 sites.
Here is our current roadmap if you are interested in taking a look.
Comment: Thanks for coming back to offer feedback and explanations for the status-declined!
Comment: I don't have any horse in this game (I'm perfectly happy with light mode), but it feels like there's a middle path to be walked here. There's already a "generic SE design" (used for sites that have left beta and haven't gotten dedicated artwork yet), and it shouldn't be an unreasonable investment to make a dark mode for that. This could then be offered as an opt-in for users who want dark mode so much that they don't mind losing the site-specific skin, no?

Feature Request: Dark Mode


nginx add trailing slash

Question: I'm having troubles figuring out the following problem. Basically, we have a jekyll blog which we decided to separate physically on the server from our main website ie. it is not served from the main application server's root directory. The configuration looks like this:
<code>upstream unicorn {
  server 127.0.0.1:3000;
}

server {
      listen       4430;
      root /app/current/public;

      server_name example.com;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header Strict-Transport-Security: "max-age=31556926; includeSubDomains";
      proxy_redirect off;

      location ~* ^/assets {
        expires max;
        add_header Cache-Control public;
        break;
      }

      location ~* ^/admin {
        auth_basic           "Restricted";
        auth_basic_user_file /etc/nginx/htpasswd;
        proxy_pass http://unicorn;
      }

      location ~* ^/dashboard_api {
        auth_basic           "Restricted";
        auth_basic_user_file /etc/nginx/htpasswd;
        proxy_pass http://unicorn;
      }

      location / {
        try_files $uri/index.html $uri.html $uri @app;
      }

      location ~ /blog {
        alias /app/blog/current/;
      }

      location @app {
        auth_basic off;
        proxy_pass http://unicorn;
      }

      # Turn on maintenance mode if the maintenance template exists
      if (-f $document_root/system/maintenance.html) {
          return 503;
      }

      error_page 503 @maintenance;
      location @maintenance {
          rewrite  ^(.*)$  /system/maintenance.html last;
          break;
      }
    }
</code>
I'm talking about /blog location here. Basically, the location of the blog files (those are just STATIC HTML files) is not in /app/current/public but in /app/blog/current. The problem I'm having is that every time the user tries to access the blog via the following URL: http://example.com/blog , the request fails and user is redirected to http://example.com:4430/blog/. However when the user adds a trailing slash ie when he accesses  http://example.com/blog/ , all works as expected. The same thing happens with every blog post it http://example.com/blog/post1 fails, http://example.com/blog/post1/ succeeds.
I'm trying to figure out how to configure nginx so that the trailing slashes are added and the requests without them will stop failing. Also I'd like to know why is the above redirect to exmple.com:4430 happening.
Any help would be greatly appreciated!
Comment: By default nginx adds the port in redirects - the configuration parameter is [port_in_redirect](http://wiki.nginx.org/HttpCoreModule#port_in_redirect). Turn it off and give it a try.
Comment: that was it! That has resolved this all!
Answer: The solution to this was to add
port_in_redirect off;
All works fine now.

nginx add trailing slash


Preview EXR or HDR images in Pantheon Files

Question: Is it possible to preview EXR or HDR files in Pantheon Files, thumbnails? It works great with KDE Neon and Dolphin.
Answer: I had a somewhat similar question before: File that handles raw thumbnails in Files, but I didn't get a useful answer.
I was considering a Sigma camera and I wanted the camera raw thumbnails in pantheon-files, but I've changed my mind about the Sigma anyway.
The only editable thumbnails files I could find were /etc/xdg/tumbler/tumbler.rc and /usr/share/thumbnailers/evince.thumbnailer. You can try those, but they didn't work for me.
Another workaround is installing Nautilus, then create the file /usr/share/thumbnailers/raw.thumbnailer and add the mimetype for the HDR files in it. I'll give you details about it, if you want.


How much time does it take to learn LaTeX?

Question: I have always used Word to write my papers. I am now interested in LaTeX. Is it hard to learn LaTeX? How much time may it require to convert my <code>.doc</code> to LaTeX (say about 30 pages)?
Comment: This is pretty much a duplicate of this question: [What is the best way to make the transition from Microsoft Word to LaTeX?](http://tex.stackexchange.com/q/13/2693). It's very subjective to determine what is "hard" for any particular person.
Comment: Please read http://tex.stackexchange.com/questions/5688/help-in-choosing-latex2e-books-in-light-of-latex3-development/5713#5713. In my estimation, one long afternoon for your first document and depending on what your aims are, as per the post quoted earlier.
Comment: To get a decent conversion from your file into a mostly usable latex document, you could (on \*NIX) do: `antiword myfile.doc > myfile.txt ; pandoc -o myfile.tex myfile.txt`.  This would give you a basic `.tex` document to tweak.  However, I recommend trying this only after reading something like 'The Not So Short Introduction to LaTeX2e' so you have a basic grasp of the fundamentals (despite the title, it *is* short).
Answer: This answer is based upon teaching a Latex class to math majors for 15 years.
Assumption:  The installation of a LaTeX distribution and appropriate IDE is completed. (I currently provide the download structure for a USB portable version based on MikTeX and TeXmaker.)
After 15 minutes of show and tell, they can do basic math homework found in freshman/sophomore math major curriculums. After the 5th meeting (of 15 weekly meetings) they can prepare a 10 page+ paper with math, tikz graphics, and citations using biblatex and biber.  And by the 10th meeting the skill set includes using knitr to embed statistical/graphical computations, creating a beamer pdf with content shared from the article.
I have personally concluded it takes about 2-10 hours of intentional use to be able to create acceptable documents for a math major.  However, it takes about 200 hours of serious use to get the student to the point where LaTeX is as efficient as either handwriting or using a word processor.  At some point after 200 hours LaTeX is more efficient for them.  And after 2 years of being required to use LaTeX for all math assignments, most of juniors and seniors work math problems directly in LaTeX just as they now write papers directly into the word processor.
The additional benefit from requiring our math majors to use LaTeX is that they are more willing to learn additional software packages to make them more effective and efficient.
Answer: Learning LaTeX is a life-long journey. You can read "The Not So Short Introduction to LaTeX2ε" in an hour and begin writing decent documents immediately after. Yet, to do fancy stuff you'll need time and effort learning and practicing; trial and error is a great teacher. For something briefer try "The Very Short Guide to Typesetting with LaTeX".
If your 30-page document has no special formatting (say, tables, bibliography, indexing...) you could convert it to a working LaTeX source file in 15-20 minutes or less.
Answer: I recommend the WikiBook LaTeX for a quick start.
My first work in LaTeX was an approximately 40 pages long report and it took me no more than two days. It depends on your relevant knowledge. If you are used to studying program documentation or programming languages/APIs, it should be very easy.
Comment: 40 pages in two days is quite a feat, putting all LaTeX-specific things aside!
Comment: @Szabolcs Fortunately, the report had already been done when I started the conversion. `:-)` Nevertheless, it took some serious effort to get most of the things right (for example, I used `utf8x` instead of `utf8` and some obsolete notation like `$$math$$`) – it was far from perfect, yet still better than the original output from Apple Pages! (To be fair, AP can be used to create nice documents if one does not need a ToC, floats, index, math, bibliography, etc.)
Answer: If you use only basic formatting you might not have to learn anything at all; there are markup packages.
The simpler your document is, the less time it will take. If you tell us what Word features you used we can tell you what packages you will need, if any.


What is it called when a person pronounces the letter t in the word "metal" as something more similar to a d sound?

Question: What is it called when a person pronounces the letter t in the word "metal" as something more similar to a d sound? And what is it called when a person stresses the t in the word "metal" to be more clearly like a regular t than like a d (like the difference between how an American says "metal" and how an Englishman might say that word)?
Answer: The phenomenon is known as "flapping", and the result, transcribed as [ɾ], is a "flap". It also applies to /d/, but people notice it most when applied to /t/ since the result is more different compared to /d/. You might call is a "fast d".
If an American were to say [mɛtʰəl] very carefully, that could be called hyperarticulation, that is, aiming to stop a rule of the language from applying by slowing your speech down. I have learned to suppress flapping when I am eliciting linguistic data from people who don't speak American English, they get confused if I pronounce "metal" or "medal" ordinarily. It is generally difficult for Americans to suppress flapping. If you're asking what it's called when British English speaker don't flap, that's just "talking", there's no term for not applying a rule that is not in your dialect.
Answer: Flapping applies to intervocalic syllable offset alveolar stops.  This formulation assumes some things that are less than obvious.  For one thing, it assumes that syllabic and glide r count as vowels, to account for flapping in such words as "dirty" "barter" ?"cortical".  And that the off-glides of diphthongs also count as vowels: "routing" "boating" "goiter".
Another assumption: syllabic resonants r, l, m, n are derived from phonemic forms with preceding vowels, which have been lost: "border", "little", "bottle", "bottom", "button" (this last only in dialects where the t does not become glottal stop).
It's also assumed that intervocalic consonants before unstressed vowels belong to the syllable of the preceding vowel. The t of your example "metallic" is in the wrong syllable to be flapped, since t is in the syllable of the following stressed vowel.
Comment: I like your explanation since you've explained the pronunciations of words like 'party' and 'dirty', they also have *flap t*. My impression is that; the 't' becomes weak and is influenced by the preceding 'r' sound so it sounds like *flap t*. But now it's clear. I've heard that American 'r' is more like a vowel. Is that true?
Comment: @DecapitatedSoul Yes, I agree that flapping is a weakening process.  It is one of several  weakening processes which affect syllable offset consonants.  It is also assimilatory, since it changes t d from obstruents, which are naturally voiceless, into sonorants, which are naturally voiced,  The surrounding vowels that are required for flapping are also sonorants.
Comment: @DecapitatedSoul So you don't like "pahrry of the first part", but how about "durry ol' man"?  Deletion of the flap resulting from t is possible for some of us, but it requires a whole new level of sloppiness.  It might happen only in drunk speech, and is less likely for erudite words, like "vitamin", "barter".
Comment: Thank you for your explanation.
Comment: Some people think that the 't' in 'party' disappears and becomes **r** sound (in AmE) but I disagree with that because I can hear the stop sound in 'party'. If the 't' disappears it becomes 'parry' which is very different than 'party' (having the stop sound).
Answer: The phenomenon you're talking about is called T-flapping (and its opposite is, I suppose, the absence of T-flapping).
Many Americans pronounce the /t/ and /d/ sounds ("alveolar stops") as something linguists write as [ɾ] (an "alveolar flap") when they come between two vowels. Most Brits don't do this.
Comment: @GregLee True, but OP was asking specifically about /t/.
Comment: "T-flapping" is not a great name, since all three alveolar stops flap in the relevant dialects, t, d, n.  Not just t.
Answer: Yes the comments above have summarized this perfectly. It is a type of flapping..
'water'
=
wader in some American dialect. This is a flap also.
wa'er in Cockney dialects with a glottal stop.


Generic log-table for CRUD operations that support both single and composite Primary Keys

Question: I'm trying to come up with a decent table design for a table that will log CRUD operations for a small application. There won't be a lot of traffic, which could justify a single table for all events. So far, my idea looks like this
<code>ID int identity primary key,
[Schema] nvarchar(128),
[Table] nvarchar(128),
ObjectID int, -- primary key of the object we're logging
Action nchar(1) , -- the type of event (I/U/D, short for INSERT, UPDATE etc
Field nvarchar(128), -- the changed column, in the event of UPDATE
OldValue nvarchar(1000),
NewValue nvarchar(1000),
ChangedAt datetime2,
ChangedBy nvarchar(128)
</code>
This would cover most of our use cases. There is, however, one itch with this design, and that is when I want to log changes to records where the Primary Key spans multiple columns, aka a Composite Primary Key.
In order to satisfy this need, I would have to extend the proposed table-design with yet another ID-column, allowing us to store both sides of the composite primary key.
You probably see that this is heading down the wrong path. What if I later need to log events for a table containing a Primary Key spanning 3 columns or more? Simply extending the log-table with "ObjectID_2" and "ObjectID_3" columns sounds asinine. Not to mention that the majority events will only have NULL-markers in those columns, as most our tables use single-column primary keys.
I am no fan of generic tables and column in general, and I'm starting to think a better solution would be to keep a separate log-table for each table that needs auditing. Am I going about this the wrong way?
Change Tracking does not solve this problem. The log-table needs to be exposed to the web and in a human-readable format. I have considered both CDC and Temporal Tables, but then we'd already be in the realm of "log everything for a single table", which is not my use-case. The log-table will be used by the application to log whatever events they care about, not every DML operation. That's is why I opted for a single-table solution.
Comment: Have you considered introducing synthetic keys for use by the audit function?
Answer: Your issue sounds like it colud make use of a dimensional model, with the objects to be tracked as Dimension(s) and the events to be measured as Facts, especially if this table needs to be human readable and exposed to end users. Check out this resource for further reading BACK TO DIMENSIONAL MODELING BASICS and The 10 Essential Rules of Dimensional Modeling


What is the difference between user journey and task flow

Question: I was wondering if you could explain me what is the difference between a user journey and a task flow? I tried to read and look for example images in Google...and I can't find the difference between them. Both of them are presented in flow charts??
Comment: These days the UX field is full of unnecessarily terms and jargons. Instead of thinking about the difference in terminology, think about the difference in the information that is captured. A journey can involve one or more tasks as part of completing a goal. A task flow limits the scope to the said task. So it is not necessary that one is longer than the other or more detailed than the other, it's just different scope.
Answer:
Task flows are a tool to help us think through the design before a feature is actually developed. They allow us to interject the user into the flow of the application and determine if the conceptual model agrees with the user model.

Task flow is in relation to the activity flow within the application.

Customer journey maps are documents that visually illustrate an individual customer's needs, the series of interactions that are necessary to fulfill those needs, and the resulting emotional states a customer experiences throughout the process.

User Journey encompasses task flow by virtue that it contains information on how the user interaction with the application begins, environmental/situational factors which lead to the usage of the application in the first place and also considers the qualitative factors such as the user's emotions, expectations, behavior, etc.
Further reading on user journey: http://www.uxmatters.com/mt/archives/2011/09/the-value-of-customer-journey-maps-a-ux-designers-personal-journey.php
Comment: I think this is closest to the definition I would use, and judging from the other answers, it's a question of which activity is a subset of the other.

It's also clear from the immediate answer below that there are semantic differences in the way different people use these terms - sometimes a complete reversal of this defintion.
Answer: A task flow is larger than a user journey.
'User journey' is typically used to talk about the 'path' of interface views and actions that the user follows in executing his or her task. That task is the larger set of actions - including actions outside the computer system - for achieving a particular goal.
For instance, if I am looking for a good CD to buy my sister for her birthday, my task flow is to find CDs I know she is interested in by executing multiple user journeys that involve me running searches on different e-commerce sites.
Comment: Can't it be the other way around too, that a User Journey is larger than a Task Flow. For example the User Journey of finding a good CD includes different Task Flows like Recommendations with Preview Listening; Browsing "More like this"; or "Price comparison", all with their own different Task Flows.
Comment: I agree - I think of the Journey as the big picture, comprised of many smaller tasks, more or less the exact opposite of the above description.
Answer: There seems to be little agreement on which is bigger: Task Flow or User Journey and I'm going to throw another spanner in here. Why are Task Flows not the same as Use Cases? It seems to me that a task is a single completed function of a total system - so too is a Use Case
Comment: This reads more as a question than an answer. Could you rephrase it?
Answer: Note that a User Journey can represent more than just a user in front of the product (which will be more effectively represented by a "user flow").
The User Journey combine all touch point and focus on When the user have an interaction with the product on websites, smartphone, physical stores, etc..
Look at this case :

"I have already bought a ticket to travel through American Airlines website"

The User journey can focus on how I accompany the user in his travel experience from the purchased to the boarding. This is only a user journey, there can be many others.
In comparison with the "user flow", this one will be more focus on how the user interacts with the American Airlines websites. Yes, the user can have notification on smartphone etc., but the interaction will be only with the websites.
User task, is (in my opinion) more based on how process of websites come one after another in a mechanic point of view. Which is more a programmers way of thinking.
Answer: To the above agreed Journey is everything the user encounters even those events outside of the product/website. So it may start with an advertisement or talk with peers before they make a decision to use your product. Whereas a task flow is the actions taken within the product or site, although it could also encompass actions taken on other platforms, for instance if they make a video posted on your platform and post it on YouTube but then come back to your platform.
I hope that helps differentiate the two!


How long does it take for electrical impulses from neurons to travel in the human brain?

Question: Consider the maximal distance between two separated areas in the human brain. How fast can information via neuronal excitement travel between these two locations?
Comment: Is your question restricted to human brains? Furthermore, are you also concerned with the brain or the entire nervous system?
Comment: @U.Vakil yes, only human brains...
Answer: This is hard to say because not as many studies measuring this in humans have been done as have been done in other primates, like macaque monkeys, and when it is done, it is usually done in patients who have some brain issue like epilepsy and have recording electrodes implanted for preparation for a procedure, and so may not have a typical response. Also it is hard to know how best to satisfy your requirement "the maximal distance between two separated areas in the human brain".
That said, here's my attempt: about 25 to 30 ms. I get this from two sources:
1) a 1983 paper using epileptic patients with microwire electrodes in their brain at various regions. I pick the data of measurements of the visual response arriving in the occipital lobe because--thinking simply--it is at the back of the head on the other side of the head from the eyes, and so the "maximal distance" is the entire front-to-back length of the brain (the pathway being retina -> thalamus -> V1 of visual cortex). From the paper (page 490, bottom):

Occipital Lobe Units: Using diffuse flash stimuli...the shortest
  latency of the 11 responsive occipital cortex cells was 31 ms; the
  mean latency was 63.6 ms (range, 31 to 110 ms, SD, 25.1).

2) A 2009 paper, also using epileptic patients which found, among other things:

the evoked potential started ~20 ms earlier in V1 (25
  ms after stimulus onset;
Comment: however, this information actually has to pass through several synapses, which account for more of the delay than conduction velocity.
Answer: Axons are responsible for conducting electrical impulses from the neurons's cell body. The longest axons in the human body are those found in the sciatic nerve. These axons run from the base of the spine to the big toe of each foot, and can extend up to a meter in length.
This paper attempts to get a measurement of the conduction velocity of the sciatic nerve:
Sciatic nerve motor conduction velocity study.
C B Yap, T Harota
J Neurol Neurosurg Psychiatry. 1967 June; 30(3): 233–239.

However, I don't think you should necessarily be equating conduction velocity with distance. In actuality, conduction velocity is proportional to the diameter of an axon. As a result, sciatic nerve neurons conduction velocity varies widely, from $0.2$ to $150$ $m /sec^{-1}$.

Regarding axons within the brain, I'll be honest by saying that I don't know - you could wait for someone with knowledge about that to help answer your question. The nervous system is usually looked at as a whole. As far as the longest neurons in the brain are concerned, they are - as far as I have read - the Betz Cells in the primary motor cortex. However, that shouldn't be too useful as we are interested in inter-neuronal travel of electric impulses (or too useful even otherwise), done primarily through axons / nerve fibers. Furthermore, since I have mentioned nerve fibers (myelinated axons), you should also pay attention to insulation of the axonal membrane via myelination. Under- or over-myelination is also proportional to conduction velocity.


Do cows produce milk excessively?

Question: Do cows produce more milk than it is required for their calves? It seems like cows are able to provide milk all the time (all year around). Is it so? Or do they, like other mammals, produce milk only in ammounts requeired by their offspring?
Comment: milk cows have millenium of selective breeding for milk production. they produce 2-3 times more than normal cows and have crazy sized udders. In the wild, can baby animals risk drinking too much milk? not really! Mammal milk production is normally decided by A/birth and B/the babies appetite and then weaning.
Answer: The average domesticated dairy cow produces far more milk than would be required to feed their calf. All cows, wild and domesticated, will only lactate in the period between their calf's birth and weaning. Milk is calf-food, and when there's no calf, there's no evolutionary advantage in producing milk.
On dairy farms, cows are milked twice daily, from spring (when they give birth) until late autumn. This mechanical milking 'fools' the cow into continuing to lactate. When a cow has stopped lactating, they will only start again after giving birth. This means that you can't just start milking a cow and expect to get milk.
Generally farmers milk their cows from spring (birth) until late autumn. The reason for stopping in autumn is simply because the grass grows much slower in winter, so there isn't enough food to support lactating cows. However, it is entirely possible to milk longer than a year; I know of farmers who milk their cows continuously for two years. These farmers will have to purchase a lot of supplimental food (like hay or silage) during winter. The advantage of milking for longer than one season is that the cows do not have to give birth every spring, but instead only every second spring.
I believe (but can't guarantee) that in winter, most milk purchased in a shop comes from the opposite hemisphere. I do know that here in New Zealand, we export a lot of milk to northern-hemisphere countries.
If you were to suddenly stop milking a cow, they might get sick but generally they will survive. It's still something to avoid!
Although if the calf is left with their mother then the cow would be relieved.
I do not have an 'official' source for these facts. However, I grew up on a dairy farm, so this was my life.
Comment: I was under the impression that certain breeds (holsteins for one) have been so over bred for the milk producing trait that there are periods where there milk production is so high, not being milked can actually cause the udder to tear allowing them to die from sepis.  Note: that's anecdotal I don't have information confirming or denying it.
Comment: Thank you very much. This answer seems most informative and real-life applicable.
Answer: Dairy cows are bred, or selected to give milk.  So they do produce excessively.  The normal bovine wild type, like other mammals, not only produce less milk, but also will tend to stop lactating when the calf is not nursing.
I would be interested to know if dairy cows stop giving milk if they are not milked every day.  I understand they can get very uncomfortable if they are not milked, but i don't know if they stop giving milk or if they are injured in some way.
Comment: @nico "The calf is not nursing" I think he means after the calf is weaned. Also, 'excessive' is a relative term. A cow producing 4 1/2 gallons per day would be considered poor by the farmer, but is excessive in terms of her calf's needs.
Comment: Can you please provide a reference for the fact that if you milk a wild cow (good luck with that) every day, after removing its calf, it will stop producing milk at some point? Alo, if they are selected to produce more milk they do not produce it excessively. If you select a plant to have bigger fruits, its fruits are bigger, sure, but they do not grow excessively, they just grow the right size for that particular plant, which happens to be bigger than other plants.
Comment: @jmusser: that is what I am saying. If you get a wild cow and continue to milk it after weaning its calf it will most certainly continue to produce milk.
Answer: Cows only produce milk after a calf is born and their lactation period lasts approximately 10 months. In many instances, farmers have given growth hormone (GH)¹ to cows in order for them to produce more milk. It must be noted that there are many side effects associated with this, not to mention the residual effects it may have on us humans as consumers. Primarily though, the cows would have decreased immune efficiency and this would leave them vulnerable to all types of parasitic infections or disease.
Comment: Thank you for the welcome ^ ^ (is there a specific format for references) this is a scholarly article on the subject: http://goo.gl/MDvaDL ..also the wiki is found here: http://goo.gl/thQnmE
Comment: Welcome to Bio.SE. Can you give a reference to the GH use? The calf-bit is pretty much common sense So reference not needed there :) Thanks for your contribution!
Comment: If you click the link icon (the chain shaped icon) in the question window, it allows you to insert web links to articles etc. However - the wiki page you refer to is about sex hormones (estradiol, progesterone etc) and the article link is on antibiotics. I have downvoted your answer as it needs work since your claims about GH may be unsupported in the literature. After edits I am happy to upvote, don't worry.
Comment: Thank you for explaining this AliceD, I have added a GH reference now.

Do cows produce milk excessively?


Determining a point that reached another point

Question: I have two points, one is moving and one is stationary. I would like to know if the moving point has reached that point or not. I tried to calculate the distance between two vectors and the distance never reaches 0.
Comment: It will likely never be exactly equal to `0`, especially if you're using `float`s. Pick a minimum distance and check to see if the distance in less than that minimum.
Answer: You have one of these problems:

a point doesn't even try to reach another point, and in 3D world it's very unlikely that two points hit each other (just like it's unlikely that one of hundreds of live threating comets will actually hit Earth)
the point has velocities set to reach another point, but another point also has some velocity, and therefore will always run away (this reminds me of Achilles and turtle paradox)
the point has velocities set in another point's direction, but it goes through it between checks, and if velocities are updated then, it just starts to oscillate the target point, never reaching it
float rounding makes point A be 0.00000000001 pixels away from point B, but never exactly 0.

Solution is not to treat points as points, but as physical objects, giving them some size, e.g. spheres. You could assume a point is a sphere of 1 pixel diameter (0.5 px radius), it would mean you need to check if distance is < .5+.5 that is if (distance < 1) not if (distance == 0).
Answer: Check if the two points are close enough.
Lets say the speed of point A (moving point) is speedA and that the last frame was delta milliseconds long.
If A is moving towards B (stationary point) and is currently in a distance smaller than speedA * delta / 1000.0 it will reach the stationary point in the next frame.
You need to check if the distance between the moving point and the stationary point is less than the size of one step for the moving point.
distance(A, B) <= speedA * delta / 1000.0
If that happens the moving point will reach the stationary point in the next frame.
If this never happens, it means that point A is not moving towards point B or that it is moving in a speed so slow that it will not allow it to reach point B in a finite time such (C/n^2) where n is the current frame index and C is a constant.
Answer: The reason why this is not working is because of your understanding of the problem.  You are considering the two objects to be two points.  In games the position of an object in world space is most commonly a vector quantity.
Instead you should consider these two "points" as vectors.  Next you can follow a few simple steps to arrive at a solution.

You take either vector and subtract the other from it.  This creates a vector based at the origin.
The magnitude of this vector will then allow you to determine whether the two obejcts are occupying the same space.
In order to do this you compare the magnitude to the a value commonly called r.  r represents the lee-way that must be considered when performing any calculation on floats.  Because we do not have infinite space to hold a float value there will always be rounding errors in calculations with floats.

The pseudocode for this would be as such:
float r= 0.0000000001f;   // the lee-way for our program
Vector3 a,                // your first vector
        b,                // your second vector
        c;                // a temporary container for the vector originating
                          //   at the origin
c= a-b;
if (c.Magnitude < r)
{
    // they are occupying the same space
}

I hope this helps.


Can an EU resident work anywhere in the EU?

Question: I'm not in this situation, but I'm just wondering. I know EU citizens have the right to work/live in any EU country, but is it the same if you just have residency from an EU country?
Comment: I am a permanent resident in Italy and I'm allowed to work in Iceland.
Comment: "Residency" means you live at an address in a certain place/country and you are granted permission to reside on specific grounds because you fulfil the local requirements. Residency, does not infer or convey any rights beyond affirming your address.
Answer: No.
Right now you get a visa, which gives you right to live and work in one particular country.
There are plans to change that using EU Blue Card scheme (see also in Wikipedia), but it has not been yet fully implemented. And even so, at this point it's not 100% clear that it will implement freedom of relocation between member states.

If the country you're resident at is a member of Schengen zone, you are free to travel as a tourist to other Schengen countries without need for visa. Unlike EU/EEA citizens, you still need visa if you travel to EU/EEA countries, which are not members of Schengen.
Comment: Permanent residents have a right to establish residence in another EU country under directive 2003/109/EC, but Denmark, the UK, and Ireland have opted out.
Comment: +1 Note that the EU blue card would offer *some people* a way to gain the right to work in several EU countries but not automatically give that right to third country nationals who have another status in one of the member countries.
Answer: As @vartec explained it's not generally the case. There are several ways non-EU nationals can gain a right to reside elsewhere in the EU:

The EU blue card is an attempt at creating an EU residence card for some categories of migrants. It has not been fully implemented and does not cover all EU countries. In any case, it's a new residence permit on top of the already existing (national) ones, not something that would be granted to all residents.
Directive 2003/109/EC on long-term residents creates some EU-wide rights for specific categories of non-EU nationals. In practice, it should make it easier to transfer your right of residence from one EU country to another once you have lived 5 years in the first country.
Family members have a right to reside with an EU citizen making use of his or her treaty rights or with a permanent resident using 2003/109/EC.

In all cases, those rights are restricted to specific categories of people (highly skilled migrants, people with permanent residency and a job, etc.) and explicitly exclude others (students, refugees, etc.). Residence in one EU country therefore does not, in and of itself, entail the right to live and work in other EU countries and even a broader implementation for the EU blue card would not change that.
Comment: Denmark, the UK, and Ireland have opted out of directive 2003/109/EC.
Answer: No. Blue card just an attempt, but its half cooked, half baked. In the end you have to meet the local requirements and regulations. Still, if you carry a higher degree, being EU resident open multiple doors for you. Company start shortlisting you while ditching who are non-Eu residents.


Encryption for home ethernet?

Question: I recently had my home wired for gigabit ethernet, which is awesome, but left me with a short ethernet run that is actually outside the walls of my house.  How can I secure this link against someone splicing in?  Ideally I'd like to attach something to each end of the cat6 run that encrypts traffic in a way that is transparent to the other devices on the network, but am interested in software solutions as well (as long as they perform well and aren't too onerous to set up).
Comment: Even if not a product recommendation, I could use some help with the vocabulary I need to inquire about this effectively.  I don't even know what to google for at this point.
Comment: Product recommendations are off topic here, unfortunately - they tend to go out of date very quickly.
Comment: I'll edit the question to avoid asking for product recommendations
Comment: Firstly, it might be cheaper to just box the cable in with something as secure as needed to mitigate the potential threat you feel you face... But failing that how about a router at each end of the cable run with a IPSec tunnel setup?
Comment: @DrewShafer Thank you - that's much better. Questions of "how can I do x?" are generally more helpful for longer and to more people than ones of "what products let me do X?", so the edited question is more likely to get useful answers
Answer: Once in a while, when entering or leaving the house, look to see if anyone has spliced into the cable.  If the cable looks OK, you're good.
This has no set-up requirements at all, and zero impact on your network speed.
Comment: realistically, this is probably what I'm going end up doing.
Answer: What you basically set up is two disparate sites. Assuming you ran a cable from your house to a detached garage, it doesn't matter if your garage is 100 feet away or located in rural Guangzhou, for the sake of security you consider it as two separate sites.
To those ends, what you need is a site-to-site VPN setup, similar to any corporate LAN whose offices are spread across a geographic area or the globe. (Some SOHO routers will facilitate this for you, but that's venturing into product recommendation territory.)
Anything that leaves your house is encrypted, goes over the external wire, and is decrypted on the receiving end. Set up properly everything functions as a unified LAN and the fact that half the network is on the other side of the yard is transparent to all of your nodes.
Answer: There are two possible options to consider: Layer 2 (data-link) encryption and Layer 3 (network or IPsec) encryption. Unfortunately both are probably more expensive or complicated than you want to get into. However, the wire that runs between you and your internet service provider (or even further downstream) is just as if not more susceptible to splicing. What this means is that the only way to be really secure is to use strong end-to-end encryption whenever you need to do something sensitive, and that encrypting traffic over that one little link of your local network is probably not going to make you any safer. End-to-end encryption will encrypt the sensitive traffic on your device, and it's not decrypted until it reaches the destination device, thus preventing most practical packet sniffing attacks.
Remember that costly security only makes sense when it protects something of equal or greater value. I would suggest the following alternatives:

Physical security, such as putting your external cable inside an armored conduit.
Make sure you use HTTPS for anything sensitive on the web. Even if these packets are sniffed on your network they will already be encrypted. This encrypts data between your machine and the destination web server.
Use end-to-end encryption whenever offered. In contrast to HTTPS, end-to-end encryption will keep data encrypted past the destination web server up to the point where the data is actually used.
Use encrypted wifi with a strong password whenever you're dealing with something sensitive. This encrypts all data between your machine and your wifi access point.

A Layer 2 solution most closely resembles what you asked for in the question. These devices are sometimes called "bump in the wire" devices specifically because you attach them to either end of a physical cable and all encryption happens transparently and without the knowledge of any other device on the network. Unfortunately at this time these solutions are extremely expensive- they are "call for price" expensive. Some quick googling suggests that these devices start at a few thousand dollars and quickly go into the few tens of thousands of dollars range. They provide high security, authentication, and can operate at 10gig/100gig speeds.
Searching for "layer 2 encryption" or "bump in the wire encryption" or "MACsec" will get you more information about these devices.
Layer 3 encryption is network-based encryption typically using IPsec. Here, each host on your network authenticates and/or encrypts communications with each other host on your network. If you had an IPsec enabled router/switch and a sufficiently smart device on the other end you might be able to set up IPsec so that it only functions over that one wire. It would also be possible to encrypt all data on your local network (behind your router). Beware that IPsec in general generates a lot of processing and bandwidth overhead.
Comment: Why do you think those devices are so expensive?
Comment: @flarn2006 My guess is because the market for such devices is very small. There are lots of easier and better alternatives, such as all those discussed in this thread. These kinds of devices are only useful when you can't move your wire someplace safer and you can't fix your networked security. Suppose you've got an old embedded system that doesn't support IPsec and you can't replace the system and you can't move the system.
Answer: Layer 2 bridging over a VPN would work.  But it will be onerous:
https://docs.openvpn.net/how-to-tutorialsguides/virtual-platforms/site-to-site-layer-2-bridging-using-openvpn-access-server/
Working at layer 2 would be the most transparent to the machines on your network.
Prosumer class devices will likely do Layer 3 VPNs which means dealing with different subnets, broadcast domains etc.  They'll be easier, but not as transparent.
I would be surprised if you found a cheap, simple, transparent solution which could provide gigabit speeds.
Installing a camera, replacing the external run with armored cable or fibre would be faster and probably less trouble.
In terms of risk, unless you're working in an embassy, or your ethernet cable straddles the streets of a Brazilian favela, I would be impressed if somebody was so interested to intercept your LAN traffic.
Answer: This seems like overkill. What goes over this cable that is really sensitive enough for someone to physically access your ethernet cable? Sensitive internet traffic will go over https. Since you probably have a switch it's only traffic between devices in the two areas that will go over that cable, not all traffic.
Are your computers, servers and devices secured so people can't browse file shares or access resources? Is everything fully patched? If not that's probably the first area to consider.
Practical efforts might include:

Put the cable inside a plastic or metal conduit, physically secure it
Use security cameras to monitor the area
Check the cable occasionally
Comment: Indeed, if they are so close they can splice your cable, they can also peek through your windows and listen by lifting the flap on your letter box...

Encryption for home ethernet?


Melting ice pattern

Question: What causes ice to melt in these patterns?

And why does this always happen when the ice is covered in snow?
Answer: Those are drainage dendrites around the central clear area, much like what you see with rivers as they branch into smaller tributaries upstream. So, at least part of the answer is that the water melting from the snow is joining together into a generally downhill flow towards the central region.
Furthermore, it's quite likely the central region is a lot warmer because there is no longer any snow there to reflect sunlight. Once such a spot forms -- and it has to eventually if there's too much energy coming in -- it will become both a radiating heat source that encourages further melting around it, and also a lower level (no snow) that encourages melt water to drain into it, drainage-style.
So, some predictions: (1) This should happen mostly on dark, flat surfaces with little or no slope, such as asphalt parking lots, and (2) It should happen only when the sun is out.
Comment: This totally makes sense!
Answer: The pattern shown is an ice star.  It is formed in the fall just as ice starts to form on a pond, after a snow a slushy layer forms.  Slightly warmer water convects up and melts a hole.  Probably at the intersection of three convection cells.  Two competing effects are at work to form the dendritic pattern.  The warm water welling up from below wants to spread out radially when it gets to the surface.  This tends to make the channels branch.  On the other hand, wider channels through the slush are more efficient at carrying heat away from the center and tend to widen and lengthen channels along a specific radial.  The balance between these competing "forces" creates the star like pattern.

Melting ice pattern


Improving my game

Question: I am more than a novice in chess ( I got 5 points out of 9 in a local tournament) but I want to play really well. My biggest problem is I don't know what moves to make in the middle game, and can't fathom moves made by my opponents in the same time.
Speaking generally, what can I do to improve my game? I just seem to run out of ideas on a game.
Comment: I don't have enough time to write a full answer, however I have one thing to say (you may have already heard this). When playing against an opponent of similar skill, if you are unsure what to play it may be the case that they, too, are unsure what to do. My personal opinion on this is to make moves which improve your structure. Wait for your opponent to attack, and respond accordingly. It may be the case that you have a better structure since you made neutral strengthening moves, and can easily counterattack against their slightly weaker structure.
Answer: Don't worry, finding a good middle game plan is not easy for a beginner and takes some experience to develop as there is often more than one option to follow. It is not something you can generalize or something you can train like tactics puzzles.
The best way to improve is to find a stronger player to go through your games and discuss what you should have done (not move by move but in principal).
Essential for developing a plan is a correct evaluation of the current board position. Based on this evaluation you can develop a plan with the aim to improve your weaknesses or to play against your opponent's weaknesses. A few things to look for in a position:

good pieces and bad pieces (whose position you want to improve or which you want to exchange)
weaknesses in pawn structure, giving you ideas for "pawn breaks" or for winning pawns
weak king -> ideas for attack, or if it is your own king, need for defense
open files (which you usually want to occupy with heavy pieces)

Wikipedia has a good article on common pawn structures with the typical plan/"theme" associate with it. Also, reading annotated games or watching commentaries of games is a good way to learn how master players think about a position and develop a plan.
Comment: Thank you, @user1583209, that was very useful. I shall definitely implement your advice.
Comment: if I may add something, I find it hard to pick the right move out of many choices, and even harder to predict my opponent's reaction to my move. On the other hand, I can usually see forcing moves quite clearly and I plan accordingly.
Comment: Another useful tool is to study master games with your opening.
Comment: I will advise you to watch free YouTube videos which are b/w two GMs & the Host explains move by move . This would help you to think deep and you would learn faster .
Comment: Thanks, @Seth Projnabrata! By the way, when I comment on other's answers with the tag @"name", the @"name" thing is not appearing in the posted comment. Wonder why?
Comment: Wait and hover ...like @H......when I type u are appearing . U have to type till that alphabet or numeric ....try again it should work.
Answer: To be concise, first you have to get quickly and soundly through the opening.  This implies getting your minor pieces out quickly, contesting the center and castling so that you've reached an even middle game.  Then you can start looking for tactics while avoiding your opponent's threats. He'll be doing the same, so you'll have to be alert to his tactics as well as his strategical intent.  Is he moving his pieces toward your king position?  You'll have to try to offset those plans by bringing your pieces to the same area.  In a balanced position, when tactics aren't available, you should strive to improve your position - by gaining space on the board, keeping your pawn structure intact, controlling open files, looking for holes in the enemy position to place advanced pieces like your knights, penetrating with your heavy pieces, e.g. rooks, to the 7th rank.  If you have controlled the center giving more mobility to your pieces, you can look for ways to direct them toward your opponent's king-side to try to ultimately storm that position tactically.  As Silman has proposed, look for imbalances on the board, such as unprotected enemy pieces and pawns, poor coordination among same, isolated, backward and doubled pawns, weak defense around his king, backward development, etc., to try to take advantage of.  Hopefully these suggestions don't seem too abstract, but these ideas can ultimately lead to concrete expression on the board.  Going over annotated games by strong players should also help elucidate these ideas and bring about the desired improvement in your game along with notating and reviewing your own games. And of course playing regularly is also important to see many positions and absorb beneficial patterns.
Comment: thanks for your advice, I'm sure I'll be able to improve my game.
Comment: Just keep playing a lot.  If you apply yourself and learn more, over time you'll inevitably improve.  And there's no deadline.  It's a lifetime activity.  I'm  80 and still learning, and enjoying the process as I do.
Answer: If you want to improve there's a lot of stuff you can do. In order of importance probably something like this.
5-10 tactics problems a day.
One old gm game a day preferably from a book with explanations given for the moves, or watch a few videos each day on youtube where the guy covers a gm game and gives plenty of explanation for each move.
Buy Silman's Complete Endgame Course and read a few pages each day.
Play long games on lichess (15-60 minute games) online then after the game review it and try to understand what mistakes you made during the game. You can use the game analysis feature, and engine analysis to do this. Then use the opening database there, set it to master games, and use the winning percentages to see some other ways you could have played the opening.
Doing these things will improve your ability to evaluate a position and expose you to new maneuvers and ideas you haven't seen before.
As far as knowing what to do you need to be able to evaluate the position on the board and have some knowledge or pattern recognition for typical ways to improve your position or worsen your opponents.
Comment: thanks for the advice! I will implement it. By the way, do you mean Chess.com when you say "lichess"? Please clarify. Thanks again!
Comment: lichess.org is what he was referring to, although there's nothing wrong with using chess.com instead.
Comment: I just find its easier to use engine analysis and to look through the database on lichess since it's directly under the analysis board in post game analysis. On chess.com you need an extra window open to look through the database if I remember correctly, also you may need to go out of live chess and go to game archives to access computer analysis beyond the chess.com engine game summary if I am remembering this right. Instead of explaining all that I simply recommended lichess since it's easier to analyze your game there.
Comment: Feel free to play on chess.com though. My student does all the time, although I'll usually analyze his games later on lichess.org.
Answer: It may be time to start learning positional play.  Most positions do not favor a tactical attacking approach,  at least until you have built up a better position so that it would work.
Put your pieces in better locations. Create weaknesses in your opponents structure. Wait until the position is ripe so that tactics can decide.
Lastly, learn endgames.  You won't beat everybody in the middle game.  A lot of games go on a long time and the end game is just as important if nobody wins earlier.

Improving my game


Label printing: how can I only combine people with relationship

Question: There is an option to combine people at one address to get just one printed label, but this is no good for us as we have congregation members living in the same old person's home who should all get an individual mailing. What we really want is only to get combined labels when the members are linked by a relationship. Is there any way of adjusting the mailing label printer to do this without artificially messing around with the mailing addresses to avoid duplicates for the old person's home?
Comment: Are you using Household's in your Civi setup?
Comment: We don't really need to use households, since we either have individuals or married couples in our list. So far, the possibility to link the married couples using relationships seemed adequate. What I need is the possibility to merge addresses, but only for persons in a relationship
Answer: If you use households and have the spouses, children also have a relationship of member of household or head of household, then the check box "Merge labels for contacts belonging to the same household" will do what you want.
Comment: This means that I have to set up additional households for all married couples, which is over the top in our case
Comment: After thinking about all this and wanting to avoid programming and tedious processes every time we do a mailing (once a month), then perhaps using households will be the path of least resistance... ;-)
Answer: You could create two mailings one for people with a relationship and one for people without.
Use the relationship report to find all the people with relationships.  Add them to a group.
Create another group with all the people in the congregation.
Then use the Search => Custom Search => Include / Exclude Contacts in a Group / Tag.  You would include the group with all the people and exclude the ones with relationship. This will give you a list of congregation members who don't have a relationship.  Create mailing labels for them without checking any boxes.
Then pull up the group of people with relationships and create labels for them checking combine addresses.
The downsides of this approach is every time you do a mailing you'll have to empty the groups and repopulate them.
Comment: This approach would work, but means that the secretary has to remember to recreate the groups each time, which is rather tedious and prone to error, so not really a good solution, I'm afraid
Comment: If you only have one or two old folks home, you could create a group, possible a smart group, for the people in the home.  Then print the mailing labels for everyone (manually remove the one for the old folks home) and then print labels for the group with the people in the home.
Comment: You might be able to create a smart group for everyone minus the people with the old folks home address so it's more automatic.

You could also explore using a tag for the people in the home.  You can easily tag them by searching on address and selecting the option for assign tag.  Then print by tags or minus tags.
Comment: After I wrote the comments above I thought of another way that will be more automatic.  This assumes you don't have that many different old folks homes:

1.  Use advance query and search for the address of the old folks home
2.  Create a smart group for them, old-folks-home
3.  Create a smart group for everyone
4.  Do the custom exclude search, search for everyone minus the old-folks-home.
5.  Create a smart group from this search, everyone-minus-old
6.  Now do two mailings one for everyone-minus-old using combine and one for old-folks-home not using combine.
Comment: @Paul-Tahoe, you are able to edit your answer to improve it or provide a second answer.  Either option would be better than including your six steps as a comment
Comment: I tried to search for people with a specific relationship and the query failed with the message "DB Error: no such field", which was rather annoying. I have customised the relationship list to use German names, so perhaps that broke something?
Comment: What version are you on?


Computers and draws

Question: Engines really push for a win in a dead-draw middlegame position, unlike humans who may agree on a draw. Why is that happening?
Answer: If an engine continues to play on in a drawn position, the reason is because it simply hasn't been given the heuristic to offer a draw in a dead drawn position. There are a couple of reasons a programmer may not program in such a heuristic:
1) Suppose an engine calculates that the game is a forced draw at depth 30, but to a human (or much weaker engine) the position is very complicated and not at all drawn. It wouldn't make sense to offer a draw here.
2) Making a heuristic that assesses whether a position is "dead drawn" may be non-trivial. What constitutes "dead drawn" versus an equal position? Quantifying this could be tricky.
Answer: It is not so much that engines "push for a win in a dead drawn position." Instead, they simply continue to play the most accurate moves--because they are engines and lack the volition to do anything else by virtue of their programming. Since it can be difficult for a human to continue to find the accurate drawing moves even in an equal position, especially when time trouble is a factor, the human simply feels as if the engine is pushing for a win.
Comment: What is a "dead-draw" position? Is the starting position a "dead-draw" opening position? Why do human players start a game of chess and then agree to a draw before it's over?
Comment: Engines do sometimes offer a draw in a drawn position(usually endgames). Why don't they offer draw in  dead-draw middlegame positions?
Answer: The simple answer is that most engines are not programmed to offer a draw, nor to accept draw offers when made. Those that do are the rare exceptions. Furthermore, for such an engine to make/accept a draw offer, it must judge the position to be equal, which might not correspond with the human intuition for what a drawn position is.

Computers and draws