How do I wrap my vertices to the mesh?

Question:  I want to shrink these floating vertices to my mesh for superior editing accuracy but I can't figure out how. Any help would be appreciated.
Comment: Have you tried the Shrinkwrap modifier and did it work well? It often needs some vertice adjustements
Comment: I already have it applied in the picture and all it did was push down my jumpsuit mesh over the character I modeled but the other vertices stayed floating over it. Do I need to add a vertice group?
Comment: do you mean the shoulder vertices don't wrap well? perhaps share your file, it will be easier to understand what you want...
Answer: I found what I was looking for. The button I needed was "adjust edit cage." It bought down my "edit cage (which I couldn't figure the name of, making this question more confusing)" down to the jumpsuit mesh. See pic below for the button I used.
Comment: oh ok, The Adjust Edit Cage is just a Display option, but if that's what you wanted, great!   ;)
Answer: You have to uncheck the Invert Vertex Group Influence button so that the modifier can interact with the vertices. You must have enabled it by mistake. It allows to inverse the influence of the modifier when you choose a vertex group, and as you didn't choose any vertex group it considered the whole mesh as non active.
Comment: But that basically undoes the shrinkwrap and brings the mesh out to my vertices. I don't want to bring my mesh UP to my vertices I want my vertices to go DOWN to the mesh. https://drive.google.com/file/d/1RmVJh-EK4CIh6M4OWF4h9mLDkMtDGy9n/view?usp=sharing
Comment: To elaborate here is an image.  https://postimg.cc/image/p97vl2xyj/ I want to retain the shrinkwrap without vertice group selected on the left but I want to flatten my vertices on the mesh like the right but without raising up my mesh. I hope that makes sense.
Comment: I don't understand what you want, shrinkwrap is made to bring your cloth mesh down to your character mesh, this is what happens with the basic settings of the modifier, sometimes you must make some adjustments or play with the Offset. If you click on  Invert Vertex Group Influence, while you haven't chosen any vertex group, nothing will happen.
Comment: I still don't understand, if you want a part of your cloth not to stick to the character, select this part, assign it a vertex group name in the Vertex Group menu, then go back to your modifier, select this group and click the Invert button: now all the mesh of your cloth will wrap around the body except this group. You can change its weight in Weight Paint mode or with the Weight factor under the Vertex Group menu

How do I wrap my vertices to the mesh?


What is Penny's full name before marriage?

Question: In the Big Bang Theory, one of the main characters is "Penny". In the 12 seasons, does it get mentioned what's Penny's full name before she married to Leonard Hofstadter?
Answer: She didn't have one.
It is never mentioned before she became Hofstadter.
From Wikipedia…

Penny is the only main character of the program whose last name was not revealed, although she has been occasionally referred to or addressed with the last name Hofstadter since her wedding.
Comment: She obviously **had** one, only we didn't know it.. Could be Wyatt though..
Comment: @Vishwa Wasn't Wyatt Penny's father's first name?
Comment: @Sandun Wyatt is used in as both First name and Family name. The reason I mentioned **Could be**..
Comment: Wyatt is definitely his first name. The surname is Teller. I have [added my answer to the original question](https://movies.stackexchange.com/a/115694/65183).


Can you prove that if a function's derivative is positive for all points where the function is differentiable then it is increasing?

Question: I'm familiar with the proof that if the first derivative is always positive then the function is increasing which uses the Mean Value Theorem. How can it be shown that the function not being differentiable at some point does not affect this property? For example a function may have a jump discontinuity with the derivative not being defined at a point but still be increasing.
Comment: I'm not sure I completely understand. If $x$ is a point in the domain of a function $f$ such that $f'(x)$ is not defined, the increasing property may certainly be affected! If the function jumps down at $x$, then $f$ certainly won't be increasing.
Comment: Of course not. According to Wikipedia, increasing means monotonically increasing, which is definitely false if the function jumps **down.**
Comment: The result is true if $f$ absolutely continuous (hence differentiable ae) and $f'\ge 0$ where it exists, but the proof is fairly involved as it boils down to proving that the fundamental theorem of calculus holds with the integral of $f'$ being the Lebesgue one and then it's obvious; the counterexamples below are discontinuous
Comment: Actually even for $f$ continuous bounded variation the result holds since then $f'$ exists ae but $f(b)-f(a) \ge \int_a^b f'(x)dx$ so we do not necessarily have equality like in the absolutely continuous case but $f'\ge 0$ still implies $f(b)\ge f(a)$ when $b \ge a$
Comment: The Weierstrass nowhere differentiable function $W(x)$ is a **continuous** function such that at each point where $W'(x)$ exists we have $W'(x) > 0$ (since there are no such points, this is [vacuously true](https://en.wikipedia.org/wiki/Vacuous_truth)), but [$W(x)$ is not increasing (or even nondecreasing) at any point](https://math.stackexchange.com/a/634387/13130) (increasing at some point is a much weaker property than increasing in some interval). Of course, more interesting is to consider these properties when the set of points of differentiability is large in various ways.
Answer: It may not always be the case. Consider the "fractional part" function:
$$f(x) := \{x\} := x - \lfloor x \rfloor$$
This function, in some sense, returns the "decimal part" of $x$. Hence

$f(1.5) = 0.5$
$f(\pi) = 0.14159...$

...though, for negative numbers, it returns the decimal part in the "other direction":

$f(-1.3) = 0.7$
$f(-2.1) = 0.9$

...and so on.
The graph itself looks like $y=x$ for $0 \le x < 1$, repeated over and over again:

Where it is differentiable, $f'$ is always positive, but clearly it is not always increasing (because of the times it jumps down).
Answer: Define the function $f$ as $f(x) = x$, if $x<0$ and $f(x)=x-2$ otherwise.
Wherever $f$ is differentiable we have $f'(x) = 1 > 0$, but $f$ is not differentiable at $x=0$ (the 'jump discontinuity' you talked about). We have that $f(-1)=-1$ and $f(0)=-2$, so $f(0)<f(-1)$, even though $-1<0$. So this is not true that the function is increasing ---- I suggest you to draw the graph.


Determine the frame of modal view controller or content within it relative to the base window?

Question: I have a modal VC that I'm displaying on screen (on iPad) -- using UIModalPresentationFormSheet presentation style. I'd like to resize some content in the VC when the keyboard appears and obscures some elements within the VC.
Determining the size of the keyboard is trivial, but determining the exact coordinates of the modal VC or content within it wrt to the base window is proving challenging. I would expect that:
CGRect textViewFrame    = textView.frame;
CGRect frameWRTWindow   = [self.view convertRect:textViewFrame toView:nil]

would give me the size of the my textView relative to the base window. But the value of frameWRTWindow varies -- sometimes giving me the correct value, sometimes not.
I'd hate to have to hard-code values, but that's where I'm at now.
Answer: Did you try this:
CGRect frameWRTWindow = self.superview.frame;

?


BB and Crank compatibility with Pressfit 86.5

Question: The bike frame I'm buying says that It is Pressfit BB86.5 (road), What are my options in terms of bottom brackets and cranks? I would like to get a BB30 Sram Force crank is this possible?
Answer: Pressfit 86.5 is really PF86.
As outlined in this BikeRadar guide (or this from Problem Solvers), your crank options are: "Standard 24mm external-type (Shimano Hollowtech II, SRAM/Truvativ GXP, Campagnolo Ultra-Torque, FSA MegaExo, Race Face X-Type, etc), BB386 EVO".
The bottom bracket options are corresponding BB86 sized options.
You can't use a BB30 crankset/BB.
Answer: As Batman has said already and linked to the guide the pf86 is a 24mm axle standard.
You can buy flanged bearings that allow you to run some 30mm cranks with a spindle length longer than 104mm (I don't know if this means you could run your SRAM crank with a 104mm spindle!). Wheels Mfgmake them.

I guess it's about whether you want to run a non-standard system. I've always believed (with no evidence to back this up at all) that you lose reliability and longevity once off the standard.
Comment: Rotor's PF4130 is a similar part, but the spindle length is the key part which most BB30 cranksets won't have.


Drilling into a outside house wall

Question: I want to drill into a outside house wall to mount one end of a pull-up bar. The other end will be drilled and mounted into a cinder block wall. For the outside house wall, I've thought about drilling at the corner, cause I think that is where the most support will be. Is there any reason I shouldn't do this? Anything I need to consider?
Comment: What is the exterior of the house at the point where you want to mount this? Brick? Cinder blocks? Vinyl siding? Something else?
Comment: Horizontally from the house to the wall should work, you need to make sure and mount your flange or plate on a stud. Use caution on the block wall if it is backfilled you should have no problems anchoring to the wall but if the wall is not backfilled the block may not hold up.
Comment: I think it's a pebble dash. Some type of dash.
Answer: Your primary concern will be that you're putting a hole into the outside of your house that will let water (and bugs and, possibly other things) into your house. Therefore, it is critical that you ensure that when you're done, the hole is water tight. Water leaking into the wall, especially if it's a wood-framed house will lead to rotting out the sill and studs, and the cost to repair that in a few years will be much greater than that of going to the gym to do your pull-ups.
The second concern is to ensure that the bar can support significantly more than your weight. Any jerkiness in your pull ups (on the way up or down) will exert more force than just your weight. To this end, you need to ensure that you're attaching to a stud (if a framed house), or that you're attaching into something solid (if a brick or block) house. If you've got poured concrete walls, your only concern (once you have a hole drilled) is ensuring that you've got a solid connection (use proper concrete toggles). Also, consider that once you've got this handy bar right next to the house, that you (or someone else) may use it for hanging other things of considerably greater than human weight on.
An additional concern is that at some point you may want to leave the house. This would mean selling (I presume you're not renting or you'd be asking the landlord about this). Is the next person going to want a pull-up bar attached to the outside of his house? Sure, it could be removed, but then you've got the stub where it was cut off, or holes where screws/bolts were removed. Might not look all that pretty when you (or they) are done, and make it more difficult to sell.
You may consider mounting it to the cinder block wall like a towel bar instead of crossing the span between the house and wall.
Oh, yeah, one more thing... Is that cinder block wall yours to be drilling into? (Just checking...)

Drilling into a outside house wall


Word for a "urban parasite"

Question: can you please define a word for a someone who comes from the small city to the big one just to make own life better? This person must be local citizen, but it keeps rude thinking, does not want to get a normal job and looking for an alternate ways to move on, like a marriage or little criminal actions, but with no violence.
Russians call it "Limiter". How Americans do? Can't find out that.
Comment: @StuartF My reading of the question it that the "Limiter" in Russian is not a genuine internal economic migrant but someone who sees the big city as a better place to get by without working or contributing to the life or economy of the city. I think "Freeloader" would be the nearest equivalent although a freeloader does not have to have moved from one environment to another, they can be a freeloader in their home town if people will let them.
Comment: Hi Solan, can you include a sample sentence with a fill-in-the-blank to show how this will be used?
Comment: Hi! Yes, sure. I'm trying to translate a novel so I'm stuck with this word.

"You arrived to Moscow to explore the city of opportunities? You do not want to work legally, run an open business, and you avoid the police for no reason? Then be the Limiter!"

"You cannot be, say, a civil aviation pilot."
"Why? Even if I got skills?"
"You're the dirty Limiter, sorry."
"So what can I do?"
"Nobody knows. Look for the streets gangs I guess. Or better keep youself close to us until we hire you."
"Hire on what?"
"Hire on anything. Do you need the job man? Well don't ask."
Comment: Limiter is, for example, someone who goes to Monaco to marry a montegasque and have its house and all the local rights.
Comment: Oh, lowlife(r) looks fit, thank you!
Comment: Moving to the city to make a better life is normal and praiseworthy in the US. Internal migrant would be a factual term.
Comment: It is hard to take questions seriously that are so poorly written.
Comment: A member of the lumpenproletariat. [Funny but right, haha]
Answer: Given that the question has been open for a while and that no answer to it has been posted so far, it is probably safe to conclude that there is no word in English what has precisely that meaning. If having a single word with precisely that meaning is essential to what one is trying to communicate, one will have to introduce it and explicitly define it. The word could be a literal translation of the term used in the society in question (which the OP tells us is limiter), or even just a transliteration.
On the other hand, having a term with precisely that meaning may not be essential to the overall point of the communication, and one may not want to interrupt the continuity of the text by explicitly defining a new term. If one just needs to refer to a person described by the OP, in a way that conveys a rough approximation of the idea outlined in the question, one would have to use some broader or overlapping term that applies to the person, such as drifter, petty criminal, sponger, demi-monde, or (if he is successful in gaining access to the right circles) lounge lizard.
Answer: Many Americans are not familiar with the term, but I'm pretty sure the OP is:
a member of the lumpenproletariat;
lumpen: one who lives from any odd jobs or petty criminality they can find in times of a crisis of capitalism.
Here is a bit from the paper linked below on this idea:

Marx's famous portrait of the lumpenproletariat is one of the most
celebrated set-pieces in a work (The Eighteenth Brumaire) and an
oeuvre that at times approaches contemporaries like Dickens, Balzac,
or Hugo in its social-literary verve:
Alongside ruined roués with questionable means of support and of
dubious origin, degenerate and adventurous scions of the bourgeoisie,
there were vagabonds, discharged soldiers, discharged convicts,
runaway galley slaves, swindlers, charlatans, lazzaroni, pickpockets,
tricksters, gamblers, procurers, brothel keepers, porters, literati,
organ grinders, rag-pickers, knife-grinders, tinkers, beggars; in
short, the entirely undefined, disintegrating mass, thrown hither and
yon, which the French call la bohème. (Marx 1990, 75) [so funny, really]

AND

Marx coined the word lumpenproletariat in response to Max Stirner's
characterization of the lower social orders as "Lumpe," a term that
was at once social (from "rags" or "ragged" – whence picturesque
contemporaneous renderings of lumpenproletarian as "ragamuffin") and
moral (Lump meant "knave") (Draper 1978, chapter 15). Stirner's
dismissive characterization of the masses stood in a long tradition,
from the Roman proletarius to Burke's "mob" and Hegel's "rabble"
(Pöbel). Marx of course sought to redeem the masses, but he did so by
hiving off the potentially heroic proletariat from the dregs below. In
so doing, he gave Lumpen a third meaning beyond Stirner's descriptive
and moral senses: it came to designate a remainder, the residuum of
the lower classes once the cream of the proletariat had been skimmed
off. Shorn of this political-historical core, the detritus emerges as
even less redeemable and more dangerous than it had appeared in its
original theorization. Thus, even if Marx introduced an important
innovation by extending the lumpen to the highest reaches of society –
in The Class Struggles in France he refers to the corrupt finance
aristocracy as "the lumpenproletariat reborn at the very pinnacle of
bourgeois society" (Marx 1978, 39) – it is hard not to agree with
those who detect in his animus against the lumpenproletariat echoes of
the fear and disdain the propertied had always directed toward their
inferiors (Bussard 1987).

AND

The 'lumpen' can thus serve to designate not only, as in Marx's
original theorization, a remainder the proletariat and its agents will
shed on their way to revolution, but also a double that will continue
to haunt them so long as the revolution remains unachieved. This
situation, where the boundary between the revolutionary classes and
their unsettling shadow is at the margin undecidable, can be expected
to persist as long as capitalism continues to give birth to new forms
of wealth and squalor, organization and chaos. For the time being,
then, there is no reason to imagine that the progressive classes will
cease merging with, and emerging from, their miserable, dangerous,
lumpen Other – or that revolutionaries and intellectuals will
transcend their 'bohemian' existence on the fringes of the capitalist
order, however comfortably 'bourgeois' it may at times be.

The article by James D. Ingram is here: Lumpenproletariat
[I know you will shoot the messenger on this. So it goes]
Comment: Persiguida, Conrado.
Comment: "I know you'll shoot the messenger" That's just bein' _perseguido_ :)
Comment: *Lumpenproletariat* is a term that is too deeply embedded in Marxist theory to be readily usable outside its framework. Also, it does not imply moving 'from the small city to the big one just to make own life better'.
Comment: @jsw29 Just because a word is associated with something does  not reduce the validity of using it.

Word for a "urban parasite"


Why is a comma required before "though" at the end of a sentence?

Question: Why is it that when we use "though" at the end of a sentence, a comma is needed? For example, take the sentence "Good punctuation helps, though." Why is it incorrect to say "Good punctuation helps though"? I've been told the former is correct and, intuitively, it feels correct, but can anyone elaborate on the reasoning behind this?
Comment: _Though_ is a 'comment' and not the thing being helped!
Comment: I'm not sure it is _incorrect_ to say "Good punctuation helps though."
Comment: When 'though' is used as an adverb, you need a comma before it. But when it's used as a conjunction (subordinating), you don't need a comma before it.
Comment: This type of construction, I think, has the background in the preceding sentence/clause.  That way, it functions like....."...though good functions help..." E.g. Some people still write with pen; They don't expect others to do it, though.'
Comment: 'Though' is a pragmatic marker here (the speaker indicating that they are furnishing a concessive or contrastive). Such markers are outside the matrix sentence and are conventionally offset when tacked on in terminal position (and sometimes when in initial position). Compare the use of the modal (emphasis of truthfulness & importance) marker _frankly_: 'Frankly, I'd stop seeing him' / 'I'd stop seeing him, frankly.' Note the difference the comma may make: 'I'd talk to him frankly' / 'I'd talk to him, frankly.'
Answer: It's when though starts a new clause, which could be written as a separate sentence.

Example:
  I went to the shops with sue. I didn't really want to.

It could be written as:

I went to the shops with sue, though I didn't really want to.

As the writer says, When speaking you would naturally pause where the comma is.
Though is used as an adverb in this case, applied to the verb is, therefore no comma is strictly necessary.
Saying this, I can easily imagine a brief pauses between is and though when speaking the sentence, hence a vocative comma is acceptable.
In other words, take your pick. If I can avoid a comma (as in this case), I usually will. It's not wrong either way though.
Comment: But the question was about using *though* at the end of a sentence.


Does magnetism arise from anything other than changing electric fields?

Question: I'm no expert here, so please forgive the question if it's too vague: I know that a changing electric field can give rise to a magnetic field, and I believe it is correct to say that static magnetic fields arise due to the changing electric fields found in electrons (right?)  That being the case, is it possible to create a static magnetic field in the absence of any electric field, or are the two just manifestations of the exact same thing?
Comment: I'm sure you have fridge magnets...
Comment: Well...yes, but if I understand it correctly the magnetic field in such a magnet is caused by moving electrons, which carry charge and therefore by their motion induce a changing magnetic field
Comment: Almost all of the magnetization of fridge magnets is from electron spins.
Comment: see https://en.wikipedia.org/wiki/Ferromagnetism
Comment: It's problematical—in the baseline quantum description—to describe the intrinsic magnetic moment of a point-particle as arising from 'motion'. For that matter it is problematic to describe the magnetic moment of a atom in it's ground-state as arising from motion as the state has zero-time-derivative.
Answer: The electric and magnetic fields are manifestations of the same thing, the electromagnetic field, and what you call magnetic/electric is observer dependent. For instance, if you had a charge at rest in your hand, you would feel an electric field but no magnetic field, whereas an observer that was passing by in a car would feel a different electric field to yours, in addition to a magnetic field.
Nevertheless, this does not forbid you of having a magnetic field and no electric field. For example, this is the situation when charges move through a wire. You do not feel any electric field away from it (because the wire is neutral, there are as many electrons as protons). However, there is clearly a magnetic field created by the moving electrons, which will be static if these move at constant speed (this can ideally be done just connecting a constant voltage between the ends of the wire).
However, it is true that if you have a non zero total charge, then it is not possible not to feel any electric field. This is because it would violate Gauss' Law of electromagnetism (which tells you that the the total charge enclosed by a surface must be equal to the flux of the electric field through that surface, so total charge different from zero basically implies electric field different from zero).


Controller Seems to be going into Undefined Exception on Reset

Question: We have developed a board around STR912FAW47 Micro-Controller. During initial testing we tried to bring up the board by loading a simple program for toggling an output port pin. We are using ULINK2 Debugger and Keil MDK ARM for loading the program. When we try to load the program, it does not get loaded in single attempt. After getting loaded successfully, the program does not seem to be working, as we do not see the desired toggling on the IO port. Then we tried to run the program in debug mode through ULINK 2, the program start working intermittently once after 2-3 attempts of connecting and running through debug mode. Further seeing in detail, it is observed that whenever the program is not working, it is going to Undefined Exception Handler (with infinite loop), instead of going to Reset Handler on executing first instruction after reset. It is very strange, as from the code and flash memory, it is seen that the instruction loaded at the 0x0 address is clearly for jumping to Reset Handler. Can anyone put some light on this behavior?
Answer: Have you disabled the watch dog timer? If not providing a proper handler for the WDT and if it comes up enabled by default (a common scenario) then this may very well be the root of your problem.


when we use name="Keys" in input html tag?

Question: when we use name="Keys" in input html tag ?
i know name attribute but when we use keys ?
Answer: The name attribute specifies a name for an input element.
The name attribute is used to identify form data after it has been submitted to the server, or to reference form data using JavaScript on the client side.
Only form elements with a name attribute will have their values passed when submitting a form. By allotting a name to an element, that name becomes a scripting variable for scripting languages such as Javascript, ASP, and PHP. The name attribute is seen most often with forms and other user-input elements.
Keys is just a name given to the element as in:
<code><input name="keys" ..... />
</code>
Its significance can only be identified by the script that the form will be submitted to.
Answer: The name attribute describes which form control a piece of data (specified by the value) to the server side process to which the form is submitted.
"Keys" should be meaningful in the context of the form in which the input appears, but is meaningless taken on its own.


Archiving files through winrar but when ran its slow to load

Question: I have 3.5gb files that I used winrar archive sfx whenn its done its shows size of exe that i archived is 1.5gb , when i run it it takes about 10-20 seconds to load, is there a way to make it run instantly when try to open it? . the reason i want to archive the files so they can extract in a location on the hard drive so if there is another way to do it without using winrar that will be great as long as when i open the archived or extractable file it will open instantly instead of waiting to load for 20 seconds.
Answer: This is most likely due to WinRAR having to scan the SFX and reading the archive upon loading.  I would guess that the more files you have and the larger those files end up making the archive, the longer it will take to load. Another factor could be that you have a slow hard drive and so it takes longer to scan. If you really want to track down the issue and report it to the author you could use Process Monitor to see what the SFX is doing that it takes so long. But I think the easiest thing you can do is try using a different compression program to create the SFX.


Are leather safety gloves washable?

Question:
Are these gloves washable? If not how do I clean them?
Comment: If you wash your gloves, everybody at the jobsite will laugh at you.  You wear your gloves until they wear out, then you get a new pair.
Comment: why do you think they'll work better if they're clean?  If there's mud on them, let it dry, them slap the gloves together to knock the dirt off.
Comment: Ahahah there isnt "everybody" I just work in my shed as an hobby, since money is tight I dont want to always buy new pairs, I dont even know the price of these gloves are they cheap? (someone gave a new pair to me)
Comment: I suppose if there's something like actual poo on them I'd want to wash them, or toss them and use a new pair. :)
Comment: Ahahah Craig :P  Well I will use them dirty then and when they get really really dirty I will just replace them :P Btw are they expensive? As I said it wasn't me who bought them
Answer: Leather and/or pigskin gloves are washable:

knock loose dirt/soil from them
while still wearing them, apply a dollop of mild dishwashing soap to the palm of one glove then rub them together with cold water and rinse; a brush can be used for extreme soiling
lay them out flat to dry, indoors or out (do not machine dry them)
the washing/drying process can make them stiff so after they are dry, apply saddle oil, Neet's Foot oil, mineral oil, saddle soap, or some type of oil that won't go rancid. This will make them supple again.

A good pair of leather gloves will last for years if you take care of them.
Comment: I prefer to use saddle soap for washing leather, personally. Made for the job.

Are leather safety gloves washable?


Intersections of light cones

Question: I'm asked to draw the worldline of an observer that would see two events as simultaneous. My thought process was to draw the light cones of the two events and see where they intersect, then connect these points to obtain the worldline of the observer. Below is a very simple illustrating diagram made by desmos. At the first point of intersection, (0,0) the observer emits two light pulses, Pulse 1 to event A (the intersection of red lines) and pulse 2 to event B (the intersection of the green lines). The light pulses then follow the light cones (the red and green lines) of the two events respectively. When they reflect from the two events, they also follow the light cones and meet again at the second point of intersection between the light cones (5,15). That way, the two light pulses were emitted at the same time and received at the same time, making the events simultaneous, at least according to my understanding of simultaneity. The line connecting these points (the black line) is then the worldline of the observer who sees the events to be simultaneous. I'm not entirely sure about my answer/reasoning, especially that the book offers a different solution which I don't quite understand. I'd explain the book's solution, but the question has gone on for too long already. It is problem 2.6 in D'inverno's relativity book.
I edited the question to include the book's solution (2nd figure) which is constructed as follows. Draw a circle centered at event B (green intersection) with radius equal to the distance between B and A (green intersection and red intersection). Then it connects the points where the light cone of A intersects the circle and the resulting line (the orange line) is the worldline of the observer seeing A and B to be simultaneous. I don't understand this solution at all.
Comment: @robphy I edited the question and added the book's solution.
Comment: Perhaps include your attempt as a figure in the question? That would make it easier to follow your thought process.
Comment: @pela I did now. Does that clear things up a bit?
Comment: Can you share what the book's solution is? And how your answer differs from it? You have enough information in your plot to compute the coordinates of the Red and Green events in the frame of the black worldline. Alternatively, can you construct the line of simultaneity for the black worldline? It might be good to construct the midpoint
Comment: @robphy The books solution draws a circle centered at the red event, with radius equaling the distance between the red and green events. It then draws the light cone of the green event, the one on the circle, and connects the two points where the light cone intersects the circle, and this is the worldline of the observer.
Comment: @robphy yes I have enough info. to find the coordinates of the events but the actual question does not have any coordinates, just the two points and their light cones. The diagram was just for illustration and the lines I drew were such that calculations were easy. Yes I can construct the line of simultaneity and it passes through the midpoint of the black line which supports my reasoning. Also, the black line seems to be parallel to the worldline of the book's answer but I can't know for sure since there are no coordinates. But if so, that would mean I have the right answer, wouldn't it?
Comment: @robphy sorry, the fact that the lines are parallel doesn't support my answer. Even if they were, the line of simultaneity would pass through the midpoint of only one of them.
Comment: @user626542 Your solution looks correct to me. (The product of the slopes of the observer-axes should equal 1.) I'm trying to understand the textbook solution. Are the events already marked before the circle is drawn? Since it uses a circle, it seems not to be in the spirit of spacetime geometry. Could you
possibly render the solution in desmos (buildling upon your first diagram)?
Comment: I personally think your method is much more elegant and insightful than the book's.
Answer: Congratulations, your solution and method and reasoning looks correct to me, and I prefer it because it is in the spirit of relativity (by a construction using the tools of spacetime geometry--in particular, the light-cone structure and the affine structure (parallel lines)).
(As a check, the product of the slopes of the observer-axes should equal 1.)
Since the textbook solutions uses a circle,
it is (in my opinion) not in the spirit of spacetime geometry.
The reason the textbook solution works is that the light-cone on the circle forms a [Euclidean*] right-angle (which implicitly uses the unit-choice so that light-rays are at 45-degrees). Since that resulting triangle is a [Euclidean*] right-triangle, that orange chord is really a diameter. The resulting triangle is a radar measurement so that the event at the corner on the circle is simultaneous with the event at the center (which is the midpoint of the diameter). [Maybe my logic can be tightened-up... but I think you can get the idea.] Although it "works", it's not a spacetime-geometric construction because of the use of the circle.
*Note that the two light rays are NOT Minkowski-perpendicular.
The Minkowski dot-product of those lightlike vectors is not zero.
So, describing that as a "right-angle" is not appropriate in spacetime geometry.

UPDATE (to address the question about parallelism in the comments)
This spacetime diagram might help.
https://www.desmos.com/calculator/fvxps0oz9a

Consider the spacelike segment AB
(the bold dotted violet line),
then form the "causal diamond" associated with it,
which is marked by the intersection of the light-cones of A and of B.
The spacelike diagonal AB is simultaneous according to worldline along the timelike diagonal (the light dotted violet line). (These diagonals are Minkowski-perpendicular [the Minkowski-dot-product of 4-vectors along these diagonals is zero].)
Now consider a family of worldlines parallel to the timelike diagonal .

Consider the segments bounded by the light-cones of A and of B.
These are associated with radar-measurements of events A and B. (See d'Inverno eq. (2.2) in Sec. 2.7.)
Note that the events along AB bisect these segments.
A and B are simultaneous according to this family of parallel worldlines.
Comment: My problem with the book's solution is that I don't see the motivation behind the construction of the circle. But I do have a question, regarding the parallelism of worldlines. If there's observer (2) that has a worldline parallel to that of observer (1) who sees A and B to be simultaneous, does that mean that observer (2) also sees A and B simultaneous but occurring at a different time than observer (1)? Or does he not see the simultaneous at all? Does the line of simultaneity define simultaneity in an absolute sense or differently with respect to different observers?
Comment: Clarification: I meant absolute or different among different observers that are at rest with respect to each other.
Comment: @user626542 I added a diagram to address the parallel-worldlines question.
Answer: EM_1:

"[...] problem 2.6 in D'Inverno's relativity book"
"[...] to draw the worldline of an observer that would see two events as simultaneous."

D'Inverno's statement of problem 2.6 is rather asking for the worldline of an inertial observer

who took part in one given event (event $O$, in D'Inverno's Fig. 2.14), and

who reached a certain conclusion (involving event $O$ and event $G$, which are given as spacelike separated from each other).

"the resulting line (the orange line), OP 2nd figure [...] I don't understand this solution at all."

In a nutshell: the solution you sketched above is surely correct (as D'Inverno intended), and it obtains as an application of (a variant of) Thales's theorem:
If two chords through a given circle meet in a right angle in one point on the circle circumference, then the remaining two endpoints of these two chords define a straight line through the center of the circle; a.k.a. a diameter of this circle.
Now, to justify and to discuss this in more detail I prefer to assign individual names to relevant identifiable participants, as well as to relevant events in which they took part; and I consider the naming scheme in the following figure closer to Einstein's (and also to Comstock's) descriptions concerning simultaneity than that in D'Inverno's Fig. 2.14:
$\,$ Simultaneity configuration: $A$'s indication $A_J$ and $B$'s indication $B_Q$ are simultaneous. ($M$ is identified as "middle between" $A$ and $B$.)" />
Shown are two given participants ("material points") $A$ and $B$ who are at rest wrt. each other (in a flat spacetime region);
a third participant $M$ who is at rest wrt. $A$ as well as wrt. $B$ (thus all three being members of the same inertial system), and who is explicitly identified as "middle between" $A$ and $B$ through the shown lightcone structure.
Also shown are some auxiliary participants (who are not at rest wrt. $A$, $B$, and $M$; but not necessarily at rest wrt. each other) so that each relevant event is uniquely identifiable as coincidence event by the participants who took part it in together.
Important features of the lightcone structure involving these participants are that

after having taken part in event $\varepsilon_{MK\_\text{sign}}$ (which involved an observable recognizable signal indication of $M$), $M$ observed the corresponding reflection indications of $A$ and of $B$ togther (a.k.a. "in coincidence"),

after having taken part in event $\varepsilon_{AH\_\text{sign}}$ (which involved an observable recognizable signal indication of $A$), $A$ observed the corresponding reflection indication of $B$ in coincidence with observing $M$'s reflection indication of $A$'s reflection indication of $M$'s corresponding reflection indication, and

after having taken part in event $\varepsilon_{BP\_\text{sign}}$ (which involved an observable recognizable signal indication of $B$), $B$ observed the corresponding reflection indication of $A$ in coincidence with observing $M$'s reflection indication of $B$'s reflection indication of $M$'s corresponding reflection indication.

As a consequence, by Einstein's (and, supplementing, by Comstock's) definition, $A$'s indication $A_J$ (i.e. $A$'s part of event $\varepsilon_{AJ\_\text{refl}}$) and $B$'s indication $B_Q$ (i.e. $B$'s part of event $\varepsilon_{BQ\_\text{refl}}$) are simultaneous.
Further, arguably also as a consequence of having verified the described lightcone structure, it is thereby established that
$s^2[ \, \varepsilon_{AH\_\text{sign}}, \varepsilon_{AJ\_\text{refl}} \, ] = s^2[ \, \varepsilon_{AJ\_\text{refl}}, \varepsilon_{AK\_\text{rec}} \, ]$, and
$s^2[ \, \varepsilon_{BP\_\text{sign}}, \varepsilon_{BQ\_\text{refl}} \, ] = s^2[ \, \varepsilon_{BQ\_\text{refl}}, \varepsilon_{BR\_\text{rec}} \, ]$.
Further, since $A$ is a member of an inertial system,
$s^2[ \, \varepsilon_{AH\_\text{sign}}, \varepsilon_{AK\_\text{rec}} \, ] = 4 \, s^2[ \, \varepsilon_{AH\_\text{sign}}, \varepsilon_{AJ\_\text{refl}} \, ] = 4 \, s^2[ \, \varepsilon_{AJ\_\text{refl}}, \varepsilon_{AK\_\text{rec}} \, ]$, and
$s^2[ \, \varepsilon_{BP\_\text{sign}}, \varepsilon_{BR\_\text{rec}} \, ] = 4 \, s^2[ \, \varepsilon_{BP\_\text{sign}}, \varepsilon_{BQ\_\text{refl}} \, ] = 4 \, s^2[ \, \varepsilon_{BQ\_\text{refl}}, \varepsilon_{BR\_\text{rec}} \, ]$.
By the conventions on how to represent these geometric and lightcone relations as 1+1-dimensional Minkowski diagramm with

each member of an inertial system as straight line,

equal timelike spacetime intervals of one member of an inertial system as straight line segments of equal length,

lightcone structure as grid of sraight parallel lines intersecting at right angles,

therefore (by Thales's theorem) event $\varepsilon_{AJ\_\text{refl}}$ is drawn as center point of the circle through events $\varepsilon_{AH\_\text{sign}}$, $\varepsilon_{AK\_\text{rec}}$ and $\varepsilon_{BQ\_\text{refl}}$; corresponding to the solution to D'Inverno's problem which you know already.
Likewise, event $\varepsilon_{BQ\_\text{refl}}$ is drawn as center point of the circle through events $\varepsilon_{BP\_\text{sign}}$, $\varepsilon_{BR\_\text{rec}}$ and $\varepsilon_{AJ\_\text{refl}}$.

Intersections of light cones


Good button debouncing/stateChange library

Question: I need debouncing/stateChange for a push button configuration. Is there a good library for debouncing/stateChange buttons in Arduino (without delay)?
Comment: "Best", especially without offerimg any (or enough) criteria, would elicit entirely subjective answers and so is not a good fit for stackexchange.com. If you can re-word your question make it more objective, it will get more useful results (not to mention, it will remain open!)
Comment: I usually check the button state every few milliseconds, and store the state in an array. Next I check if the stored values are all HIGH or all LOW.
Comment: There is no such thing as debouncing without delay. Some small amount of delay by definition needs to be introduced for the input system to be sure that the event is not a false positive.
Answer: The Button library in the Arduino playground works perfectly.
Comment: This library is great! BUTTTT dosn't work with the ESP8266 because meanwhile the Arduino has an internal Pull-up resistor the ESP doesn't (in all pins)!!!
Comment: This link is now broken
Answer: I think what you need is an interrupt-based detection of the button. This way, your Arduino can do what it needs to do without stalling for the delay function.
// Example code usage

int pin = 13; // LED on board
int interrupt0pin = 2; // pin attached to int0 if you're using Uno
int buttonState;

void setup()
{
  pinMode(pin, OUTPUT);
  pinMode(interrupt0pin, INPUT);
  attachInterrupt(0, buttonUpdate, CHANGE); // calls buttonUpdate() when button input changes (you can also use high-to-low or low-to-high)
}

void loop()
{
    if (buttonState)
        digitalWrite(pin, HIGH);
    else
        digitalWrite(pin, LOW);
}

void buttonUpdate()
{
  buttonState = digitalRead(interrupt0pin);
  delay(50); // 50ms works for most switches - adjustable
}

Find out more here: http://arduino.cc/en/Reference/AttachInterrupt
Good luck!
Answer: You can use my library
https://github.com/anlgncr/Buttons
This library lets you use buttons as many as you wish with only one instance of class.
You can also call a function when button is pushed or released.
Answer: I'm on this subject right now and I'll use this to note my findings.
I found many libs on this, and this is my wishlist:

support many buttons
support toggles or switches
support debouncing and maybe de-glitching
non-blocking functions
support long-press, double-click

Candidates:

Switch from avandalen: tutorial - github - lib ref@arduino - @platformio
EasyButton from Evert Arias: tutorial - github - lib ref@arduino - @platformio
JCButton from JChristensen: github - lib ref@arduino - @platformio
ezButton from ArduinoGetStarted: tutorial - github - lib ref@arduino - @platformio

Here are my findings for each lib:
Switch

it's really easy to use
you can use it as a switch or a button, same class handles both
supports callbacks
supports many buttons
supports debouncing and de-glitching
supports double click and long press
most configs have defaults, and you define them at the Button setup
as I use PlatformIO, some warnings from this lib are shown while compiling my project

EasyButton

it's really easy to use
very good docs
supports callbacks
supports many buttons
does not support toggles/switches, although you can simulate it by checking the wasPressed and wasReleased properties
supports debouncing
supports double click, triple click, or a given number of clicks
you may have a different action for single, double or triple click for the same button
supports multiple times of long press, if needed
most configs have defaults, and you define them at the Button setup

JC Button

easy to use, not as easy as Switch and EasyButton tough
you can use it as a Button or a switch (ToggleButton), different class for each
supports many buttons
does not support callbacks
supports debouncing
supports multiple times of long press, if needed
most configs have defaults, and you may define them at the Button setup, but long press time is something you define while querying it's status rather than defining it once at the button setup

ezButton

easy to use, not as easy as Switch and EasyButton tough
supports many buttons
does not support toggles/switches, although you can simulate it by checking the isPressed and isReleased events
does not support long press
does not support callbacks
supports debouncing, does not debounce by default (you must call setDebounceTime on setup)
supports an easy way to count button clicks

Veredict
I chose avdweb/Switch. Reasons:

in terms of debouncing AND de-glitching, it did better according to my tests
I need a solution for Buttons and Switches, and it provides them in the same class
Answer: I can receommend the following library:
http://log.liminastudio.com/itp/physical-computing/arduino-a-new-improved-button-library-with-some-handy-features
https://github.com/virgildisgr4ce/Button
On the website you will find some examples on how to use it. I have implemented this library already in several sketches and it works very reliably.
Answer: You can put a capacitor in parallel with the switch - 100nf should do the trick. Some capacitors have a minus on the packaging, next to one of the pins - if so, make sure that side is to negative (ground).
Answer: I put this together for a guy the other day. Its not a library but it achieves reading and debouncing all of your buttons and works very well maybe it could help you
const byte numbuttons = 15;                                                     // DEFINE HOW MAY DIGITAL INPUTS TO MONITOR(NUMBER OF BELOW PINS TO USE)
const byte digitalpin[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16 };   // DECLARE ALL DIGITAL INPUT PINS WHICH CAN BE USED IN THE ORDER IN WHICH THEY WILL BE PHYSICALLY USED(DONT INCLUDE ANY PINS USED FOR OTHER THINGS
const byte debouncetime = 50;                                                   // THIS VALUE IS THE TIME TO WAIT BEFORE RECHECKING (FOR DEBOUNCE
byte readstate[numbuttons];                                                     // READ ARRAY
byte laststate[numbuttons];                                                     // HOLDS THE BUTTON LAST STATE FOR STATE CHANGE DETECTION
byte NumBut;                                                                     // THIS IS THE VARIABLE FOR DIGITAL FORLOOP COUNTER
unsigned long checktime;                                            // RECORDS THE TIMES (IN MILLIS() TO RECHECK THE STATE FOR EACH BUTTON. FOR DEBOUCING

byte CURRENT_SETTING;
void setup() {

  // SET INITIAL STATES FOR DIGITALS
  for (NumBut = 0; NumBut < numbuttons; NumBut++) {
    pinMode(digitalpin[NumBut], INPUT_PULLUP);
    laststate[NumBut] = digitalRead (digitalpin[NumBut]);
    checktime = 0;
  }
}

void loop() {
  //call the read button method
  READBUTTONS();
  PROGRAM_OUTPUT();
}

void READBUTTONS() {
  for (NumBut = 0; NumBut < numbuttons; NumBut++) {

    readstate[NumBut] = (digitalRead (digitalpin[NumBut]));                                                                   // READ DIGITAL INPUTS INTO ARRAY

    if (readstate[NumBut] != laststate[NumBut] && millis() >= checktime )   {
      if (readstate[NumBut] == 0 && laststate[NumBut] == 1) {
        checktime = millis() + debouncetime;
        CURRENT_SETTING = NumBut;
      }
      laststate[NumBut] = readstate[NumBut];
    }
  }
}

void PROGRAM_OUTPUT(){
    switch ( CURRENT_SETTING ) {
    case 0:   //do something to turn off output break;
    case 1:   //do something with setting 1 break;
    case 2:   //do something with setting 2 break;
    case 3:   //do something with setting 3 break;
    default:    break;
}
}


Prevent app from opening after executed shortcut

Question: I've created a simple shortcut which adds clipboard to a note:

The problem is that after the shortcut has completed, the note gets open in the app afterwards. Is there a way to prevent that so the app stays in the background?
Answer: This is up to the app developer to implement. Some apps add an option to choose whether to open the app with the result. You should contact the developer to ask if this can be added to that shortcut action.


Content-Encoding header not removing from object metadata of Google Storage

Question: I am trying to add a functionality for metadata data on Google Storage Object.
I am able to add metadata but while updating metadata ( modify the value as well as removing existing metadata) I am facing problem.
When I Upload a file like mydata.txt, after successfully upload - it had following metadata default -
{ETag="0b1c673f22f98d9862a8198741f0d364",
 hash=md5=CxxnPyL5jZhiqBmHQfDTZA==,
 Content-Length=85515,
 Expires=Fri, 23 Aug 2013 10:08:56 GMT,
 Last-Modified=Thu Aug 22 15:27:58 IST 2013,
 **stored-content-encoding=identity**,
 Cache-Control=private,
 max-age=0,
 Date=Fri Aug 23 15:38:56 IST 2013,
 metageneration=1,
 stored-content-length=85515,
 generation=1377165478501000,
 Content-Type=plain/txt}

Case A:
then I added Content-Encoding=utf8 and it also update successfully and showing in the metadata list.
But when I tried to remove this by removing the "Content-Encoding"  metadata header from the metadata list which is going to update. It updated metadata successfully but its metadata details is showing  the Content-Encoding header.
I observed that Google Storage support default metadata when I upload new copy of object in my bucket then I saw the stored-content-encoding=identity in its metadata list which I did not add with the new file.
Can anybody help me, how can I remove Content-Encoding once if I added it to the object.
Case B:
If I add Content-Encoding with gzip value then it is not adding the Content-Encoding.
Ref :
https://developers.google.com/storage/docs/reference-headers#contentencoding
Comment: For case A, you say "It updated [=removed] metadata successfully but its metadata details is showing the Content-Encoding header." That is contradicting to me, can you clarify? How are you removing the metadata to begin with?
Answer: Your question is not entirely clear (How do you upload or set metadata to begin with? You say it updates successfully but still fails?), but I'll try to answer it.
Case A: There is indeed a bug that inhibited removing the Content-Encoding metadata entry, which might be what you're seeing. It is being worked on, I'll update here when it is resolved. Edit: This has now been fixed.
Case B: Note that the transmitted content encoding for a specific request is actually negotiated for every request (and is subject to change by proxy servers along the route, for instance). In particular, the stored gzip encoding of an object can be removed by the server (i.e., it decompresses the object) if the client request didn't include the Accept-Encoding: gzip header. The x-goog-stored-content-encoding header indicates the content encoding as it is stored in Google Cloud Storage. I assume that still reports gzip in this case.
Answer: In my case, I was trying to add Content-Encoding: gzip to PNG/JPG images, when the aforementioned Case B was reproduced.
I guess that Google Cloud Storage was smart enough to don't let images be decompressed on client side, hence the lack of Content-Encoding: gzip and presence of x-goog-stored-content-encoding: gzip.
Actually, images aren't intended to be gzipped (1, 2, 3) - but actually optimized themselves (1, 2).


How would one go about using a 46V DC power source to power something which needs 36V DC using resistors?

Question: How would one go about using a 42V DC power source to power something which needs 36 V DC using resistors?
Comment: One would NOT! I can't find the reference but this is a duplicate from other questions where people think they to change the output of a power suply just using resistors.
Comment: @JRE That is the one I was looking for!
Comment: 46V in the title and 42V in the question body, which is it? Is the 46/42V regulated? Does the 36V need to be regulated against changes in the 46/42V supply ...for example If the 46/42V is a battery then it's voltage drops as SOC drops. Does the 36V need to be regulated within a spec, for example 36V +/-0.1V And last but most important, how much current required at 36V (both maximum and minimum).
Comment: @Oldfart Diodes, however, can be used for a quick and dirty voltage drop..
Answer: Not at all.
Resistors by definition cause a voltage drop proportional to the current draw.
So, you can't use resistors to make a supply at 36 V for varying current draw.
What you're looking for is a voltage regulator:

a linear voltage regulator converts the voltage difference (10 V or 6 V, depending on whether I believe your title, or your question text) to heat, and acts like a "self-adjusting resistor". It's not made of resistors, but semiconductor devices (transistors, mainly).
a switch mode supply instead charges the magnetic field in an inductor and releases just enough energy from that to its output that the voltage is stable at the target voltage.

Without knowing how much or how little current you'll draw, no definite recommendation can be made, but at 6 or 10 V drop, chances are you want a switch mode power supply, which is relatively complex in theory, but can in practice be built from a controller IC, inductor, a diode and a few capacitors.
Answer: This is a really bad idea, but can be done if you know exactly how much current the device draws, and if this is a fixed, constant value over time, temperature, and input voltage.
If the device draws 100 mA of current at 36 volts, you need a resistor that develops a voltage drop of 42-36=6 volts at 100 mA. Thanks to Ohm's law (R=U/I) this equals 6/0.1 = 60 Ohm in series with the device.
To calculate the power dissipation in this poor resistor you can get that by the voltage drop and the current directly: 6 * 0.1 = 0.6 W.
These calculations are pointless if your device changes the amount of current it draws, and completely impractical if it draws a lot of current in which case you need a beefy resistor.
Comment: Please emphasize "and if this is a fixed value".
Answer: No.
After you figure out if it's actually 42, 46 or perhaps 48V PSU, you could make a string of diodes to drop off the voltage. Voltage drop needed divided by 0.7v = number of diodes needed. 42 => 36V, 6 volts off, 6V / 0.7V = 8 diodes needed. And so on. You could use a zener diode for a larger drop but depending on your current drain it'll get mighty hot. And speaking of hot, depending how many amps the charger pulls, those diodes will be piping hot. Don't use small dinky types. Or Schottky diodes.
It would also be possible to use a MOSFET to generate a fixed voltage drop but one might just as well get a standard LM317, TO-220 3-pin regulator and a heatsink if you're going in that direction. Hot.
Answer: I see a pattern:
36V is 3 x 12V
42V is 3 x "12V" lead acid batteries in series.
If the device was designed to be powered from the lead-acid batteries it will probably work just fine, if not it will probably break.
if you need 36V Then you need a voltage regulator.
LM2596HVS is one example.
Answer: One usualy would not do it that way, using resistors that is. Special casses exist, but without knowing what is soupose to draw the current, it is impossible to answer your question. Here is a link to a wiki article that explains input impedance, link output impedance, and a link explaining voltage division with resistors. If you read these articels, it is clear that the resistor voltage dividers output voltage is dependant on the input impedance of the next stage, and that the current draw is limited with the resistor that connects to the input voltage node.
Answer: Like this (limits the output current to 0.006 amps)

simulate this circuit – Schematic created using CircuitLab
Comment: Those are some funny looking resistors...
Comment: Drop the current limiter or set it to some reasonable value and it'd be actually useful.
Comment: To increase the allowed current ( 0.6/100 ohm== 6 milliAmps), the collector dissipation budget of 0.2  watts needs a dramatic increase. Consider using a TO-220 NPN, perhaps even a Darlington; be sure to heatsink the tab of the TO-220 package. Be aware the TAB may be at the collector potential (42 volts) and you must either float the heatsink or insulate the tab from the heatsink.


Is there a reason GaN chargers stop at 65W?

Question: During the last year or so we have seen commercial release of USB chargers utilizing GaN technology. For some reason it seems no products go higher than 65W. The Navitas reference platform was 65W, Delta released a 65W under the Innergie brand -- but nothing higher. Is there a technology reason for this? USB C goes up to 100W and 87W is reasonably popular because Apple shipped some of their MacBooks with such and so it's easier to market those as replacement.
Comment: Not Innergie, that's for sure because their solution _predates_ the Navitas reference... but the answer given looks the correct one. And I have no idea how "opinions" enter into this but that's Stackexchange for you.
Comment: Please read my post: USB C goes up to 100W.
Comment: If everything has the same specification as the reference platform, then everyone is just *copying* the reference platform.
Comment: Probably because the USB spec stops there
Answer: If the input power of the adapter is less than 75W, you don't need a power factor correction stage (by EU and other regulations).
So they are easier to design, and they hit the largest segment of the market.
Once you need a 2 stage converter you have additional components and thermal considerations and GAN probably doesn't make as big a performance and size difference as it does with a single stage converter.
There are single stage PFC converters, but they suffer from various performance issues.
Comment: Thanks, that's exactly what I wanted to know! I looked up the source of this  and the [PFC Harmonic Current Emissions – Guide to EN61000-3-2:2014](http://www.epsma.org/PFC%20Guide_03032018%20(3)%20final%207-7.pdf) has this to say: EN 61000-3-2:2014 ... doesn't apply to ... Non-lighting equipment with rated power of 75W or less.
Answer: Nothing about the GaN designs prevent it from going past 65W. Navitas released a reference design before or about the same time for a GaN 150W AC-DC adapter (with a 100 to 500W target range) only it was targeted at a different market segment, high end laptops and televisions. https://www.navitassemi.com/navitas-gan-power-ics-enable-smallest-power-adapters-ultra-thin-tvs-laptops/
They even mention it in the link to provided.
The 65W reference design is a end product restraint. They chose a target power density per cc and worked backwards from there. A slightly larger or changed design would allow greater power at the cost of size and money. The 150W design uses a different topology and is more brick size instead of a cell phone cube sized charger. Less to do about engineering restrictions and more to do about marketing goals.


After update, Synaptics touchpad gives lethargic pointer

Question: My laptop is running KDE on a Debian a testing/unstable mix. I recently did an upgrade, which pulled in a new xorg version (xserver-xorg-core:amd64 2:1.15.1-1 → 2:22.214.171.1244-1), including all the submodules such as xserver-xorg-input-synaptics:amd64 1.7.3-1+b1 → 1.8.0-1. There were a bunch of other things too.
After reboot, the trackpad moves the pointer ridiculously slowly. As in move my finger across it quickly over a dozen times to get across the screen. Yet, moving my finger slowly shows it clearly still has acceleration, just nowhere near enough.
First, of course, I tried the KDE Touchpad settings. I upped the maximum speed as far as it goes, and the same with the acceleration. That got it down to 5–6 times across quickly to get across the screen—still far too slow.
Second, I tried speeding it up with xset m, changing the settings from 30/10 threshold 4 to even insane values like 100/2 didn't have any effect. Attempting to use synclient let me set the MaxSpeed to 255, but that hasn't done anything. It wouldn't let me push the AccelFactor above 1 (same as the KDE settings pannel).
I downgraded the entire X stack to install synaptics 1.7 again (1.8 changed ABI). That works. The difference is immediately apparent: on the kdm login screen, it takes 1–2 swipes across the pad to go across the screen with 1.7; it takes 26 (yes, I counted) with 1.8. I logged into a failsafe session in both 1.7 and 1.8; the output of xset q is identical; the output of xinput list-props on the trackpad device is almost the same (the property numbers are different, 1.8 adds a new circular pad setting, value 0; 1.7 has grab event device set to 1, instead of 0 in 1.8). The xorg logs similarly don't seem to show much. I've put an tarball of them all on Dropbox if you wish to review them.
Is there some config setting I'm missing? Seems like X acceleration is just broken here, leading to unacceptably slow pointers.
Comment: @1_CR Hah, I was hoping to be able to post an answer... but so far all I've found is downgrade. It's not that gurus don't run into problems, it's that we're really good at quickly finding solutions.
Comment: @1_CR and of course right after I say that, I figured out the magic words to put into Google... https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755141 The words were *input-synaptics 1.8 slow cursor*
Comment: @1_CR he does that sometimes. Usually they're about herbivorous mammals though.
Comment: Site guru posts question - doesn't happen very often! ;-)
Answer: Turns out the was fallout of an attempt to get coordinate scaling working better with external monitors. That was trying to fix to pointer speed changing if adding an external monitor changes the aspect ratio. It, however, apparently didn't work with a at least some devices and caused this bug.¹ Thus, they reverted the change, especially since it turned out not to actually accomplish the goal anyway.
The fix thus is simple: upgrade xserver-xorg-common and xserver-xorg-core to 1.16.0-1.
Answer: Changing only MaxSpeed is not enough.
I've changed MinSpeed from 1 to 20 and MaxSpeed from 1.75 to 40 and the touchpad is usable again.


Word that describes something that glows with light, but cannot break the barrier of darkness

Question: What word could be used to describe a glowing object or mass that though it has a quality of brilliance, does not throw light to illume anything?
Say, "The mysterious ball ____ with a self-contained light."
or of a city that though full of lights and vividness cannot extend its glow past the darkness of night?
Comment: Try *sparkles*.
Comment: like a dance of lights that hold a glow only to themselves... could be. good one. But when you think of sparkles one tends not to think of a whole body flowing with inner light.
Answer: Glimmer: http://www.merriam-webster.com/dictionary/glimmer
May carry a connotation of faintness that you don't intend>
Comment: I like this word for my context; if there is no better one then I'll use this one. Maybe somthing like this, "The city was a show of lights that was felt from within, but beyond the heights of buildings and into the darkness, it cowered to only a glimmer that dared not pry into the outside night."
Answer: You might consider, shimmer

A subdued, tremulous light or gleam.
Random House
Comment: This word I like and also has faint mysterious aspect to it. When applied to an object it seams to vivifie it with a contained glow.
Answer: Try illuminates
"to supply or brighten with light; light up."
http://www.dictionary.com/browse/illuminate
http://www.merriam-webster.com/dictionary/illuminate
Comment: But the question asked for something that does NOT illuminate.
Answer: You understand that if you see the object, it is illuminating something, yes? Perhaps it is too faint to illuminate nearby objects or maybe it is non-reflective, but if we perceive the object with our eyes it must emit light.


How can I submit a missing document to schengen visa application which I submitted today

Question: I submitted the schengen visa application from India today. I missed to attached an invitation letter from Germany business.
I want to submit that missing document in the application that I submitted today at VFS mumbai.
Is there a way to add this letter to my application?
Answer: You could submit the missing document to VFS, with a covering letter. They will forward it to the consulate. You don't need an appointment with VFS to do that.


Long range Arduino to Arduino communication

Question: // electronics beginner here
I have been using VirtualWire with 433mhz modules to have an arduino successfully send data to an other one.
Now, for telemetry purposes I need this one way communication to be operated 20km away. I do not want sophisticated stuff on that , the ideal way for me would be to amplify the signal and keep using 433mhz.
I do not need a high bit rate : 2Kb/s are way enough . I can even go below if needed.
Any ideas of an electrical setup that would send binary data that far ? Is it possible to keep using the light and great VirtualWire library or am I doing wrong ?
Comment: You would need too much power for 20km range - it would be illegal
Comment: Can you use a directional antenna? (In other words, are the coordinates of the receiver fixed).
Comment: @Chu depends on frequency ... I know people with licenses
Comment: @PeterSmith yes I can , what's more the receiver is on a hill which makes it easier for a directional antenna to point at the transmitter
Answer: You probably can't do it with a 433MHz ASK (which virtual wire is predicated on) transceiver, at least not legally. The emerging technology that addresses the design space you are describing, I think, is LoRaWAN, but it's still pretty nascent. Do some Google on it though.
Comment: It is true that LoRa is interesting for this type of project, but I have already looked at it and it involves equipment I don't want to deploy at the moment . Do you have any key for building a RF power amplifier regardless of the regulations ? I will then look for the frequencies that allow for some Tx power in my country
Comment: You can use commercially available amateur radio equipment that allows a Morse keying input I think. Then just wire your Arduino to an NPN transistor open collector to the keyer input.
Answer: Your current set up probably works ok at 100m between units and you want it to work at 200 times this distance (20 km). In a perfect universe (in free space) you will require 40 thousand times more transmit power so, if you are using 1 mW transmit power you will be required to increase this to at least 40 watts.
Here's the Friis transmission equation and this relates to free-space: -

What it basically says is that for the same antennas and transmitting at the same frequency, the power received relates to the reciprocal of distance squared. It works with ratios too. If 1 mW gets you 100 metres, to achieve the same received power at twice this distance you need to transmit 4 mW. At ten times the distance you need to transmit 100 mW. At 100 times the distance the power required is 10 watts etc etc. so 40 watts is by no means a silly number.
Given that the path between transmitter and receiver will likely be littered with a plethora of other 433 MHz users, to obtain the same performance you are likely to need to transmit over 100 watts.
So, you use an illegal amount of brute force or a legal amount of sophistication with a little bit of brute force.
Of course, some sophistication can be achieved by restricting the data rate sent. This is because the receiver could then be designed to operate with a much smaller bandwidth and not have to fight against the noise. Here's a generally accepted formula for the amount of power needed by a receiver at ambient temperatures: -
Power required in dBm is -154dBm + 10log\$_{10}\$(data rate) dBm
So at 1 bit per second, your receiver could be designed to have a really tight bandwidth (thus excluding noise) and it would need a power of -154 dBm. At 1000 bits per second that receive power rises to -124 dBm and at 10,000 bits per second it will be -112 dBm.
Given that your current receiver might be capable of receiving 10 kbps, redesigning it with a much restricted band width (to say 100 bps) will mean the receive power could be 20 times lower. Thus the 100 watts previously mentioned, with some sophistication (i.e. redesigning the receiver), might now mean a transmit power of 20 dB lower at 5 watts.
Goin back to the Friis transmission equation, if instead of 433 MHz you transmitted using 96.8 MHz (4.5 times the wavelength) the received power would be 20 times higher thus you could reduce transmit power by a further factor of twenty.
Using antennas with gain (directionality) is another way of focussing the power onto a far-distant receiver although at 433 MHz and the curvature of the earth (at 20 km) this is probably not a great option unless you use repeaters.
So, sophistication over brute force usually works and is what I advise.
Comment: 100W?  You can get around the planet with 100W.  5 or 8W handheld walkie will get that in free space.  Especially if you upgrade the stock antenna with a good quality whip and run on VHF.  You can get them easily on line.  If your conscience bothers you, licences are £75-£100.
Comment: @paul What is it that you don't understand about power from an antenna falling with the reciprocal of distance squared. And it's worse across land. It's also worse at uhf compared to vhf and it's also worse for crappy receivers of the type implied in the question. I advise you to read the question and my answer again noting particularly that I am not recommending this brute force approach. I will also suggest you research the Friis transmission equation before barking another comment.
Comment: @PaulUszak Never mind, I've added it to the answer in case there are more daft comments LOL.
Comment: But you've just said that you can do it with 5W!  That's what I said.  Perhaps we're both confused.  I'll butt out and go back to drinking and kicking the cat...
Comment: You're not grasping it yet.
Answer: Depend on how long the range you want to cover, there are different solutions.
For the closest ranges, you can use 2.4GHz low power solutions. That is about 10 meters maximum indoors or a few hundred meters outdoors. You can use your nRF24L01+ wireless solution or 802.15.4 Zigbee systems or Bluetooth Low Energy if you are thinking about talking with a smartphone.
Increasing the distance, you will want to look into higher power solutions. 433MHz systems have good propagations without consuming too much power. Full-power Wi-Fi can work if you can get the aim for directional antenna, and it is the computer-friendly solution on this distance.
For even wider coverage, you will want to use someone else's infrastructure - your favorite cellular carrier, and/or the Internet. Two Arduino's, each with a cellular modem, can send text messages to each other. Or you can use the cellular modem to establish a GPRS (or 3G) data connection to talk to a server somewhere.


Split data into test, training and validation when some patients have multiple observations

Question: I have a dataset that has multiple observations for some patients. Patients are labelled by patient IDs and I would like to split the data into testing, training and validating groups as I am trying to create a predictive model for the dependent variable in each observation. I was using 'sample' but realised this doesn't stop one patient from appearing in more than one set. Fairly new to using R and I've looked around but can't find, or think, of a way to do this. Sample size is almost 2000, but only 1600 unique patients and I can't create weighted means of the variables in the observations reduce the size to 1600 for the split.
Is anyone able to help our or suggest anything?
Answer: Grouped splitting is essential especially if you are using very flexible machine learning algorithms like a random forest. How much it makes sense compared to selecting just one observation per group depends very much on the aim of your analysis.
From a technical perspective, this can e.g. be solved like this.
If your dataset df has a column ID, one option is to use my splitTools package and write something like
ids <- splitTools::partition(
  df$ID,
  p = c(train = 0.6, valid = 0.2, test = 0.2),
  type = "grouped"
)

train <- df[ids$train, ]
valid <- df[ids$valid, ]
test <- df[ids$test, ]

60% of the IDs will be sampled into train, 20% into valid and 20% into test.
Answer: I would partition the ~400 patients with duplicates into their own analysis, since the remaining data set will have ~1200 subjects that don't have duplicates.  Nearly three times as many subjects don't have repeated outcomes, and therefore the bulk of your analysis doesn't involve longitudinal outcomes.  If your focus is solely on the ~400 with duplicates, you'd obviously need to find a method that will simultaneously accommodate both cross-validation and longitudinal regression with repeated measurements.
What comes to mind is a reviewer asking you why you attempted to perform a repeated measures analysis with CV when only 1/4 of ~1600 subjects had repeated measurements.
Comment: Thank you for the help


Why Gmail Meter is not working

Question: I added Gmail Meter  to my Gmail account but it never reported anything. Do you know what could be the matter? I worked to authorize and add the script, then I waited and nothing happened. When I go to gmailmeter.com the registration process starts over the same way.
Answer: This is Eduardo from the ShuttleCloud & Gmail Meter team. We've recently updated Gmail Meter. If you have previously tried Gmail Meter but had problems with it, please try removing it and installing it again. Uninstalling Gmail Meter is not easy due to the underlying Google Apps Script code it's based on. Here are instructions to uninstall Gmail Meter:

When you signed up for Gmail Meter you received an email with uninstall instructions and a link to uninstall the script. Please start the uninstallation process by clicking the "Uninstall Gmail Meter" button. When the URL opens in your web browser click the "Uninstall" button. If you can't find the email, try this direct link.
Delete the file in your Google Docs/Drive that is used for storing the Gmail Meter data. The file name is "Gmail Meter Data - Do not delete". Make sure to empty the item from your Docs/Drive Trash to permanently delete the file.

Then head over to http://gmailmeter.com and hit Get Started to install the latest version of Gmail Meter.
Answer: I'm Ryan from the Gmail Meter team. Sorry to hear the reports aren't coming through. This is actually happening with a few of our users now, so you're not the only one.
Soon we hope to revamp the program with better features and of course better functionality. Please feel free to shoot me an email and I can personally keep you updated as Gmail Meter gets better.
firstname.lastname@example.com
Comment: This question is now the top search result on the subject, just FYI. Is there perhaps a fix as of now?
Comment: The issues with this don't seem to have been resolved yet.

Why Gmail Meter is not working


rsync and permission denied

Question: I'm simply trying to copy a tar file from my laptop to my Amazon EC2 instance using rsync, but get this error:
opening connection using: ssh -l root ec2-54-245-194-3.us-west-2.compute.amazonaws.com
rsync --server -vvve.Lsf . /Downloads
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
[sender] _exit_cleanup(code=12, file=io.c, line=605): about to call exit(255)

This is the command I ran from my laptop as root:
rsync -az -vvv -e ssh /Downloads/employees_db-full-1.0.6.tar.bz2 root@ec2-54-245-194-
3.us-west-2.compute.amazonaws.com:/Downloads

A security keypair was generated on the instance and using it I am able to ssh connect to the instance without any problem.
Any ideas what I'm doing wrong?
Thanks in advance.
Answer: Used scp instead and specified key pair in the copy command. Finally worked.

rsync and permission denied


What's the minimum distance between two iron golem farms?

Question: Considering the pretty common design (20x20 base) for the iron golem farms, what is the minimum distance from one golem farm to another to make them work correctly? And how is this "distance" calculated diagonally?
Answer: There is a good write up on Village mechanics on the Minecraft Wiki. For two villages to be safely treated as separate villages, they need to be greater than radius + 32 blocks away from each other.
Not that the radius is defined as:

The distance from the center point to the furthest door, -OR-
32 blocks

whichever is greater. This means that the radius is always at least 32, no matter what, but it can be more than that if there are any houses further than 32 blocks from the center
So, if your Iron Golem farms are 20x20, and the center of the village is slap bang in the middle of that, then your radius is a further 10 blocks from one side of the farm, (i.e. 30 blocks). However, 30 < 32, so we take radius=32
radius + 32 = (32) + 32 = 64 blocks.
If you are working a lot with villages/golem farms, you might find this mod handy: Village Info Mod. It will help calculate how far you are from the village center, and other useful info.
Comment: Good answer but you didn't explained well (actually not at all) the diagonally problem. How is the distance calculated diagonally (which is the answer that interested me the most in the first place)?. I don't recall reading about it in the wiki and the whole point of this question is not to test that by myself.
Comment: This answer needs an update for newer MC versions
Answer:
The centers are 63.639 blocks apart (from vector [0, 0, 0] to vector [45, 0, 45] as [x, y, z]) and they are read as two separate village.
Comment: (x,y,z)0,0,0 -> 45,0,45 = 63.639 blocks, rounds up to 64.  I phrased it wrong above.
Comment: 64 blocks diagonally is was more than 64 blocks horizontally, so yeah that was pretty obvious. I was wondering what is the minimum diagonally.
Comment: Does having the second one at [44,0,45] cause it to no longer work as two separate villages?
Answer: Straight from the 1.14 code:
protected int villageDistance = 32;

And
protected final int villageSeparation = 8;

Though I don't think distance is checked in later versions.
From what I've seen, the requirements to spawn it is:

The villager must be gossiping with another villager
The villager has NOT recently slept AND worked
The villager has not seen an iron golem recently
The villager has a profession
5 villagers within 10 blocks meet those requirements (other than #1).

This is from the yarn deobfusication of Minecraft, I don't see any other requirements in the code.
Comment: Could you add a bit more information? What do those numbers represent? What are those distances measured from? And how to they impact the Iron golem spawning algorithm?
Comment: @zeel What I'm saying is I don't think they do, all I could find is arbitrary values but I don't really think they affect Iron Golem spawning, just the requirements I outlined.
Comment: Then, based on imperial observation, how much separation is needed to prevent interference? The question is "what's the minimum distance between farms" and that still needs settled.
Comment: From what I've seen, as long as you block line of sight from iron golems and have 5+ villagers with professions out of sight Iron Golems should spawn.  It shouldn't interfere in the first place.
Comment: So you are saying that there is no actual distance requirement now, as long as the villagers can't see another golem, they will still create their own?
Comment: That is what I am seeing in the code, yes.
Answer: Robotnik gives some quite advanced calculations but the simple answer is a door will generate a new village if it's registered more than 64 blocks (euclidean) away from the nearest registered door of an existing village.
After a new village is registered, another door can be registered belonging to it, lying even adjacent to previous door, making the villages overlap and their centers to be a block apart, but unless you want to perform mind-boggling wizardry like the Iron Trench to force order of registering doors, just make sure there is at least 64 blocks gap between doors of one farm and doors of the other.
Answer: It is 100 blocks away from each iron golem farm but it is 150 block from each village.
Comment: Could you add some detail and supporting evidence? Where do those numbers come from?
Answer: Tango Tek stated the distance formula and said all calculations suggest a min. distance of 150 blocks of distance between the iron farm and any villages and a distance of 100  blocks between two iron farms. this is to keep the golems spawning in the farms and not inbetween them.....I have used his calculations on my own world and find them to be accurate as between my two farms I am cranking out 3500 - 5000 iron in an hour. both my farms drop into a killing chamber lined with hoppers the iron is transported to the automatic storage and the poppies are shot into a nether portal.   the valid distance between 2 villages is 68.5 blocks or 69 since half blocks dont stack sideways.
Answer: In an Iron Golem farming tutorial, for maximum yield it prescribed a 256 block separation. This tutorial was by docm and located on youtube:

The 256 block gap is not required; it just provides maximum yield.
Comment: Which tutorial? Do you have a link to the Youtube video?
Comment: @Coronus http://m.youtube.com/watch?v=xE04Ui90sQY&desktop_uri=%2Fwatch%3Fv%3DxE04Ui90sQY
Comment: I would put the link in the answer, and if the tutorial explains why the 256 blocks are necessary, that would be helpful information to include.
Comment: @Coronus Okay :)
Answer: On The Wiki It Says it's 66 Blocks minium distance.


google app engine INFO meaning

Question: Im testing an appengine application localy and I want to know what the last numbers in the INFO log, mean
INFO     2013-08-30 00:15:12,914 module.py:593] default: "GET /mobile/ HTTP/1.1" 404 154
Answer: 404 = Page not found.
154 = Size of the response content in bytes.
Answer: Page not found.  In other words, you do not have url mapping to the url "/mobile/".  Check urls.py (for example, in django/python) and or app.yaml, to make sure you tell the app where a request to "/mobile/" should point.  Post parts of your app.yaml, or your code for url mapping, if you need further troubleshooting

google app engine INFO meaning


How do 3-phase dual voltage motor windings work?

Question: Many 3-phase motors allow for two possible line voltages, for example 230/460.   I am trying to understand how the different wiring is changing the way the windings get current.  I would guess that wiring for high voltage the motor would use all the windings and when wiring for low voltage it would only utilize half the windings. But, wouldn't that would give the motor different performance and draw ratings depending on how it is wired?  Can someone explain how the current is traveling in both the high and low voltage wiring scenarios?  Where are the poles?  Thank you!
Comment: Why have you shown the same picture twice?
Comment: draw in the jumpers.
Comment: so you would ask why
Answer:
I would guess that wiring for high voltage the motor would use all the windings ...

Correct.

... and when wiring for low voltage it would only utilize half the windings.

Incorrect - although you could if you only wanted half power. The answer is to connect the half-windings in parallel. Note that in your second diagram T4, T5 and T8 are connected together forming a second 'Y' or star arrangement.
Then the outer terminal of each 'Y' is connected together. The Low Voltage 'YY' diagram shows T1 and T7 connected, etc.

Where are the poles?

The poles don't enter into the problem of voltage selection.
Answer: The power does not change in both cases because in the yy connection we use two coils in parallel and to simply the problem let us assume there are two resistors each one has R ohm so the power consumed will be 2*v*v/R (v is phase voltage).But in yy the v is double and R is also double so the power will be
2v*2v/2R=2v*v/R and as you see it is the same power in two cases.BUT
the current in yy will be twice the current in y per phase.THE CONCLUSION is that
as voltage doubled the current will be half and the power remain constant.


Have full control but cannot manage alerts

Question: I have full control for my sharepoint site and I am attempting to set up alerts for folders in one of the libraries. I only have the option to set alerts for myself and not others. Not sure why this is the case. Is there something else I need to set up to allow this?
Answer: Confirm that you have the Manage Alerts permission at the site collection level (by default only for the Owners group, I believe). If you have full control at the site level, I'd double check the permission levels to confirm the full control permission level hasn't been changed.
Answer: Go to site collection settings and check any customized permission level is created and manage alerts is not ticked and you have that permissions. Or check with the sharepoint version installed. Or check if the folder which you are trying is not stopped inheriting with top level permission and u might not have the full control permission over there. Just check with all the permissions you own. This will definitely resolve your problem.


How can maximum likelihood be used to estimate parameters for a Weibull distribution?

Question: [answered elsewhere - duplicate]
Answer: This is basically just a parametric estimation problem, which is very well documented.
These data are the same as those coming from a survival analysis with tied event times. The number of observations is unimportant as far as the point estimates since the size of the risk sets are proportional and the Kaplan-Meier curve for survival is identical. So you may assume that there are 60 observations at baseline, 30 failures at month 1, 10 failures at month 2, 5 failures at month 3, and 3 failures at month 4.
Using these data, any estimation routine will work. I think the Weibull likelihood is not a regular exponential family so Fisher Scoring will not work, but the EM algorithm can be used to estimate the shape and scale. It can be done easily by-hand in R if you calculate the likelihood function, or (even easier) ML estimation is available in the survival package.
Answer: For a quick solution, you can plot ln(ln(inverseSurvivalFunctionOfOrderedData)) versus ln(orderedSurvivalData) and see if there is a straight line. If there is, then you can be assured that your data is Weibull. Then, fit a best line to this plot using linear regression. The estimated slope corresponds with the shape parameter and the estimated intercept corresponds to the scale parameter. Use these values and plot out the distribution with the data and see how it looks. These obtained estimates can be used as a good starting point for one of the MLE numerical methods such as Newton-Raphson or the other ones mentioned by @AdamO.
Note: You need to order the survival data by time, but it looks like your data is already ordered.


Should I update my spoilers?

Question: I have an answer for What does the ending for Dark Souls 2 mean?, which is effectively one giant spoiler. However, 1 year later, the ending is pretty much common knowledge, so I was wondering whether or not I should/could remove the spoiler formatting? Or is that my perogative?
Comment: One could argue that if you click on a question titled " what does the ending for [game] mean?", then you have agreed to see spoilers, because you can't answer a question like that without spoiling the ending.
Comment: Spoilers are a rather contentious topic.  The basic process we follow is that if someone is asking something, directly answer the question.  Supplemental information can be in spoiler tags, but are not required.  If you're spoilering the whole answer, you're doing it wrong.  That answer should never have been spoilered in the first place.
Answer: There are no rules for the use of spoilers on Arqade. Use your judgement. In general, if everything in your post, whether it be a question or an answer, then nothing is a spoiler, because it's impossible to determine what's behind that mouseover without the context of a broader answer.
Comment: If you don't ask, you'll never know. Thanks. This does make sense - an answer that is entirely spoilers isn't an answer, and if someone asked, they *want to know*.

Should I update my spoilers?


when should I stop searching the literature?

Question: I'm seaarching the literature at the moment to write a literature review but I don't know when should I stop searching and start writing?
Comment: you stop when you defend your thesis.. specially if there are other folks working on the same thing. Here is the trick: you either publish along the way (before thesis defense) or you will find your ideas in others papers.
Comment: You should write while you search, not after you search.
Answer: The facile answer is you don't stop searching the literature. Even as the review evolves, you should be including new references if they are noteworthy in addressing questions within the field. This process should continue as long as you are working in the field of the problem.
Of course, from a practical standpoint, you do need to select a cutoff. There should be a reasonable point in time in which you've set the outline of the review, and decided on the main topics and questions to be discussed. At that point, it would be fair to set aside adding more references, and stick to what's been published. However, you should continue to monitor the field, and if further revisions or updates of the text are necessary, then you should include the papers published in the interim as part of your updates.
Answer:
Start writing the review before (or at the same time) as you start searching the literature.
I'd suggest to determine the scope of the review before you start searching the literature, and already write it down. This would answer questions like Which problem am I looking at? or Why is this problem relevant now? Answers to these questions will also guide your literature search.
Stop searching the literature when you stop writing.
Writing is not a linear process - it is going from a rough outline to a focussed text. As you go into focus, you will need to research more and more specific references. While you define your questions, search for literature dealing with these questions, and when you develop an argument, search for literature that would support (or contradict!) that argument.

My key suggestion would be to not view the literature search as shopping around randomly, but more like a visit to the grocery store with the shopping list in your hand.
Note that these suggestions apply to writing a literature review. Staying on top of recent literature or reading to get into a new field would be a different story.
Answer: You need to be very productive in terms of knowing your area. knowing what is happening is different from understanding it. This includes utilising every available tool which makes it easier to keep updated with what is published. An easy way , in Computer Science, is setting alerts (both on Arxiv and Google Scholar) and following pioneers in your area.
As a personal experience, I spent plenty of time gathering, reading and understanding related papers/books. I came across many interesting ideas. But finally, I found some of my ideas are published in others papers. Some were exactly the same! This is the curse of PhD. Try to publish before others as long as you have the required knowledge and a clear contribution.  The literature is then translated to the cumulative process of publishing different papers related to your thesis problem.  You stop when you do the defence (assuming you will change the area thereafter).
Answer: You should develop an outline, in consultation with your advisor, of what is to be included in the literature review - this should be based on the research foci and priorities of your research.
What I do when writing a literature review, is to actually write the review at the same time as doing the research.
When should you stop?  when you have covered each of the foci and priorities to the point when you (and your advisor) are satisfied that you have synthesised the scope of each of the foci and priorities.


Is there a standard uninstall procedure on Mac OS X?

Question: I've seen advice on an per-application basis, but is there a standard approach like Add/Remove Programs in Windows?
Comment: There is no such fantastic API to cleanly manage applications installation in Windows or in MacOS X. You approach this paradigm with port environments as MacPorts and similar on other Unix systems.
Answer: Remember that (most) Mac OS X apps are installed self-contained; i.e., you simply drag a copy of the *.app folder into the Applications directory of your choice.
Once reason for this is to simplify the uninstall - delete the app folder; simple.
Comment: It is correct, it says **most** apps.
Comment: This is not correct. spotlight will show you what is left behind.
Answer: None that I know of (as advertised by Apple, I mean).  I found this on my bookmarks: http://www.thexlab.com/faqs/uninstallingapps.html, which might give you a better idea of what to do before and after installing applications.
There are a few apps that take care of this too like: AppCleaner which tries to find the documents and settings the application uses (though it's debatable how efficient/reliable this apps or any app of this nature really are)
Comment: +1 for AppCleaner. As to its effectiveness, seeing what it finds and deletes makes my think it, and similar, does a pretty good job. At least as good as a windows uninstaller, which leave stuff behind more often than not.
Comment: +1 for AppCleaner too. For anyone reading this answer, I have been using this app for a while and it works like a charm on macOS High Sierra.
Comment: How does AppCleaner find the files? I would prefer doing this stuff using the command line rather than using a closed source app that requires root privileges.
Answer: The vast majority of OS X programs are actually bundles; if you open the terminal and navigate to the application folder, you'll find that your applications are actually directories (folders). Inside are various libraries, executables, resource files, etc.
To uninstall you usually...usually...just drag the application to the trash and empty it. Then do a search from the Spotlight textbox (think it's a dropdown from the magnifying glass in the corner) and look for the application name to find any .plist files in the library folder(s); those are the preferences. You can drag and drop those into the trash as well. Then the application should be gone.
I say usually because some applications did use installers when you put them in, and sometimes those installers can when re-run uninstall the program. The majority, though, can be eliminated as described above, especially if you installed it by dragging it to the application folder in the first place.
If you screw up somehow you could always just reinstall the application and look for a README file in the installer DMG volume. I've seen a lot of applications that come with a README just to tell you to drag the application to the trash to uninstall it.
Answer: Use Spotlight.
First drag the app to the trash. Wait.
First background:
<code> man hier   # get an idea of where that stuff should be.
</code>
Then run:
<code> mdfind -name AppName      #identify all the stuff that got left behind.
</code>
Then to actually remove all files, which is what you would want:
<code> mdfind -name AppName | parallel rm -rf {}      # xargs works as well, but not as cool
</code>
There is something I just don't get about uninstallers i guess, on OSX.  Files have a place to go, it's all very well documented, I do not understand why 9/10 uninstall scripts leave preferences, and Cache and Application Support directories around.
Answer: Nope. The installer framework in OS X (.pkg files) does not actually support uninstall. So it's manual cleanup on a case by case basis.
Answer: The other comments here are right on for uninstalling applications, however you may want to try something like Hazel which has functionality for deleting an application's related/support files when you have dragged the app to the trash.
Answer: I've used AppZapper with good results
Answer: I use a one liner borrowed from a user somewhere else on this site, or related sister site, or from macosxhints (I no longer remember the reference or I'd post a link), that I turned into a script (called "uninstaller") and adjusted slightly by changing the rm command to using a safer command line program installed using macports, rmtrash. The user provided bom receipt file should be in /private/var/db/receipts if the application to be removed was installed using an installer and the dev included one. The script will place all files installed into the user's Trash.
<code> #!/bin/bash
 #uninstaller /private/var/db/receipts/com.url.name.of.app.bom
 #uninstall os x application installed with installer -pkg
 #using (user) provided bom receipt
 #place all installed files and directories in user's Trash

 lsbom="/usr/bin/lsbom"
 cd="/usr/bin/cd"
 sudo="/usr/bin/sudo"
 xargs="/usr/bin/xargs"
 rmtrash="/opt/local/bin/rmtrash"

 lsbom -fls "$1" | (cd /; sudo xargs rmtrash -u $USER)
 exit
</code>
Installing MacPorts and rmtrash is simple enough, however, once xcode (for Mavericks 10.9 xcode_5.1.1.dmg) is installed:
<code> curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2
 tar xf MacPorts-2.2.1.tar.bz2
 cd MacPorts-2.2.1
 ./configure
 make
 sudo make install #not war!
 cd ..
 rm -rf Macports-*
 sudo /opt/local/bin/port -v selfupdate
 export PATH=$HOME/macports/bin:$HOME/macports/sbin:$PATH
 export MANPATH=$HOME/macports/share/man:$MANPATH
 sudo port -vsc install rmtrash
 diskutil quiet repairPermissions /
</code>