Is it possible to run a script on the host machine when a docker container starts or stops

Question: I am to start a docker container and bind an IPv6 address to it by running docker run -itd --restart=always --name=<container> --net=br6 --ip6=2001:db8:8:2::100 <image>. However, I have to use ndp proxy ip neigh replace proxy "2001:db8:8:2::100" dev ens3 to make the address accessible. Is it possible to run this command on the host machine every time when the docker container starts?
Answer: The easiest way, of course, is to put both commands inside a bash script, as part of the process.
Create the script run.sh:
#!/bin/bash

docker run -itd --restart=always --name=<container> --net=br6 \
--ip6=2001:db8:8:2::100 <image> . \
&& ip neigh replace proxy "2001:db8:8:2::100" dev ens3

Now everybody who wish to run your container should do it by running ./run.sh, after granting it executing permissions.
This is very common to use a script like to set up the environment before running.
But in some rare occasions (not like yours, though, but its completely up to you to decide) you want to make the host execute script automatically when the container starts.
This can be done by using the server-client pattern - your host serves as the server side - it is listening on specific port, and ready to execute the command on request.
The container acts as the client - in the container entrypoint, it sends an http request to the server, on that specific port and URI, asking it to execute the wanted command.
An example of using this pattern on docker is when debugging server code - you want the container to send the debugging logs to a specific port on your machine where your IDE accepts them.


Why doesn't an orbiting body keep accelerating?

Question: As a physics newbie I'm trying to get a grip on basic orbital mechanics. I think I'm beginning to get grasp on how bodies interact with each other. When a body approaches another body it accelerates due to gravity. It can reach a point where its velocity is high enough to keep falling but also keep missing the object it is falling towards. What keeps it from accelerating (because of gravity) and eventually reaching escape velocity? I feel like I'm either looking at things the wrong way or I have the entire thing wrong.
Comment: Acceleceration and currect velocity do not point in the same direction for orbiting bodies.
Comment: In really simple terms, an object in orbit, as it moves away from the object it orbits, it slows down (like a ball thrown in the air, as it gains height, it loses velocity).    This is kinetic energy becoming potential energy.    As it moves into a lower orbit, it re-gains velocity - which conveniently the velocity moves it back into a higher orbit. - that's kind of a clumsy way of explaining it.
Answer: It does keep accelerating.  Its velocity in the direction of the object being orbited keeps increasing.
But this direction keeps changing.  The reason the satellite's total speed doesn't increase, at least in the case of a circular orbit, is that while its velocity towards the object increases, its tangential motion moves it forward so that that direction is always perpendicular to the direction of motion.  Thus while the satellite is undergoing constant acceleration, that acceleration is always perpendicular to the direction of motion and the speed of the object never changes.
Comment: Thanks! I'll go read up on how velocity vectors work when adding in different directions.
Comment: I am (genuinely) unclear whether it's proper to speak of _constant acceleration_. Surely you either have constant velocity or you have acceleration?  Additionally, what is the effect of constant altitude: if a body falls freely through a gravity field on Earth, it will accelerate by 30 ft per second per second; but an orbiting body maintains a constant distance from the center of mass (the gravity source), so the strength of the field is not increasing from one second to the next. Therefore, logically, the body should not be accelerated: the field strength affecting it is constant.
Answer: You're right - the objects are always accelerating while orbiting, and this acceleration is due to gravitational influence.
However, force/acceleration don't always cause an increase in speed. For example, a force acting opposite to the velocity will slow an object, and a force acting perpendicular to the velocity will merely change its direction. In an object moving in a low-eccentricity orbit, the gravitational force is always nearly perpendicular to the velocity, so there isn't a large speed change.
Answer: If we draw in the acceleration and velocity vectors of an orbiting body, you'll see why it acceleration due to gravity does not cause an orbiting body to fall towards an object.
First, assume the orbit is circular. In any motion of an object, the velocity vector is tangent to the object's path. Because acceleration due to gravity is straight towards the center of the body, the acceleration vector connects the object to the center of the body being orbited. This vector is perpendicular to the tangent vector because the radius of a circle is perpendicular to any tangent to that circle. Thus acceleration is perpendicular to velocity and cannot change the velocity's magnitude.
But, the object is still technically falling towards the center of the attracting body. The reason the object doesn't hit terminal velocity is because perpendicular accelerations don't change magnitude of a moving object.
Comment: The reason it does not reach terminal velocity is because terminal velocity is a feature of falling through a viscous fluid.
Answer: Even simpler than what's been posted: the curvature of the earth keeps slowing the orbiting body. While grabity is pulling it down the tendency to travel forward resists that pull thus keeps  the "fall at a balance"
Comment: The curvature of the earth has nothing to do with the object slowing down. The object slows when its velocity has a component opposite the acceleration vector ($\vec{v}\cdot\vec{a} < 0$).


Comparison of MFU and LRU page replacement algorithms

Question: When does MFU (Most Frequently Used) page replacement algorithm have better performance than LRU (Least Frequently Used)? When is it worse than LRU?
Where can I find information beyond the basic definition of the MFU page replacement algorithm?
Answer: Typically, I've seen an MFU cache used as the primary, backed by a secondary cache that uses an LRU replacement algorithm (an MRU cache). The idea is that the most recently used things will remain in the primary cache, giving very quick access. This reduces the "churn" that you see in an MRU cache when a small number of items are used very frequently. It also prevents those commonly used items from being evicted from the cache just because they haven't been used for a while.
MFU works well if you have a small number of items that are referenced very frequently, and a large number of items that are referenced infrequently. A typical desktop user, for example, might have three or four programs that he uses many times a day, and hundreds of programs that he uses very infrequently. If you wanted to improve his experience by caching in memory programs so that they will start quickly, you're better off caching those things that he uses very frequently.
On the other hand, if you have a large number of items that are referenced essentially randomly, or some items are accessed slightly more often than, or items are typically referenced in batches (i.e. item A is accessed many times over a short period, and then not at all), then an LRU cache eviction scheme will likely be better.
Comment: @seeker Yes, this answer mixes terms (the second sentence should read most _frequently_ used things) and uses MFU cache to mean a cache with a LFU replacement algorithm. In my experience, this is the incorrect term. LRU cache refers to a cache that evicts the least recently used item, so MFU cache should be a cache that evicts the most frequently used item
Comment: Not sure if I'm missing something but isnt this the opposite of the MRU algorithm explained -  https://en.wikip`edia.org/wiki/Cache_replacement_policies#Most_recently_used_(MRU)   - **MRU algorithms are most useful in situations where the older an item is, the more likely it is to be accessed**
Comment: https://en.wikipedia.org/wiki/Cache_replacement_policies#Most_recently_used_(MRU)
Comment: Can anyone tell me why MFU isn't used very commonly in practice or potential issues that can occur?
Answer: Least Recently Used (LRU) Page Replacement Algorithm
In this algorithm, the page that has not been used for the longest period of time has to be replaced.
Advantages of LRU Page Replacement Algorithm:

It is amenable to full statistical analysis.
Never suffers from Belady's anomaly.

Most Frequency (MFU) Used Page Replacement Algorithm
Actually MFU algorithm thinks that the page which was used most frequently will not be needed immediately so it will replace the MFU page
Example: consider the following reference string:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Buffer size:3
String :7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
<code>7 7 7 2 2 2 0 4 2 2 0 0 2 2 2 0 0 7 7 7

  0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
</code>
Answer: I had been struggling to find a use case for MFU, everywhere MFU is confused with MRU. The most cited use case of MFU is:

The most frequently used (MFU) page-replacement algorithm is based on
the argument that the page with the smallest count was probably just
brought in and has yet to be used.

But it can clearly be understood that they are talking about MRU - most recently used cache.
What I could find was a paper which described using both MFU and LFU, most frequently used references are moved to primary cache for faster access and least frequently used references are moved to secondary cache. That's the only use case I could find for MFU.


A general doubt regarding extensive/intensive properties and units in thermodynamics

Question: I know that for reversible processes: entropy change = dq/t
Here its unit should J/Kelvin but it is mentioned in my books that its unit is J/Mol-Kelvin. I do not understand why there is mole in denominator of unit.
Also, if J/mole-Kelvin is the unit, then why it is an extensive property? Extensive properties vary based on quantity, but this is strictly per mole.
Comment: dS=dq/T, not dS=dq/dT.  When you have moles in the denominator, you are talking about molar entropy which is an intensive property (as you noted).  Since, in practice, when you use the tables, the number of moles is going to be exclusive to your system, it is necessary to tabulate the molar entropy ( or specific entropy) rather than the extensive entropy.
Comment: thanks @ChetMiller for correction
Answer: In physical chemistry/thermodynamics they remind you that:

Intensive properties are independent of the quantity of material in the system, such as pressure $p$, temperature $T$, electric potential $\phi$, composition $x_j$, etc.
Extensive properties are dependent of the quantity of material in the system, such as volume $V$, entropy $S$, kinetic energy $K$, etc.

However, for many thermodynamic functions, we can turn them into intensive properties dividing by the total amount of the system. I'll show you the notation that I like. Let $X$ denote the thermodynamic property $Q$, $S$, $G$ or $V$, then $x$ is defined as
\begin{equation}
  \boxed{x \equiv \frac{X}{n}} \tag{1}
\end{equation}
where $n$ is the total amount of the system. Here $x$ has the name of molar thermodynamic property, and may be $q$, $s$, $g$ or $v$
For example, $g$ is the molar Gibbs energy (intensive) in $\pu{J mol^-1}$ and $G$ is the Gibbs energy (extensive) in $\pu{J}$. $v$ is the molar volume (intensive) in $\pu{m^3 mol^-1}$ and $V$ is the volume (extensive) in $\pu{m^3}$.
Thus, for the following equations
\begin{equation}
  \mathrm{d}S = \frac{\unicode{x0111}Q_\mathrm{rev}}{T} \quad
  \mathrm{d}s = \frac{\unicode{x0111}q_\mathrm{rev}}{T} \tag{2,3}
\end{equation}

Eq. (2) denotes entropy $S$ in units of $\pu{J K^-1}$, and heat $Q_\mathrm{rev}$ in units of $\pu{J}$.
Eq. (3) denotes molar entropy $s$ in $\pu{J mol^-1 K^-1}$, and $q_\mathrm{rev}$ denotes molar heat (although this sounds weird) in $\pu{J mol^-1}$.
Comment: Note that not all quantities depending on material quantity are extensive. There must be proportionality. X(an)=a.X(n). By other words, there are quantities that are neither intensive nor extensive.
Comment: For differentials of W and Q, it is better to use  small "dyet"("d with stroke") Unicode symbols as for inexact differentials $đQ$ (U+0111 or by (Win)compose `Compose / d` ).  It is sometimes substituted in CH SE by MJ `\delta`  ($\delta Q$), but it is not exactly correct. OTOH, \delta looks better in context of MJ typesetting.
Comment: @Poutnik Hello Poutnik, sorry for the late reply. Thanks for the comments, you are right, the differentials are now correctly written.
Comment: Also thanks @Maurice for the modification!
Answer: So the 'mol' or mole is just a number, and so you would be perfectly valid to give entropy in units of either J/mol/K or just J/K. You can interchange between the two by multiplying or dividing by the Avigadro constant.
Also you are right about the second part, if entropy of a substance was reported in units of J/mol/K then that is a standard entropy change which is an intensive property. Entropy just generally however does depend on the number of moles of substance and so is an extensive property unless the molar quantity is specified.
Hope that helps.
Comment: 1 mol is 1 of 7 fundamental SI units, so not dimensionless. Involving N_A would be a disaster.
Comment: Molar entropy $S_\text{m}[\pu{J K-1 mol-1}] = \frac{S [\pu{J K-1}]}{n [\pu{mol}]}$. Or differentially, $S_\text{m} = \left(\frac{\partial S}{\partial n_i}\right)_{p,T,n_j,i \ne j}$


How does the original ionic distribution restore after synaptic transmission

Question: During synaptic transmission the calcium ions around the presynaptic membrane diffuse in due to the influx of Na+ ions and the resulting depolarization. This happens because the calcium channels are voltage regulated ones. At the same time on the other side of the membrane there is efflux of K+ ions in order to repolarize the membrane. My question is how does the original ionic distribution restore which is more K+ on the inside and more Ca2+ on the outside? What kind of pump does this job and what is the exact mechanism? As contrast to the nerve membrane where the Na+/K+ pump does this. I don't find a pump like K+/Ca2+ pump to do this.
Answer: Most of the depolarization in the presynaptic terminal is still sodium-based, it's just that there are also calcium channels there. Very little calcium actually moves, as these channels are closely coupled to the synaptic release machinery (see for example Stanley 1993 Single calcium channels and acetylcholine release at a presynaptic nerve terminal).
The calcium concentration gradient has to be established everywhere in cells that have this gradient (all animal cells, as far as I know), not just at a synapse, since calcium is typically a powerful "second-messenger" signal.
The two common mechanisms for transport are by using the gradient of sodium via calcium antiporters (this mechanism: using sodium or proton gradients to move other ions/molecules, is quite ubiquitous in biology), and via a calcium ATPase. Calcium transport involves both the external space and intracellular calcium stores such as within the endoplasmic/sarcoplasmic reticulum.
In the short term, calcium concentrations are also dealt with via chelation by calcium-binding proteins.
Comment: What about K ions . Is their level is maintained by simple diffusion of K ions or some special type of transporters or ATPase come into action. Anyways thanks the links were of great help
Comment: @Ubaid You've already mentioned the Na/K ATPase - that's the primary way that K concentrations are maintained.


How do I mirror a object without the mirror modifier?

Question:
My cat-human hybrid I'm making needs a right ear and it needs to be mirrored.
Comment: There isn't need to install anything to use Mirror modifier or any modifier, just open Modifiers tab in Properties editor
Comment: What's the reason for not being able to use a mirror modifier?
Comment: I'm new to this and in other programs, I use you need to install mods so I thought it would be like that with blender.
Answer: This works both in Object and in Edit mode.

Place the 3D cursor where the mirror axis origin would be (Shift+C will place it at the origin (position $0,0,0$)
Change Pivot center for rotation or scaling to be 3D cursor (or press . (dot) on the keyboard)
Duplicate the object or part of mesh you want to mirror (Shift+D)
Press Ctrl+M (or find command Object > Mirror Mesh > Mirror) and then select the axis you want to mirror the duplicated object along (in interactive mode press X, Y or Z on the keyboard). Click left mouse button to confirm.

In order mirroring to work correctly in Object Mode you have to Apply Scale and Rotation on the object first.
Comment: Note that Ctrl+M mirrors by scaling selection to -1 which leads to inverted normals so it's best to recalculate them after executing Mirror
Answer: Well, if you don't want to use a Mirror Modifier, you could nevertheless use it and apply it afterwards by pressing "Apply" after you're done modeling.

Or you go into Edit Mode, delete half of your mesh (depends on which axis you want to mirror, in this case I guess it's the X-Axis), then press W and select "Symetrice". There are different options when you open up the toolbar (T), so play around with the axis mirror type.
Attention: Be sure that the origin of your model is located at the cutting edge, otherwise it will cut it where the origin is located at. To move the origin, select the cutting edge in Edit Mode, press Shift + S, select "Cursor to Selection", the go into Object mode, select your mesh and press Ctrl + Shift + Alt + C and select "Origin to 3D Cursor". And make sure to apply any rotation or scale changes before doing so.
Comment: TYSM ~! \[^w^]/


What does this dot and bemol mean?

Question:
I am really cofused. Thank you for your answer by now.
Comment: I removed the second identical copy of the graphics; if something else was supposed to be there, please supply.
Comment: Would you paste more of the song? I googled the single word "Morenica" and the hits I got suggested the song might perhaps be modal, which might go some way to explain the single flat in the key signature. Is the final note of the tune something other than F or D?
Comment: @$Brian Thomas: https://www.youtube.com/results?search_query=more+nica+mi+me+llama
Answer: The dot on the 3rd line is a note head: B♭ (no length defined) and the flat ♭  assigns that there some B will be flattened but we don't know where if we don't see the whole song.
Thanks to the posting of NewGuitarMan  we know now  the B will be flatted  in  the end of the song (2nd last bar) song will B♭.
(B♭ but not the entire song!- that's why the assignment is in brackets)
So this melody isn't in F and neither in Dm. Probably this is a good example of the new term I've learnt recently: Pandiatonicism.
Pandiatonicism in "She's leaving home" (Beatles)?
There are several performances of this song but any of them is exactly identical with the one we can see the sheet music here.
Answer: The 'bemol' - flat in English - on that middle line denotes all the B notes in the piece will be B♭, (si bemol). Putting it possibly in key F or D minor. Or more likely, I guess, a mode of F.
Why it has brackets, don't know. Possibly as a courtesy reminder. And why there's a note head (dot) as well, still don't know!
Comment: My money's on poorly edited notation software
Comment: Could it be an editorial annotation?  Those are sometimes put in square brackets to indicate that they're not in the original.

What does this dot and bemol mean?


Why can static methods only use static data?

Question: I don't understand why a static method can't use non-static data. Can anybody explain what the problems are and why we can't do it?
Comment: @gnat in this case OP is trying to understand the reason behind a design decision. What do you expect him to try in this case?
Comment: Because only static data exist from the point of view of static methods.
Comment: To paraphrase Gertrude Stein: "There's no **this** there."
Comment: Sharing your research helps everyone. Tell us what you've tried and why it didn't meet your needs. This demonstrates that you've taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see [ask]
Comment: @Geek - the existence of static methods, static data is a language design issue. Assuming standard meanings, the fact that static methods cannot access instance data is not. The limitation is implied by the definitions and what is possible and makes sense, not by some language designers foibles.
Comment: Google provides you with dozens of explanations, see for example http://easysteps2buildwebsite.com/2013/05/static-vs-non-static-methods/ or here http://cscie160-distance.com/nonstatic.html
Comment: @hippo and basha - They _can_ use instance methods. Just pass in a reference to an instance as a parameter. They can even access its private members. class Foo {  static int FooVal(Foo thisFoo) { return thisFoo.val(); }} Of course in this example you'd just make that an instance method. And most others too. For example if you wanted to use a static method on foo like Foo.compare(foo1,foo2) you could instead make it instance and use it like foo1.compare(foo2). Hope I don't sound like a foo.
Comment: The wikipedia artcile [Method](http://en.wikipedia.org/wiki/Method_(computer_programming)#Static_methods) may help shead some insight into this.
Comment: @Geek apparently, you read the question differently than me
Comment: To understand this fully, you also need to consider the inverse - why static methods can't use instance member methods, properties or variables without first creating an instance. Understanding this helps you to see the complete picture.
Comment: I think it's worth pointing out that static methods sometimes *do* use non-static data. It's not uncommon for a static method by the name of `main` to create an instance of the class and to (occasionally) use non-static data from that instance. (Of course, it's not limited to `main`, but that's where one is most likely to encounter this behavior.)
Answer: In most OO languages, when you define a method inside a class, it becomes an Instance Method. When you create a new instance of that class, via the new keyword, you initialize a new set of data unique to just that instance. The methods belonging to that instance can then work with the data you defined on it.
Static Methods, by contrast, are ignorant of individual class instances. The static method is similar to a free function in C or C++. It isn't tied to a specific instantiation of the class. This is why they cannot access instance values. There's no instance to take a value from!
Static Data is similar to a static method. A value that is declared static has no associated instance. It exists for every instance, and is only declared in a single place in memory. If it ever gets changed, it will change for every instance of that class.
A Static Method can access Static Data because they both exist independently of specific instances of a class.
It might help to look at how you invoke a static method, compared to a instance method. Let's say we had the following class (using Java-like pseudocode):
class Foo {
    // This static value belongs to the class Foo
    public static final string name = "Foo";

    // This non-static value will be unique for every instance
    private int value;

    public Foo(int value) {
         this.value = value;
    }

    public void sayValue() {
        println("Instance Value: " + value);
    }

    public static void sayName() {
        println("Static Value: " + name);
    }
}

Foo foo1 = new Foo(10);
Foo foo2 = new Foo(20);

foo1.sayValue(); // Prints "Instance Value: 10" - called on foo1
foo2.sayValue(); // Prints "Instance Value: 20" - called on foo2

Foo.sayName(); // Prints "Static Value: Foo" - called on Foo (not foo1 or foo2)

Update
As COME FROM points out in the comments, a static method is capable of working with non-static data, but it must be passed explicitly. Let's assume the Foo class had another method:
public static Foo Add(Foo foo1, Foo foo2) {
    return new Foo(foo1.value + foo2.value);
}

Add is still static, and has no value instances of its own, but being a member of the class Foo it can access the private value fields of the passed-in foo1 and foo2 instances. In this case, we're using it to return a new Foo with the added values of both passed-in values.
Foo foo3 = Foo.Add(foo1, foo2); // creates a new Foo with a value of 30

Comment: Expanding on "There's no instance to take a value from" - even if there are instances, the static method can't know *which* instance to take a value from.
Comment: This is a lot less complicated to explain in languages that don't force everything to be part of an object by default.
Comment: This is a fine answer but it still fails to tell the whole truth: static methods *can* access non-static data. They just don't have the implicit object or `this`-reference available. I think that is vitally important to understand.
Comment: @Mason True words. Languages like Java kind of enforce a false notion that a function is something that necessarily belongs to a class.
Comment: @COMEFROM You mean by explicit passing? I can make a note of it, if I'm understanding you correctly. I assumed it was implied that a static method could access explicitly passed non-static data, given that _any_ function can work on data explicitly passed to it.
Comment: @KChaloux: Something like that, yes. Of course, having access to an instance suffices. It doesn't have to be passed to the method. Good work pointing out that private members are accessible too.
Comment: @Steve314 Your point is really good,it answered my question very much :)
Answer: Lets explain it with a hypothetical sample.
Imagine a simple class:
class User
{
User(string n) { name = n; };
string name;
}

Now we create 2 instances of this class:
User Bones = new User("Bones");
User Jim = new User("Jim");

now, think - what if we add a new static method to User, eg:
static string GetName();

and you call it:
string x = User::GetName()

what would x contain? "Jim", "Bones", or something else?
The problem is that a static method is a single method, defined on the class, not the objects. As a result, you don't know which object it might apply to. This is why its a special thing. Its best to think of static methods as individual things, like functions in C for example. That languages like Java have them contained inside classes is mainly a problem with Java not allowing anything to exist outside a class, so functions like this have to be forced inside a class in some manner (a bit like how main() is forced to be inside a class too when all sense says it should be a singular, standalone function).
Answer: Non-static data is associated to an instance of the class. Static methods (and data) are not associated to a particular instance of the class. There does not need to be an instance of a class to use static methods on it. Even if there were instance(s), there would be no way for Java to guarantee that you are operating on the instance you are expecting when you call a static method. Therefore, static methods cannot have access to non-static data.
Answer: It can use field data; consider the following java code:
class MyBean {
    private String myString;

    static void myStaticMethod() {
        myString = "tada";/*not allowed; if this was possible how would
                           be different from a field without static?*/

        MyBean myBean = new MyBean();//allowed if associated with an instance
        myBean.myString = "tada";
    }
}

Comment: Actually, I think this is a very good addition to explaining the point. It highlights the point that the static method needs an instance of the class before it can access non-static data while providing an intuitive reason why that is so.
Comment: While this may *technically* be a static method using non-static data, it misses the point.  Of course you can create a new instance and access it.  But that has nothing at all to do with `static`ness.
Comment: @Bobson You should read the code and the comments also.
Comment: @BenHocking "yes" even i think it is good point telling that "instance variable is always associated with object"
Answer: I think the issue here is one of understanding.
From a technical standpoint a static method called from within an object would be quite capable of seeing the instance fields.  I strongly suspect this is what caused the question in the first place.
The issue is that methods can be called from outside the object.  At that point there's no instance data to provide them--and thus no way for the compiler to resolve the code.  Since allowing instance data caused a contradiction we must not allow instance data.
Comment: I disagree. A static method cannot access instance data because instance data must be accessed via an instance of the object and the static method is not associated with any given instance (but with the class definition).
Comment: You miss my point.  **If** it's called from within the class the compiler could pass an instance pointer like it does when it's not a static class.  The problem comes if it's called from elsewhere--which means private static methods could access instance data (albeit by internally basically ignoring the static.)
Comment: Yes, the compiler /could/ but why should it?  Passing such a pointer essentially reduces it to an instance method.  Your stipulation that it is only private methods that could do this is moot - Reflection technologies make /all/ methods accessible - private or not - making this an even more risky proposition. Our Friends in Redmond have gone in the other direction; their languages raise a warning if you try to call a static method against an object instance (and not the class itself).
Answer: Think of it as static methods living in a non-object-oriented dimension.
In the "object oriented dimension" a class can spawn multiples egos (instances), each ego has conscience of itself via its state.
In the flat, non-OO-dimension a class is oblivious of their egos living in the OO-dimension. Their world is flat and procedural, almost as if OOP had not been invented yet, and as if the class was a small procedural program, and the static data were just global variables.
Answer: I think the easiest way to explain this is to look at some code and then consider what results we would expect the code to produce.
// Create three new cars.  Cars have a name attribute.
Car car1 = new Car("Mazda3");
Car car2 = new Car("FordFocus");
Car car3 = new Car("HondaFit");

// Now we would like to print the names of some cars:
// First off why don't we try this:

Car.printCarName();

// Expected behaviour:
// If we think about what we are trying to do here it doesn't
// really make sense.  What instance of car name should this
// print?  Should it print Mazda3?  FordFoucs?
// What is the expected behaviour?  If we are going to have a
// static call on car call printCarName it should probably do
// something like print all car names or a random car name or
// throw an error.

//Now lets try this instead:

Car.printCarName(car1);

// Expected Behaviour:
// Luckily the expected behaviour is very clear here.  This
// should print Mazda3.  This works as expected.

// Finally lets try this:

car1.printMyName();

// Expected Behaviour:
// Same as previous example, however this is the *right* way
// to do it.

For completeness here is the car class:
public class Car{

    public String name;

    public Car(String name){
        this.name = name;
    }

    public static printCarName(){
        print "Not sure what to do here...  Don't know which car you are talking about.";
    }

    public static printCarName(Car c){
        print c.name;
    }

    public /*NOT static*/ printMyName(){
        print this.name;
    }

}

Comment: @gnat Updated with comments to clarify.
Comment: how does this answer the question asked?
Answer: The other answers pretty much say it all, however, there is some "detail" I'd like to add.
Static methods (say those in Java) just don't have an implicit object associated to them (accessible through this) whose members you can access usually directly by name.
That doesn't mean they cannot access non-static data.
class MyClass {
  public static void foo(MyOtherClass object) {
    System.out.println(object.member);
  }
}
class MyOtherClass {
  public int member = 10;
}
I know this is just a detail, but I found your question strange when I read it. "Can use only static data" is too much restrictive.
By the way, I didn't test the code, I just wrote it here in order to exemplify what I was saying.


Should I leave out bad undergraduate research experiences?

Question: I am a mathematics and physics double major student entering my third year. Over this summer and the previous semester I have been working with a research group in physics writing simulation code. But I have been taking an incredibly long time to finish writing this objectively simple code that I have become very dissatisfied and pessimistic about my future in physics. I have been thinking about applying to graduate school in mathematics instead but I wonder: Would it even help to list this in my graduate school applications? I've spent a lot of time on this project yet I have near nothing to show for it. No publications or even interesting results. My code isn't done yet! Should I bother asking for a letter of recommendation from my PI knowing I did a terrible job at it? I have good grades but I do not know anyone who I believe will give me a strong letter of recommendation, which I know is crucial to admissions.
Comment: "I've spent a lot of time on this project yet I have near nothing to show for it." Sounds like a normal undergraduate research experience to me.
Comment: Ask your PI if they can write you a *strong* letter of recommendation. That will clear it up.
Comment: No I wouldn't if I were in your position.
Comment: You mean you wouldn't leave that out?
Comment: Assuming you can get reasonably strong letters of recommendation for mathematics, you might be able to use this in your application letter as one of the reasons you want to pursue math. But you'll want to be careful to make sure it doesn't seem like you're going the math route because you figure it will be easy, at least not unless you have very strong letters and other supporting evidence that suggest you are likely to do very well in math. Even then, I would still suggest being careful how you use this as a reason, but I still think it could be marginally useful to do so.
Answer: Make sure you have some good talking points about the experience and then keep it on your resume. (My opinion as someone who has reviewed resumes for the company I work for, granted graduate school apps may be different.)
What did you learn about the subject matter or about yourself? What struggles did you overcome or how would you do certain things differently? Is there anything that went well, or that you could spin positively?
I would see it as a bigger red flag if I saw your resume and thought you did nothing over the summer/semester than if I saw you worked and didn't have publications (that isn't an uncommon experience).
As for the letter, you're going to have to make that call based on your relationship with your PI.  If you're really struggling with the decision, just ask your PI about your performance and what they thought you did well/could improve on - that could be telling as to what they would write.


Python compute cluster

Question: Would it be possible to make a python cluster, by writing a telnet server, then telnet-ing the commands and output back-and-forth? Has anyone got a better idea for a python compute cluster?
PS. Preferably for python 3.x, if anyone knows how.
Comment: For interactive use, or as an easy starting point, try out ipython.
Answer: The Python wiki hosts a very comprehensive list of Python cluster computing libraries and tools. You might be especially interested in Parallel Python.
Edit: There is a new library that is IMHO especially good at clustering: execnet. It is small and simple. And it appears to have less bugs than, say, the standard multiprocessing module.
Answer: You can see most of the third-party packages available for Python 3 listed here; relevant to cluster computation is mpi4py -- most other distributed computing tools such as pyro are still Python-2 only, but MPI is a leading standard for cluster distributed computation and well looking into (I have no direct experience using mpi4py with Python 3, yet, but by hearsay I believe it's a good implementation).
The main alternative is Python's own built-in multiprocessing, which also scales up pretty well if you have no interest in interfacing existing nodes that respect the MPI standards but may not be coded in Python.
There is no real added value in rolling your own (as Atwood says, don't reinvent the wheel, unless your purpose is just to better understand wheels!-) -- use one of the solid, tested, widespread solutions, already tested, debugged and optimized on your behalf!-)
Answer: Look into these
http://www.parallelpython.com/
http://pyro.sourceforge.net/
I have used both and both are exellent for distributed computing
for more detailed list  of options see
http://wiki.python.org/moin/ParallelProcessing
and if you want to auto execute something on remote machine , better alternative to telnet is ssh as in http://pydsh.sourceforge.net/
Answer: What kind of stuff do you want to do?  You might want to check out hadoop.  The backend, heavy lifting is done in java, but has a python interface, so you can write python scripts create and send the input, as well as process the results.
Answer: If you need to write administrative scripts, take a look at the ClusterShell Python library too, or/and its parallel shell clush. It's useful when dealing with node sets also (man nodeset).
Answer: I think IPython.parallel is the way to go. I've been using it extensively for the last year and a half. It allows you to work interactively with as many worker nodes as you want. If you are on AWS, StarCluster is a great way to get IPython.parallel up and running quickly and easily with as many EC2 nodes as you can afford. (It can also automatically install Hadoop, and a variety of other useful tools, if needed.) There are some tricks to using it. (For example, you don't want to send large amounts of data through the IPython.parallel interface itself. Better to distribute a script that will pull down chunks of data on each engine individually.) But overall, I've found it to be a remarkably easy way to do distributed processing (WAY better than Hadoop!)
Answer: "Would it be possible to make a python cluster"
Yes.
I love yes/no questions. Anything else you want to know?
(Note that Python 3 has few third-party libraries yet, so you may wanna stay with Python 2 at the moment.)

Python compute cluster


How can I plug multiple image texture nodes into the base color?

Question: I'm trying to put two different kinds of scratches on my mesh, but I'm not sure how am I able to mix the two image texture nodes into the base color. How can I do that?
Comment: Does this answer your question? [How to combine texture nodes?](https://blender.stackexchange.com/questions/219119/how-to-combine-texture-nodes)
Comment: Hello, you haven't packed your images so we can't see them, also maybe tell what kind of mix you want? You probably can do it with the MixRGB...
Comment: You should try the Color > MixRGB, it has several modes, the correct mode will depend on the scratch images and how you want to mix them. To share your file you can use workupload.com for example
Comment: Hello, @moonboots. I'm sorry I couldn't upload the .blend file with the resources it exceeded the maximum upload size. I want to mix the two scratches together. Basically have two kinds of scratches on my mesh. I don't know what mixing methods should I approach. I'm pretty new to the nodes and texturing. Any help would be greatly appreciated.
Comment: @moonboots I've packed the images and uploaded them on workupload.com. Would you please take a look? Thank you. https://workupload.com/file/WrXTVtSGPDC
Answer: In your case you could mix your 2 textures with a Color > MixRGB in Lighten mode and push the factor up to 1:
Comment: Thank you, moonboots! I really appreciate your help!


Deploy Office Add-ins to consume SharePoint list data

Question: Which is the best way to deploy Office Add-ins to consume SharePoint Data. I am looking at the following options to upload the app manifest.

Apps for Office guide I deployed the manifest file to the App Catalog and the Office Add-in Web is deployed to Azure Websites but I am getting Add-in Error not helpful details
Office 365 Admin Center Office Admin Center deploy is an issue using ADAL.JS the ADFS organisational page always redirects to another window , the authentication is not straight forward and the window call back opens an new window after login. guide
SharePoint Add-in that contains Office add-in guide This approach work well for documents created using the add-in template how ever it does not work for document uploaded to the SharePoint library.

Microsoft had made the communication between Office Add-in and SharePoint difficult what is the best way to develop and deploy and office add-in that consumes SharePoint list data using minimum effort on authentication?
Answer: This is exactly what I am looking for too. Did you find a solution?
I am wondering if I can access SharePoint with a yeoman generated add-in or if I need to go for a Visual Studio solution to get easier connection to SharePoint?
Stephane


Can I use my Wild Card SSL certificate in Apache and IIS?

Question: I have an Azure Virtual machine.  I am hosting Confluence and a couple of IIS sites on the same machine.  Can I use a wild card ssl certificate from a reputable CA on the Confluence site (Apache/Tomcat) and also use the same cert on some of my IIS sites?
Answer: Yes. There's nothing stopping you from using the same cert for multiple services/software. As long as clients connect with the name that matches the cert, you're good.
Answer: Yes. You could even use it on multiple servers as long as

all the hostnames matches the certificate.
all servers also share the corresponding private key.
Answer: You can use same Wildcard certificate at the different server but you can only secure domains listed under for example, *.mydomain.com (I meant the domain on which you have issued wildcard SSL as well as its all sub domains).
Answer: Please note that some "reputable CA's"1 will "license" their certificates only for  single server usage and charge you extra for additional servers.
So even though, as others have already answered, technically you can use your certificate on different servers, there may be other restrictions.

1)  for instance Symantec will currently still charge $1999,- for a wildcard certificate and $1595,- for each additional server....
Comment: I have worked with too many companies where purchasing decisions are made so far away from the IT department that concepts such as "cost" and "value" were no longer any concern for an engineer that needs to get things done. Only compliance was needed...
Comment: Those who have money to pay $1999 for a certificate wouldn't be asking this question, though. ;)


How can I implement wait_for_page_to_load in Selenium 2?

Question: I am new to automated web testing and I am currently migrating from an old Selenium RC implementation to Selenium 2 in Ruby. Is there a way to halt the execution of commands until the page gets loaded, similar to "wait_for_page_to_load" in Selenium RC?
Comment: Not a complete answer but see http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_WebDriver_fails_to_find_elements_/_Does_not_block_on_page_loa for a bit of discussion.
Comment: I have already tried "wait" but that is not working I seems the issue is only there on windows machine, test case are working fine on linux
Answer: I fixed a lot of issues I was having in that department adding this line after starting my driver
driver.manage.timeouts.implicit_wait = 20

This basically makes every failed driver call you make retry for maximum 20 seconds before throwing an exception, which is usually enough time for your AJAX to finish.
Answer: Try using Javascript to inform you!
I created a couple methods that checks via our javascript libraries and waits to see if the page has finished loading the DOM and that all ajax requests are complete. Here's a sample snippet. The javascript you will need to use is just going to depend on your library.
Selenium::WebDriver::Wait.new(:timeout => 30).until { @driver.execute_script("[use javascript to return true once loaded, false if not]"}

I then wrapped these methods in a clickAndWait method that clicks the element and calls the waitForDomLoad and waitForAjaxComplete. Just for good measure, the very next command after a clickAndWait is usually a waitForVisble element command to ensure that we are on the right page.
# Click element and wait for page elements, ajax to complete, and then run whatever else
def clickElementAndWait(type, selector)
    @url = @driver.current_url
    clickElement(type, selector)
    # If the page changed to a different URL, wait for DOM to complete loading
    if @driver.current_url != @url
      waitForDomLoad
    end
    waitForAjaxComplete
    if block_given?
      yield
    end
end

Answer: If you are using capybara, whenever you are testing for page.should have_content("foo"), capybara will not fail instantly if the page doesn't have the content (yet) but will wait for a while to see if an ajax call will change that.
So basically: after you click, you want to check right away for have_content("some content that is a consequence of that click").
Comment: I am not using capybara. I am using only webdriver.


Need current iPhone's visual voicemails to transfer to new iPhone's visual voicemail, same carrier (AT&T)

Question: I am updating my AT&T iPhone XR Pro Max to an AT&T iPhone 12 Pro Max.
I need to make sure my visual voicemails get transferred so they can be viewed and opened on the Voicemail app on the new iPhone. It is not good enough to export them as VoiceMemos or Notes.
I run iCloud backups, but I could run backups onto my MacBook it that's what it takes to move them properly. It is not clear whether either backup type backs up visual voicemails and restores them as voicemails via restoring the backup onto a new device.
Thanks!
Answer: The voicemails themselves are stored on ATT servers. Getting a new iPhone shouldnt impact your VM. Follow the directions on activating your new phone and you should be fine. As far as I know there isn't a way to backup those VMs.
Comment: Thanks -- I will try this and hope for the best. I had read elsewhere that once the voicemails have downloaded into the Voicemail, they were erased of the ATT servers. I appreciate the response.
Answer: I would not trust the carrier to keep all voicemails once they know it's downloaded to your device.
Get a tool to archive them if you can't lose them is my advice.

http://www.ecamm.com/mac/phoneview/

Doing the setup of the devices wired to each other is your best bet if you have not tested a full backup of your phone to a computer. Apple says they back up ALL DATA when you backup to macOS, but I can't say for sure if all voicemail are in that category. You could test backing up the old phone and then set up the new phone by restoring the backup from the computer before you terminate service on the old phone if you want to be sure you are covered.


Open source project for a C++ developer?

Question: I am a vc++ developer (but like Qt) interested in learning from open source projects by contributing and reading the code. I use Windows as a primary development platform.
Which project will be right for me to start? Is chromium a good choice?
Comment: The question you should ask yourself is "what FOSS tools do I currently use? what's wrong with them? how could I make them better?"
Comment: @jalf:  I'm not sure I agree.  *Most* developers look at source code, make lots of assumptions (usally wrong) about what the code is doing.  This normally leads to the statement: "I could do it better".  The devil is usually in the details with source code, and IMHO it's through reading and modifying that you really get to understand something.
Comment: If you want to learn from the source code, it's unlikely that you'd also be able to make useful contributions to the project - and vice versa, if you're able to contribute to the project, you probably won't learn much new by reading the code. Which do you want? To contribute or to learn?
Answer:
Is chromium a good choice?

I believe so, yes!
The source code is IMO very well written, it's a really active project with a lot of work to do and is also interesting in many different ways. Obviously a browser is in itself just a combination of specific libraries, and thus Chromium gives you a nice entry to learn more about them and hopefully contribute evidently. But most importantly it has a big community, is sponsored by a big corporation and has many talented software engineers on its core team.

Want to learn how to integrate the
V8 javascript engine?
Want to learn about rendering/drawing on screen via Skia?
Want to learn how to integrate Webkit?
Want to learn more about the HTTP protocol / network stack?
Want to learn how to sandbox applications?
Want to learn about multi-process architecture and IPC?

There are so many things to do, so you could even contribute things you know while learning stuff you don't.

I'd like to add; The choice of an open source project to join should be based on:

Your level of expertize

What you'd like to learn
Quality of the code
Maturity of the project
Code complexity (not to be confused with readability)

I only speak for myself here, but as much as I love learning more from too complex projects (file systems, RDBM etc) I find those projects to be less rewarding because of the overwhelming complexity. Try not to learn everything at once, take smaller steps and finish what you start rather than taking larger steps and give up.
Just my 2c - YMMV

In case  you'd want to try Chromium out, here are links for the design documents:

Getting around the source code explains in great detail how the projects tree structure is built.
The Engineering design docs explain the architecture, most under the hood and future work
The user experience design docs provide insight to everything that touches the user, that is behavior and look.
Tech Talk Videos that are very helpful for understanding some key engineering issues and decisions, even if you don't intend to join the chromium project.

The links above are all taken from the Chromium developer documentation, where even more details can be found.
Anyway, good luck finding a project that fits your needs!
Answer: Get involved in the Qt Creator project.
Comment: Qt Creator is a great IDE but with more contributors it could be superb.  It's only v1.x so there is plenty of scope for new functionality and the OP mentioned Qt.
Comment: Can you tell us something about Qt Creator and why it's a good one to try to start with?
Answer: KDE has plenty of code in C++/Qt. It is a huge example of open source community... their SVN repository will soon have 7-digit commit numbers (http://websvn.kde.org/).
Comment: KDE is great, but he did say he primarily uses Windows. (And yes, I know, it runs on Windows, but very few people do that.)
Answer: Google has a lot of open-source C++ projects.  Specifically, perftools (replacement malloc, heap/CPU profiler) is in need of considerable Windows and x64 expertise.
http://code.google.com/hosting/projects.html
Answer: Well I think there is a lot of interesting opensource projects using c++. Boost is the first project one can think about. It is a library, but very well written, so you will learn a lot. If you want something more fun you can try something like a game engine like Ogre3D. If you want to participate in a project with Qt bindings, I suggest projects related to KDE as they mainly use Qt, AFAIK.
Boost
Ogre3D
Answer: how about webkit about Web browser engine open source project?
I hope it helps.
Answer: Launchy
from the project page introduction

Launchy is a free windows and linux utility designed to help you forget about your start menu, the icons on your desktop, and even your file manager.
Launchy indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes!

They also have a plugin interface so you could start with writing a plugin before getting into working on the actual code.
Answer: Participate in a Qt competition such as: Pimp My Widgets and QtCentre programming contests
Answer: wxWidgets  is better for c++ developers who has knowledge about MFC and Windows.
Qt uses MOC compilers to generate c++ code. In wxWidgets you have full control of your code.
Answer: I enjoyed working on Code::Blocks. It's not a trivial project, but you should still be able to wrap your head around it to contribute. :)
The most important thing is work on something you want to work on.
Answer: You could try and help with the KDE port to Windows. KDE is a desktop environment which was traditionally at home on Linux/Unix systems, but now has (native) ports to Windows and MacOS X.
You could help make those applications perform and integrate better with Windows.
Working on certain apps would be highly appreciated (e.g. Amarok - an advanced music player, digiKam - an advanced digital photo management application) as they would be good open source options to Windows users.
You can get a good overview on how to participate on the KDE for Windows TechBase article.
Anyway, good luck choosing ;-)
Answer: I don't think anyone here can really answer the question "Which project will be right for me to start?" as no one here really knows who you are. Programming is an absolutely HUGE area, you can do low level systems code (i.e. drivers & OSs), databasing, web browsers, games, word processing, and the list goes on.
What you should do, is find something you would like to work on, and start playing around with the code. Try out several different projects in that area and see what you can understand, contribute to and learn from (its also a good way of seeing a variety of some of the programming paradigms out there). Also, if you are trying to learn from this as well, you should check out how much help and communication between the members of the project there are and how much they seem to be willing to help one another (and if there is almost no communication, i'd worry about the project surviving much longer anyway).
Answer: Before reading the actual question, Chromium was my first thought. I definitely think it's worth it.
Answer: If you are into gaming, try the Half Life 2.2 Full SDK. Its free and you can make your own mods.


Is a bitmap fast enough for a 3d game?

Question: I would like to learn how to create some 3d games from scratch, but i need to know what the fastest way to create a frame would be. Would it be converting an array of pixels into a bitmap, or is there some other more advanced way that is faster? I have opengl and I think that there must be some way of using that to fit my needs right?
Comment: It sounds like you should read some beginner OpenGL tutorials. They'll cover setting up a framebuffer and rendering simple 3D content into it. Suffice it to say that converting an array to a bitmap each frame is not a recommended approach. Complete instructions on how to get started are beyond the scope of this site.
Comment: If you want to start learning OpenGL, I recommend this tutorial: http://web.archive.org/web/20150311211412/http://www.arcsynthesis.org/gltut/
Comment: @Jeff Do you happen to know what happened to @NicolBolas?  He was super active on GDSE, then suddenly disappeared, and now it seems his domain has expired...
Comment: No, I'm afraid I don't.  I was obviously aware of him on GDSE and on SO, although I didn't actually realise he was the author of that great OpenGL tutorial until just now.  I've seen a few posts on reddit and other forums asking about him, particularly when his domain expired, but I've never heard anything definitive.
Answer: Writing RGB values to a block of memory is "plenty fast enough". I recently wrote a software renderer (no relevance here other than as a benchmark/source of data) and this is how it works.
However this will limit the complexity of the game, GPUs are FAR FAR better at rendering than even the best CPU. For 2d stuff though you may be able to get away with it.
Almost all 3d graphics EVER have been done on discrete hardware (a GPU) because of how much better it is. Even the SNES game Starwing did this (it had a co-processor in the cartridge)
So:

Can you? Yes
Should you? No
Comment: `s/Almost all 3d graphics/Almost all realtime graphics/`  Until recently the vast majority of non-realtime/interactive graphics was rendered on CPUs.  The traditional GPU pipeline is not very good for raytracing.
Comment: @bcrist ........ riiiight
Answer: First things first.  While it is a good idea to make things as fast and efficient as possible, make sure you are reasonable about it.  You need to consider what your desired FPS is and consider what your targeted hardware is.  Then you benchmark your game and see if it is fast enough on that hardware.
Since a large majority of monitors/displays refresh at 60Hz, this means 60FPS is a good target since going any higher will not increase the visual quality of your game.  Nowadays, 120Hz monitors are becoming increasingly popular, and would be a good consideration to support, but 60Hz is still sufficient, especially for starting.

Is a bitmap fast enough for a 3d game?

It really depends.  There are quite a variety of methods to rendering games, each with its benefits/disadvantages.
By the sounds of what you are asking, you are talking about software rendering.  This is essentially a hardware-independent method of drawing your frame and is done completely by software (i.e. your program is generating a bitmap which contains the result of your rendered frame, and that bitmap is drawn through your CPU).
A better solution (in terms of speed) is to rely on your GPU (graphics processing unit).  This special hardware is designed for graphics operations and has many features which you can utilize to render among the following:

More advanced (detailed) models.
Special effects (such as blur & bloom) implemented through shaders.
Higher-resolution of textures.
etc...

All of these modern effects are possible because the GPU has the ability to be more efficient with the data given to it (for example, it has its own internal memory bank).

What are some other options?
If you are working with a GPU, you need an interface so your program can communicate to it.  OpenGL is a specification that your GPU's chip set must support and it is an interface that you can use.  It is a good choice because it is portable (hence being open and not proprietary).  There are other API's available, such as DirectX, but I will give you some options pertaining to OpenGL since that is what I know best and it's what you have.

Rendering via glDrawPixels.  This is the closest thing to software rendering if you pass a bitmap for each frame.  The difference is that now you are using your GPU to do the rendering instead of your CPU (should be faster nonetheless).  The disadvantage to this method is that you are not allowing the GPU to use any of its special features to make rendering more efficient.
Rendering in immediate mode.  This method involves sending drawing commands to the GPU.  So, instead of drawing your bitmap on the CPU, you let the GPU draw it in its own memory space.  This will allow the GPU to use more of its resources so that the generated image can be made more quickly.  In OpenGL, this requires using glBegin() & glEnd() calls to draw your geometry.  It also means you may use glFlush() or glFinish() to dictate when the drawing commands are executed.
Rendering in retained mode using display lists.  Display lists are basically a list of drawings commands that are grouped together to be executed all at once.  A display list can be executed each frame, or they can be compiled and executed later.  In OpenGL, this involves these calls: glGenLists, glNewList, glEndList, glCallList, and glDeleteLists.
Using glDrawArrays() or glDrawElements.  These two methods are quite similar and allow you to pass arrays of different types of data to the GPU before rendering.  Some types of data could be vertices, indices, textures, colors, normals, among others and even user-defined types, all of which are stored inside buffer objects.  Using these calls allows the GPU to store all of this data in its local memory for fast access, and you can even optimize where the data is stored based on factors such as how often the data is drawn or updated.  The difference between these two calls indicate what data is necessary and how the GPU should use this data for rendering.  This goes pretty in-depth, so I'm leaving it out of this post.  Regardless, here are some useful links:

How to use glDrawArrays().
Vertex Buffer Object Indexing & glDrawElements().
More in depth indexing example.

So, in short, these are the big four rendering methods, listed by increasing complexity as well as increasing performance gain.  There are other, specialized methods of rendering, such as taking advantage of instanced rendering, however this is by no means material for a beginner.

You can use a combination of these rendering methods in order to suit your needs. You must consider the data (models) that must be drawn, and make your decision on which method(s) are most suitable to your application.
If you are trying to learn OpenGL, I'd recommend working in immediate mode to draw simple geometry.  As you progress, you should shift into using glDrawElements() for rendering complex models.

Is a bitmap fast enough for a 3d game?


Booting: Error messages and flashing screen after installing Retropie

Question: My Raspberry Pi 4 has an issue when booting. I installed Retropie (not as dual-boot or boot) on it a few days ago. After i rebooted the issue started appearing. The screen goes from rainbow-phase to OS-choose-phase and then displays a few lines of starting services. Right after that it begins flashing quick images (of Retropie Emulator) and starts loop. I managed to capture a few on video with slow-motion. Long story short: all services start (Gitea, fail2ban, etc.), but the UI doesn't appear.
SSH seems to be broken (config issue).
Any ideas how i can fix this without wiping my whole SD-Card?
Thank you in advance!
Answer: In general, when you do not have access to the Pi, the only solution is take the card out and mount it on another computer. On a Linux system, that is the easiest, and you may consider using a USB-booted Linux box for it (if you're on Windows).
First step after mounting the second partition of the SD card is to examine the logs. Normally, there should be error or warning messages in there. You should be able to see what the config issue for sshd actually is.
If you found the error, then you should be able to correct it, possibly by editing config files on the SD card. It is, at this stage, not really possible to tell you what is actually wrong.
You might consider just getting sshd up and running and do the rest of the repair via ssh. That could be a better option if the retropi installation did not provide any real clues in the logs.


Adams predictor-corrector method default order

Question: When I select the "Adams" method in NDSolve what is the default order? And how may I change the order?
Comment: Have you seen this: https://reference.wolfram.com/language/tutorial/NDSolvePlugIns.html ?
Answer: The order is variable. Based on What's inside InterpolatingFunction[{{1., 4.}}, <>]?, the following shows the order at each step.  Note that the first few steps are NDSolve getting its bearings before the first Adams steps (order 4).  With InterpolationOrder -> All, the solution is returned with local series for the Adams steps. Their length should be one more than the order of the step, I think.  The documentation says it should be the "same order as the underlying method used."
adamssol = NDSolve[{x''[t] + x[t]^3 == t, x[0] == 1, x'[0] == 0},
   x, {t, 0, 3 π}, Method -> "Adams", InterpolationOrder -> All];
adamsifn = x /. First@adamssol

ListPlot[
 {Transpose@{Flatten@adamsifn["Grid"],
    Map[Length, adamsifn[[4]]] - 1},    (* ifn[[4]] = local series coefficients *)
  Transpose@{Flatten@adamsifn["Grid"],
    Rescale[#, MinMax[#], {0, 12}] &@adamsifn["ValuesOnGrid"]}
  },
 Joined -> {False, True},
 Frame -> True, FrameLabel -> {"t", "order"},
 FrameTicks -> {Automatic, Range@12}, GridLines -> {None, Automatic}
 ]

The order of each step (in blue), with the rescaled solution plotted over it (in gold).

The maximum order may be limited with the submethod option "MaxDifferenceOrder", which must be set to an integer from 1 through 12;
the minimum order cannot be set:
NDSolve[{x''[t] + x[t]^3 == t, x[0] == 1, x'[0] == 0}, x,
 {t, 0, 3 π}, Method -> {"Adams", "MaxDifferenceOrder" -> 6},
 InterpolationOrder -> All]

The order of each step with "MaxDifferenceOrder" -> 6 (in blue), with the rescaled solution plotted over it (in gold).


Installing LAMPP

Question: I want to install the whole package of apache2, MySQL, PHP and phpmyadmin at a time on my ubuntu 14.04. I want to install the package from terminal. How to do it?
Answer: Let me try and give you a good brief run down on how you can do this. Before starting do a system update:
sudo apt update && sudo apt dist-upgrade or
sudo apt-get update && sudo apt-get dist-upgrade
LAMP:

Linux:

installation of Ubuntu

Apache:

from the terminal run sudo apt-get install apache2 or sudo apt install apache2 if you installed Ubuntu 16.04 or higher.
to confirm apache is up and running:

open your browser of choice and go to this address in the address bar: localhost/ and if it's installed you should see the image below

Mysql:

From the terminal run sudo apt-get install mysql-server or sudo apt install mysql-server if you installed Ubuntu 16.04 or higher
Follow the terminal instruction to add a password
Secure the installation by running this after the complete install:

sudo mysql_secure_installation

php:

Install withsudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

libapache2-mod-php allows apache parse php files

Run this sudo systemctl restart apache2 to restart apache so its incorporates php parsing functionality, then check if its running with the next step
sudo systemctl status apache2, you should see the image below if its running

Now php has many more modules that you can install. To see these by running this in the terminal sudo apt-cache search php7 or sudo apt search php7

phpmyadmin:

this can be installed with:
sudo apt install phpmyadmin or sudo apt-get install phpmyadmin. This will install the official package, but if this doesn't work get it from here.
extract and drop it in /var/www/html. Change the folder name to _phpmyadmin__ and access it from the browser like this localhost/phpmyadmin

Now lets test your apache to see its working:

from terminal run: sudo vim /var/www/html/info.php, and put this in that file, or use nano if you prefer!
<?php echo phpinfo(); ?>

Open a browser and put this [localhost/info.php] into your address bar and  should see something like this:

Note: You can tweak your apache, mysql and php to suite your needs. This by no means all there is to setting up LAMP stack on your Ubuntu but its a start.
Source: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
Comment: As in Feb,2020, (Ubuntu 18.04.2 LTS) everything is working fine with a few caveats: In step 3 the installation DOES **NOT** asks for a password, so I recommend to follow these [instructions](https://askubuntu.com/questions/766900/mysql-doesnt-ask-for-root-password-when-installing). And in step 4 the `php-mcrypt` is deprecated and I simply remove it (there are some workarounds, but for now I just bypass it). And finally, if you'd like to use the gui to create files at `var/www/` I recommend [read this](https://askubuntu.com/questions/46331/how-to-avoid-using-sudo-when-working-in-var-www). gl hf
Answer: You can accomplish this by simply typing two commands.

sudo apt-get install lamp-server^
sudo apt-get install phpmyadmin

The first one will install apache, php, and mysql all at once. including all dependencies needed for phpmyadmin, and other web-apps. Then the 2nd will install & integrate phpmyadmin.
You will be prompted by both for setting up mysql credentials & giving such credentials for phpmyadmin.
Comment: Thank you. It is easier. But I installed taskel first. As I didn't get this answer then.

Installing LAMPP


Why Inductive effect operates only through single bonds?

Question: I am not able to find any examples of the inductive effect operating through multiple bonds. Why can't electron displacement take place in multiple bonds?
Comment: it might be beneficial if you could post an example of two systems that you are comparing, or if you are talking about some "process" or context in particular.
Comment: @EricBrown I have just started studying Organic chemistry , I am confused why electron displacement doesn't occur in bonds like C=O .
Comment: @VivekKhandewal The physics of "single bonds" and "double bonds" are the same, and so both would experience an "inductive effect" for whatever that term means. It will take me some time to come up with a comprehensive answer to a very good question.
Comment: http://en.wikipedia.org/wiki/Inductive_effect
Answer: The argument is false.  Inductive effects happen through any covalent bond.
It is true that as far as systems with multiple bonds are concerned, conjugation, hyper conjugation, or resonance effects are often more significant than inductive effects.  These effect may reach a much larger distance and have richer chemistry, and frankly are more interesting. As a result, text books focus mainly on these effects in double bonded systems. Presence of a myriad of strong effects also makes it harder to identify the role of induction in system with multiple bonds.
However, this by no means eliminates the presence of inductive effect and in fact induction often do have significant contribution to reactivity in such systems.
The best example might be fluorobenzene (Ph-F).  Electrophilic substitutions of fluorobenzene is significantly slower than those of benzene, and almost predominantly the para- product is obtained.  This is caused by the induction of F atom.  This can be attributed solely to inductive effects because the conjugation effect of F atom is electron donating and would cause an increase in reactivity instead, and would cause near statistical distribution between para and ortho substitution products(which is the case in chlorobenzene and bromobenzene).
In fact inductive effect also occur through C=O.  You could not find an example only because indicator of electron charge on the oxygen atom of C=O is harder to come by.  The examples do exist.  For example, pKa of cation acid $\textrm{R2C=O-H}^+{\longleftrightarrow}\textrm{R2C=O + H}^+$ is strongly influenced by substitutions on the R groups.
Answer: If I'm not mistaken a good example of the inductive effect through multiple bonds is trifluoro-acetic-acid, or $\ce{F3CCOOH}$. The proton is so electron deficient that it is easily abstracted by anything that can act as a base. The not 'fluorinated' equivalent, acetic acid, is not nearly as strong an acid.
The reason for the difference in acidity, is the difference in electro negativity between hydrogen atoms and fluorine. Due to the very large electro-negativity of fluorine atoms the electrons in the acid protons are 'pulled' towards it, leading to a clear example of the inductive effect over multiple bonds.
A comment on one of the comments below the question: Electron displacement does occur in double bonds. A good example is the carbonyl functional group (C=O) in a molecule. The inductive effect results in a slightly more positive charge on the Carbon atom and slightly higher at the O-atom. This is also due to electro-negativity and results in the reactivity of the C=O functional group.
Hope this helped!
Comment: The example using F3CCOOH is not pertinent, it is not about inductive effect propagation through a double bond. Well it does on the conj base, but then there is not really a double bond.


How to get the slowest exp gain?

Question: This may seem slightly mad, but irrespective, I am trying to find the slowest way to raise a level 1 pokemon through battling (no candies). I believe caterpie and blipbug on route 1 are supposed to give the lowest exp but even after a single battle (during which I switched out) my level 1 got bumped up to level 4. Is there any better way to get less exp at all?
Comment: Would switching in other pokémon be viable? Split the experience between everyone who "participated"?
Comment: Blipbug is the worst experience yielding Pokemon you can find, it shares the "crown" with Sunkern which is not present in SwSh.
Answer: The formula for experience gain in Pokémon Sword and Shield is given on Bulbapedia, here:

Where:

b is the base experience yield of the fainted Pokémon's species

The lowest this can be in Sword and Shield is 36, which Blipbug gives, as you surmise. (Caterpie is higher, at 39).

e is equal to...
1.5 if the winning Pokémon is holding a Lucky Egg
1 otherwise

So make sure you don't have a Lucky Egg.

f is equal to...
4915/4096 (~1.2) if the Pokémon has 220 or higher friendship
1 otherwise

So make sure your friendship is below 220.

L is the level of the fainted/caught Pokémon

So you want the enemy level to be as low as possible. The Blipbugs hidden in the grass on Route 1 range from level 2 to level 5; so only fight the level 2 ones.

Lp is the level of the victorious Pokémon

So, the higher the level of your Pokémon, the less experience it will get. This doesn't affect you, as you are only looking at a level 1 Pokémon, but to minimise experience gain you'd be using a level 99 (once you're at level 100, it won't make a difference, of course).

p is equal to...
1 if you don't have the Exp. Charm
1.5 if you do

So make sure you don't have the Exp Charm. There's no way to turn it off once you get it, so make sure you don't visit the Master Dojo in the Isle of Armour dlc.

s is equal to...
1 if your Pokémon participated in the battle
2 otherwise

So make sure you don't send out the Pokémon you're training at all; keep it in your party but don't use it to battle.

t is equal to...
1 if the winning Pokémon's current owner is its Original Trainer
1.5 if the Pokémon is an outsider Pokémon (i.e. its current owner is not its Original Trainer)
1.7 if the Pokémon is an outsider Pokémon and has a different language of origin (in Generation V+, this is instead approximated very closely as 6963/4096)

So make sure you are the Original Trainer of the Pokémon.

v is equal to...
4915/4096 (~1.2) if the winning Pokémon is at or past the level where it would be able to evolve, but it has not
1 otherwise

Shouldn't affect you with a level 1 Pokémon.

The result is subject to standard rounding after each multiplier, rounding down at 0.5, unless specified otherwise. However, the calculations for the base EXP (minus the scaling factor, in the scaled formula) are rounded down (integer divisions).

Based on that, the least experience you can gain at level 1, by defeating a level 2 Blipbug without participating in the battle, is:
<code>(((36*2)/5)*(1/2)*(((2*2+10)/(2+1+10))^2.5)+1)*1*1*1*1*1 =

14.4 * 0.5 * (14/13)^2.5 =
</code>
(I think it rounds at each stage, though maybe I'm wrong; you might need to test this in game...)
<code>14 * 0.5 * (14/13)^2.5 =

7 * (14/13)^2.5 =
</code>
8 experience gained.
Now, the levels you gain will depend on your experience group. The Pokémon that need most experience to grow from level 1 to level 2 are in the Erratic group, requiring 15 experience. So two Blipbugs will be enough for a level up. In fact, anything in the Erratic, Medium-Slow or Slow groups will need two Blipbugs, and anything in the Fast, Medium-Fast or Fluctuating group will level up after just one Blipbug.

How to get the slowest exp gain?


nix attribute not found setting up Dapp repo

Question: I modified slightly  cabal.project of the  plutus-apps to serve as base for my own application repo. It includes another repo of my own that is also a sligh modification of the plutus repo. If my own git repo that substitutes plutus is xxxx. Now this error happens when executing nix-shell

nix-shell
error: attribute 'xxxx' missing....

I suppose that this attribute should be added somewhere in flakes or some other nix configuration but I had no clue.  Looking for information I figured out and I added it to flake.nix. Since my repo is a modification of Plutus, I put it instead of the plutus repo
<code>plutus-core = {
  url = "github:agocorona/plutus"; #"github:input-output-hk/plutus"
  flake = false;
};
</code>
But the error is the same.
Answer: I Finally got the solution here: https://github.com/input-output-hk/haskell.nix/issues/1427


How could SSL certificate affect the symmetric key length?

Question: This article in GoDaddy support knowledge base says

All of our SSL certificates support high-grade 256-bit encryption

How would they not support it?
The SSL certificate contains keys for asymmetric encryption and is there to

prove that the server is exactly what it claims and
allow the server and the client choose the same symmetric encryption key which is then used for the rest of the connection

It looks like nothing prevents the client and the server from negotiating some MagicAES with 10240-bit key (or 90th level DES with 4096-bit key) and use it for the life of the connection.
How would the SSL certificate internals limit the symmetric key length?
Answer: It is, to put it bluntly, a steaming pile of bullshit.
The SSL certificate has no bearing on which SSL or TLS cipher suites are negotiated. The two parts of the protocol are separate.


Where does the rate equation come from? (r = k [A]^x [B]^y)

Question: Equations are great, but they're much better when you can understand them. I don't quite get why this works. Could someone explain it to me?r = k [A]^x [B]^y
Comment: Is [this answer](http://chemistry.stackexchange.com/questions/9242/what-are-some-good-examples-of-rate-equations-for-a-math-class/9244#9244) helpful?
Answer: A to the power of x or B to the power of y are telling you how the concentration of that reactant will affect the rate of reaction. For example, if you find that doubling the concentration of reactant A quadrupled the reaction rate than A could be raised to the power of 2. If doubling the concentration of B doubled the rate of reaction than you could raise B to the power of 1. K is the Arrhenius equation and its value is taking into account the frequency that the particles are colliding, the amount that are colliding with the right orientation and the energy required for the reaction to take place. K = Ae^(-Ea/RT) where A is the product of the frequency of the colliding particles and the amount that have the correct orientation. e is 2.718281828 and is raised to the power of negative the activation energy divided by RT where R is the ideal gas constant with a value of 8.314 and T is the temperature. You could use algebra to solve for A if you have the other values.
Comment: Agreed. Rate constants are found experimentally, and only indirectly reflect the mechanisms occurring at the molecular level. In fact: many reaction mechanisms are much more complex than you might imagine!


Convert 360 degree images into mesh

Question: I created several microstructures and took electron microscope pictures at a 45 degree tilt at all 360 degrees around the structure. I want to convert these images into a single 3d model of the structure but both ReMake and VisualFSM can't seem to do it (I think the contrast is too low). Is there a way to manually (or automatically) create a 3d model from these pictures??
Comment: Not a very simple task, it can be done with Agisoft, but he model may be incomplete in the bottom part because of the angle of the microscope.
Comment: You can process all the images to increase the contrast.  There's many tools for that.  But there's not really a texture to fix on... Also perhaps: I'm guessing the Field Of View is very small, and may be having a hard time fixing virtual camera positions (because they are very far away relatively) and reconstructing.  but may be wrong.  How accurate does it need to be?  So you have 360 images rotated precisely?  Depending how the images are, (perhaps put them in a google drive/dropbox?) I may be able to advise further.  There may be a better forum to ask too.  Cool problem.
Comment: I've got an image of every degree up to 211 degrees and after that I made an image every 2 degrees (because of time constrains) until I returned to the original orientation. I could make higher resolution pictures (that would show quite a bit of texture) but that would probably cost me several hours of work (these pictures cost me 3 hours already). I would like the top part to be as accurate as possible and I don't really care that much about the bottom part.
Comment: I am now running a trial version of agisoft to see if it works. it needs an hour to calculate everthing so I am going to let it run
Comment: I tried Agisoft and it was able to create a mesh but it placed all the views in a 30 degree perspective so it didn't look like anything
Answer: Sometimes Blender is not the tool. As stated in the comments there are external tools dedicated to processing the described (detailed) input into the desired output. When these tools produce a file format that Blender can read, that's how you get the data into Blender.
This is not an endorsement of 3rd party software
Software like Agisoft Photoscan offers a python interface to let you sidestep the ui for automation purposes - but it's out of the realm of Blender support to discuss that unless there is a concrete question about interactivity between the two programs or APIs.

Convert 360 degree images into mesh


Download failed. There are no HTTP transports available which can complete the requested request

Question: When I try to install theme on wamp server it shows a line as below
Download failed. There are no HTTP transports available which can complete the requested request.
How to fix it?
Comment: This question seems to be off-topic. Please see http://stackoverflow.com/help/on-topic
Answer: I think you probably need to activate the php_curl extension to solve this issue.
Do this to activate the php_curl extension :-
Left click wampmanager ( thats the W icon in the system tray )
wampmanager -> PHP -> PHP Extensions

If the php_curl extension is not ticked then click it and it will activate the extension and restart Apache for you.
It may also be necessary to activate php_openssl in the same way, depending on the theme's requirements.
Comment: What I did is to enable `allow url include` to fix the issue.
Comment: Thanks. this pretty much fixed the issue :)
Comment: If this still doesn't fix your problem, also uncomment the open ssl extension:

extension=php_openssl.dll
Answer: Make sure that:

allow_url_fopen = On
Under your PHP Extensions allow php_curl

Restart your Server.
WordPress will try to use several transports to make the request. First it will try curl, then streams, then fsock.
If your server is set up with curl and your version of curl supports SSL (required for using the API), then it will use that.
Next it will try to use streams (fopen). If fopen is set up and working on your server, it is set to applow opening from a URL (allow_url_fopen), and openssl is set up and functional, then it will send the request with streams.
Lastly, if your server has fsockopen set up and usable, and openssl is also set up and functional, then it will use fsockopen to make the request.
If none of those work, then it will be unable to send any. This is all built into the WordPress HTTP API.
If your server can't make the requests, it will be unable to make many other requests as well.
You need to get your host to set up a transport method that WordPress can use.
Comment: Enable php_curl is exactly how I fixed it on Uniform Server WAMP stack.
Answer: Sometimes if you face similar kind of error after trying to update any plugin or wordpress itself from localhost using your Xampp, then don't worry. You could avoid this error and update it from your localhost enabling PHP curl extension.
To enable it:
1. Open your "php.ini" file.
2. Find the line which says ";extension=php_curl.dll".
3. Now simply remove "; or semi-colon" from the line.
4. That's it. Restart your Xampp and now it should work updating without error.
Comment: This is brilliant, it fixes the issue. Thank you!
Answer: You probably need to activate the php_curl extension to solve this issue as well
as uncommented the extension=php_openssl.dll in php.ini file.
Do this to uncomment the following extension:-
wampicon -> php -> php.ini
then search the following extension in php.ini file.
Hope this will help you to resolve your issues.
Answer: Setting both of these extensions in the php.ini file worked for me:
C:\wamp\bin\php\php5.3.13
C:\wamp\bin\apache\apache2.2.22\bin

extension=php_openssl.dll
extension=php_curl.dll

Answer: You will need to enable php_curl.dll from your php.ini file, this should correct the error. Just remove the ; on the line stated to correct the error.
Hope this help.
Cheers!


Find My Mac - WPS and Proxies

Question: Is it possible to trick the Wi-Fi Positioning Service using proxies? My Mac got stolen a couple of days ago in Rome Italy and located in Algerie today.
Answer: Find my Mac checks all available WiFis in the local area and compares them to a huge database, but also with a proxy, vpn or similar, the mac still gets the signals of the local wifi and not of the final access point, so no, you probably can't trick this service by that way.
I'm very sorry for you.

Find My Mac - WPS and Proxies


Convert a text file from ansi to UTF-8 in windows batch scripting

Question: We have a text file which is in default ANSI format and that needs to be converted into UTF-8 format. Is there any way we can use the general windows DOS commands to convert the file? We can use the PowerShell but only this command line has to be run from a different batch process.
Answer: The PowerShell syntax is rather straightforward. This command opens a file in the default encoding and saves it as UTF-8 with BOM:
Get-Content <SrcFile.txt> -Encoding Oem | Out-File <DestFile.txt> -Encoding utf8

The Encoding parameter accepts the following: Ascii, BigEndianUnicode, BigEndianUTF32, Byte, Default, Oem, String, Unicode, Unknown, UTF32, UTF7, UTF8
Answer: Get-Content might be not optimal as it handles the input file line by line (at least, by default, if you don't use the Raw switch as described later), and may cause changing the line ending (for example, if you move text files between Unix and Windows systems). I had serious problems in a script just because that, and it took about an hour to find the exact reason. See more about that in this post. Due to this behavior, Get-Content is not the best choice as well, if performance matters.
Instead of this, you can use PowerShell in combination of the .NET classes (as long you have a version of the .NET Framework installed on your system):
$sr = New-Object System.IO.StreamReader($infile)
$sw = New-Object System.IO.StreamWriter($outfile, $false, [System.Text.Encoding]::Default)

$sw.Write($sr.ReadToEnd())

$sw.Close()
$sr.Close()
$sw.Dispose()
$sr.Dispose()

Or even more simply, use the Raw switch as described here to avoid that overhead and read the text in a single block:
Get-Content $inFile -Raw

Comment: You've initialized your StreamsReader and StreamWriter with wrong encoding.


Why can't I refresh any of my sandboxes

Question: I am unable to refresh any of my sandboxes
We have 20 remaining Developer sandboxes
We have used 5 Developer, 1 Partial and 1 FullCopy.
Answer: It was because we recently had removed our license for the FullCopy sandbox... meaning:
Even though the FullCopy was locked we were still using 1 Full Copy more than were were provisioned.
And hence Salesforce prevents refresh on all sandboxes until we are within sandbox limits.
Solution:
I deleted the FullCopy and the refresh buttons returned.
NB: if you delete it, it is gone gone.
It was not related to the "Manage Sandbox" permission I already had that set as system admin.
Comment: *if you delete it, it is gone gone.* Well, sort of. The deletion is queued for a few days before the hard delete. It can be restored by way if a support ticket if you make a mistake. Not that I'd recommend depending on this, but salesforce.com does try to prevent oppsies from being too obnoxious.
Comment: Good to know, thank you !
Comment: Late last night (tired) I went off looking for sandbox permissions. I already had "Manage Sandboxes" of course. woke up in the morning and had the ahha moment :)

Why can't I refresh any of my sandboxes


How often would a full moon appear from a non-rotating earth?

Question: If the earth did not rotate but still orbited the sun, how often you would get to see a full moon?
Comment: @Twelvfth The phase of the moon does not depend on the earth's shadow. Lunar eclipses are the only times when the earth's shadow impacts the phase of the moon. The rest of the time it depends on whether you're seeing the bright half or the dark half of the moon. I suggest looking up how moon phases work.
Comment: Once a (Lunar) month.
Comment: @sphennings. To our mutual disappointment, it does not.
Comment: @Alexander. But if the phase of the moon is consequence of earth's shadow on the moon and the earth isn't rotating then doesn't that mean it's possible for an earthling-on-the-surface to never witness a full moon? Therefore, the answer is not as simple as you suggest, i.e., once a lunar month.
Answer: It depends on what you mean by non-rotating.
There are two ways your planet could be non-rotating. Either a certain point on the planet is always facing the same direction relative to the sun, or the planet goes through one day/night cycle per year. The first option is known as tidal locking, and the second is known as not rotating in the sidereal frame.
Tidal Locking
How often you see a full moon will depend on where on the planet you are. Full moons happen when the moon is on the opposite side of the planet from the sun. This will happen once per orbit of the moon (lunar month), and how the planet is rotating does not impact this. What will change is how often you get to see the full moon.
If you're on the "day" side of the planet, you will never see the full moon. When it happens, the moon will be on the wrong side of the planet for you to see it. If you're on the "night" side of the planet, you will always see the full moon, so you'll get one full moon per lunar month.
Not Rotating in the Sidereal Frame
Again, whether you get a full moon will depend on where on the planet you are during the full moon. However, unlike with tidal locking, this location will be different each time a full moon happens. As a rough estimate, you will see the full moon when it's night, and you won't when it's day. This means half the year you will see the full moon once per lunar month, and the other half you will never see the full moon. Of course only a few of those full moons will have it in the middle of the sky. For the rest the full moon will be closer to the horizon.


iTunes Wi-Fi Sync stopped working with iOS 11.2

Question: Syncing from the iPhone using Settings > General > iTunes Wi-Fi Sync doesn't work (just get "searching for computer" which goes away after about 1 minute) and the device never shows up in iTunes.
Answer: I was able to get it to work by syncing once over USB. iTunes put up a "Trust this computer?" dialog as if I hadn't ever synced before. After that everything worked as before.


How do people go about looking for asymptotic safety in quantum gravity?

Question: Do we have (proposed?) methods to look for fixed points in the renormalization group flow of the Einstein-Hilbert action? My understanding of the RG is still somewhat sketchy at this point and I am having trouble understanding how one would go about searching for a fixed point in a theory that's non-renormalizable.
Comment: I don't have good understanding of this yet but I think when people talk about RG flow in a gravity context, they mean holographic RG flow, which uses AdS/CFT duality to relate the classical solutions in AdS to RG flow of the boundary field theory. Thus fixed points should be understood in this context, instead of fixed points for a non-renormalizable theory.
Answer: Here are two papers on the subject:
https://arxiv.org/abs/0805.2909
Investigating the Ultraviolet Properties of Gravity with a Wilsonian Renormalization Group Equation
From the abstract:
We review and extend in several directions recent results on the asymptotic safety approach to quantum gravity. The central issue in this approach is the search of a Fixed Point having suitable properties, and the tool that is used is a type of Wilsonian renormalization group equation. We begin by discussing various cutoff schemes, i.e. ways of implementing the Wilsonian cutoff procedure. We compare the beta functions of the gravitational couplings obtained with different schemes, studying first the contribution of matter fields and then the so-called Einstein-Hilbert truncation, where only the cosmological constant and Newton's constant are retained. In this context we make connection with old results, in particular we reproduce the results of the epsilon expansion and the perturbative one loop divergences.
https://arxiv.org/abs/1601.01800
The Gravitational Two-Loop Counterterm is Asymptotically Safe
Abstract: Weinberg's asymptotic safety scenario provides an elegant mechanism to construct a quantum theory of gravity within the framework of quantum field theory based on a non-Gau{\ss}ian fixed point of the renormalization group flow. In this work we report novel evidence for the validity of this scenario, using functional renormalization group techniques to determine the renormalization group flow of the Einstein-Hilbert action supplemented by the two-loop counterterm found by Goroff and Sagnotti. The resulting system of beta functions comprises three scale-dependent coupling constants and exhibits a non-Gau{\ss}ian fixed point which constitutes the natural extension of the one found at the level of the Einstein-Hilbert action. The fixed point exhibits two ultraviolet attractive and one repulsive direction supporting a low-dimensional UV-critical hypersurface. Our result vanquishes the longstanding criticism that asymptotic safety will not survive once a "proper perturbative counterterm" is included in the projection space.
Answer: You can use functional renormalization group method to renormalize Quantum Einstein Gravity.You can see how to renormalize it in arXiv:hep-th/9605030.
If you have problems with understanding this paper, see the paragraph 'Exact renormalization groups' in article Renormalization group in Wikipedia.
I wanted to post more links but I don't have enough reputation to post multiple links. Please excuse me.


What do you call a summer camp?

Question: I'm translating a flyer for a summer camp business into Spanish. I'm not a native speaker but I've been studying long enough to suspect that I should not translate "summer camp" as "campamento de verano."
Comment: In Spain "campamento de verano" is a quite common expression, although it usually refers to the summer camps destined to kids. If you are in another country or you refer to a summer camp destined to adults you should use another expression. As a suggestion I'd recommend to add in your question details about the purpose of the summer camp and the country where the flyer is going to be published, as the answers may vary depending on that.
Comment: Quite probably it depends on the country. In Argentina/Uruguay/Chile it's "colonia de verano" or "colonia de vacaciones", but I'm sure in other places that sounds strange.  Where would this be?
Comment: @Gaviota this would be in Los Angeles County, southern California in the United States.
Comment: @Charlie L.A., baby
Answer: In Spain, we do say campamento de verano for summer camps.
Answer: Campamento de verano suena bien. En Argentina lo llamábamos colonia de vacaciones.
Comment: This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - [From Review](/review/low-quality-posts/21712)
Comment: How is it that this doesn't provide an answer?
Comment: That is the automated message which the Low Quality Posts queue inserts. It would be better with references although to be fair the existing answer similarly lacks justifications for its choice. The OP did ask specifically for usage in the southern US.
Comment: I see. Thank you very much.
Comment: Es un poco contraintuitivo para un usuario con poca experiencia que le digamos que su respuesta no vale cuando hay una muy parecida que ya tiene un par de votos. Cierto que la respuesta preexistente es anterior a los comentarios de clarificación del OP, pero no debemos que los usuarios con poca experiencia no saben lo que no saben.
Answer: normally "summer camp" would translate to "campamento de verano"
I think it is the best option for native speakers to understand correctly what the brochure says.

What do you call a summer camp?