Mail reader that displays any mbox file or Maildir

Question: Is there a GUI-based mail reader that I can call with the path to an arbitrary mbox file or Maildir directory? In other words, a mail reader that does not insist on storing all mail in a single place in the file system? I'd like to store mail and other files organized by task or topic, for easier backup and sharing.
Answer: man mutt
<code>-f mailbox
Specify which mailbox to load.
</code>
Comment: Thanks for the reminder about mutt, which I have used in the distant past. But nowadays I am used to GUI-based mail readers, so I don't think I could go back to terminal mode. I modified my question accordingly.
Comment: `-R     Open a mailbox in read-only mode.`
Answer: Balsa (http://pawsa.fedorapeople.org/balsa/) can work with mailboxes (mbox or Maildir) anywhere in the file system. It's not perfect either (opening a mailbox from the command line doesn't work, although there's a documented option for this), but until now it's the best solution I found.
Answer: Evolution allows you to add arbitrary mailboxes in either mbox or maildir format. It will still store its information in its own private store though.
Comment: Not quite perfect, but with a small support script it almost does what I need. Thanks! The solution I am testing consists of setting up an empty directory in Evolution as a Maildir store. Then I have a small script that removes everything from that directory and puts in a symbolic link to the Maildir I want to read. Then it runs evolution. The main limitation is that I can't open two Evolution instances for different Maildirs at the same time.


File field upload in modal/dialog

Question: I have a custom content type with file field as one of the fields. For theming/UI purposes I should make this file field as clickable button. And only when user clicks on it, he/she gets modal window with upload/file browse or file name if there already is a file uploaded.
I've accomplished this with using jQuery Update module and from there with help of jQurey UI Dialog (https://jqueryui.com/dialog/) and custom module with JS code:
<code>(function ($) {
Drupal.behaviors.module_custom = {
attach: function (context, settings) {
//appending button
var $inputButton = $('<input type="button" value="Līgums" id="open_modal" />');
$inputButton.insertAfter($(".field-name-field-file"));
//hiding file upload wrapper div
$('.field-name-field-file').hide();

//initializing modal dialog window
$( ".field-name-field-file" ).dialog({
  autoOpen: false,
  show: {
    effect: "blind",
    duration: 1000
  },
  hide: {
    effect: "explode",
    duration: 1000
  },
  width: 500
});

//launching modal dialog when button is clicked
$( "#open_modal" ).click(function() {
  $( ".field-name-field-file" ).dialog( "open" );
});

  });

}
  };
    }(jQuery));
</code>
This all works from UI/theming perspective but it brakes file upload. When modal window opens and file is uploaded I got error "An unrecoverable error occurred. The uploaded file likely exceeded the maximum file size (8 MB) that this server supports." no matter how small file is (event if it is 1 KB). I suppose this issue is related how AJAX upload is handled. Any ideas what is issue here?
Answer: For sure this is due to some problem with your sever setting, contact your web hosting company and talk with them regarding the issue.
It could be due to ModSecurity that scans incoming http requests for any malicious scripts. There may be an issue with the script causing mod_security to stop the script. ModSecurity is an is an open sourceweb application firewall Apache module, which help in providing an external security layer that increases security, and help in preventing attacks.
In the event that mod_security is causing the error, you will need to contact tech support to have them look at the logs to see what is exactly causing mod_security to flag the uploaded file. You may need to Disable mod_security via cPanel Modsec Manager on your specific domain if there is no work around. Otherwise, tech support will need do this for you.
The other reason could be the size you are allow to upload that can be change in your server setting. It is also important to check apache max_execution_time.
If you have control over your server then you can try to change your php file
post_max_size = 128M upload_max_filesize = 32M max_execution_time = 5000
max_input_time = 5000
memory_limit = 1000M
Source
If not solved then Other Reason May be :
Check the .htaccess or settings.php for conflicting Code
Edit the .htaccess file to see if there are any overrides in the code. Some server configurations allow .htaccess settings to override your file upload size. Comment any code that controls the files upload size and save the changes.
The settings.php file also can hold overrides for the file upload size. Edit the settings.php directly on the server or you can change the settings through the Drupal dashboard by going to Administer > Site configuration > File uploads and updating the settings from there.
Comment: But this does not happen when I do not use modal window.

File field upload in modal/dialog


KDEConnect Indicator in Ubuntu 16.04 does not show up

Question: I have installed kdeconnect along with the indicator and I have noticed that the indicator does not work in ubuntu 16.04 with unity. I have tried to launch it from dash and terminal unsuccessfully.
Based on my troubleshooting I have realised that the OS does not install the required dependencies that would have normally installed in ubuntu 14.04.
Does anybody knows how to make the indicator to work on ubuntu 16.04?
Thanks in advance.
Comment: Same happens in my Ubuntu-MATE 16.04. Can you add the output of the command `indicator-kdeconnect` to your question? Mine is here: http://paste.ubuntu.com/23082514/.
Answer: I have not tried installing on Ubuntu 16.04 but I have on Linux Mint 18 which is based on Ubuntu 16.04. I found that I have to install the kdeconnect-plasma package (which brings a LOT of dependencies with it) to get KDEConnect working.
For those who may not know, open a terminal & type
apt install kdeconnect-plasma

You may have to run the command as root like this
sudo apt install kdeconnect-plasma

Comment: Done that already and it's not working. The devices can ping each others but the indicator does not show up in unity.
Answer: I got results by finding the most recently updated fork of the github project for indicator-kdeconnect, and building and installing it from that source.
Comment: I have compiled it but still, the indicator is not working. Thanks anyway...
Comment: I just have to mention, that indicator shows only when the phone is connected/in range


Is it practical to use a stream cipher in a block cipher mode?

Question: My idea is to use a stream cipher encrypting 16 bytes at a time as a primative block cipher in a mode of operation such as CBC mode.  Is this practical or useful in any way?
Comment: @StephenTouset I couldn't disagree more. I think every subject should have its limits tested. I think every cryptographic concept should be mixed with every other concept at least once to see what happens. Should these untested mixtures be used blindly in critical applications? No, of course not. But I think the moment we stop being creative is the moment we lose innovation. All that being said, one application for using a stream cipher in a block cipher mode is to add an IV to an otherwise IV-less (for lack of a better term) algorithm.
Comment: No, since stream ciphers are very different from block ciphers. $\;$
Comment: Cryptography is not an subject where you should endeavor to be creative. What do you hope to accomplish with such a construct? What shortcoming of a stream cipher are you aiming to overcome?
Answer: The way you propose to use a stream cipher as a drop in replacement for a block cipher is flawed, as the other answer explains nicely.
There is a simple way to convert a stream cipher into a block cipher. In pact, it works for any PRF, regardless of if it is reversible or not.
This presentation perfectly covers how to use a PRG such as a stream cipher to construct a block cipher.
Basically, you use the stream cipher in the following manner:
Take your message m and break it down into an n-bit binary string.
Take your stream cipher $G(k)$ and use it to generate a a stream of length $2 · |k|$. So $G(K) \to K^2$ (output space = double that of keyspace).
Do $k \to G(k)[0]$ and $G(k)[1]$, pick $G(k)[x]$ depending on what the first bit of m is.
Then, compute $G( G(k)[x] )$. You have a message of length two blocks, pick the block corresponding to the second bit of m. Repeat n times.
This can be reversed (decrypted) in the same way Feistel networks are, via the Luby-Rackoff theorem.
Comment: It is not used in practice because there are faster alternatives, but this is not inherently a bad construction, and can have quite practical speeds.
Comment: The question was if it was *practical* not *possible*. Although the answer of  Paŭlo (with alt-gr - shift - 9 u) did not indicate this, it seems possible but not practical. From the same presentation: "Not used in practice due to slow performance".
Comment: It is n times slower than the underlying stream cipher for a block size of n bits. While not as fast as a stream cipher, this isn't bad. Using [these benchmarks for C++ implementation](http://www.cryptopp.com/benchmarks.html), using the streeam cipher Salsa20, then adjusting Salsa20 in the manner described above, we get speeds of between 3 and 7 Mbps depending on the choice of Salsa20 algo, which is quite practical, although obviously slower than an actual block cipher.
Comment: Pretty slow but it does have a configurable block size; that counts for something I suppose. I don't directly see any application, but it is good to get a refresh on Dan's course.
Comment: Actually, my answer didn't say "you can't convert a stream cipher into a block cipher", but "the way of converting which was proposed in the question doesn't work". I'll try to edit it.
Answer: The way proposed in the question to "convert" a stream cipher into a block cipher doesn't work (i.e. is not secure). (Other ways are discussed in Converting a stream cipher into a block cipher and in the other answer here.)
Most stream ciphers (the so-called synchronous ones) work by producing a key stream from a key, which is then XORed with the plaintext to produce a cipher text.
It is important that the same key (or, equivalently, the same part of a keystream) is not used twice, as then it is (more or less) easy to recover the plaintext. If you use only a small part of that keystream repeatedly, like in your proposal, everything breaks down.
$\def\Enc{\operatorname{Enc}}$Let $K = \Enc_k(0)$ the keystream corresponding to one block (16 bytes in your example), so that $\Enc_k(P) = K \oplus P$.
Then using CBC mode with an initialization vector $I$ and a plaintext $P_1, P_2, P_3 \dots P_n$, we get a ciphertext of
$C_1 = \Enc_k(P_1 \oplus I) = K \oplus P_1 \oplus I,$
  $C_2 = \Enc_k(P_2 \oplus C_1) = K \oplus P_2 \oplus C_1 = K \oplus P_2 \oplus K \oplus P_1 \oplus I = P_2 \oplus P_1 \oplus I,$
  $C_3 = \Enc_k(P_3 \oplus C_2) = K \oplus P_3 \oplus C_2 = K \oplus P_3 \oplus P_2 \oplus P_1 \oplus I,$
  $C_4 = \Enc_k(P_4 \oplus C_3) = K \oplus P_4 \oplus C_3 = ... = P_4 \oplus P_3 \oplus P_2 \oplus P_1 \oplus I,$
and so on.
Every second ciphertext block doesn't even depend on the key (but just on the plaintext blocks up to that point and the IV), and from the other ones it is trivial to get $K$ back if some piece of plaintext can be guessed or is known. The original key $k$ is not needed for that.
For a block cipher, we assume it works like a pseudo-random permutation (family), i.e. the result of $\Enc_k(P)$ can not be predicted from $\Enc_k(Q)$, other than same inputs give same results and different inputs give different results. When using a part of a stream cipher in that place, this is obviously not the case.
Comment: Most stream ciphers have an IV input in addition to the secret key input, so that each key stream is unique.  Well designed stream ciphers are secure even if the IV is chosen/controlled by the attacker.  As such, one can use the stream cipher as a pseudorandom function, with the IV as the input and the truncated keystream as the output, and then use a Feistel structure to turn the pseudorandom function into a block cipher (perhaps reserving part of the IV for a round counter to make each round function different).  This however would very likely be extremely inefficient.
Comment: In [Converting a stream cipher into a block cipher](http://crypto.stackexchange.com/questions/712/converting-a-stream-cipher-into-a-block-cipher), this is discussed in a more general way – it looks like there is no way to build a block cipher from just a stream cipher, though if you additionally can use a keyed hash function, it might work. (You'll get a block cipher for much larger blocks, though.)
Comment: @J.D. consider adding an answer to the question linked in my previous comment, if that is not already covered by one of the answers there.


What is the difference between 'I see the walking robot.' and 'I see the robot walking.'?

Question: I want to know the difference between the two sentences.
1. I see the walking robot.
2. I see the robot walking.
I want to know the difference in meaning between the two sentences.
Please, tell me the difference.
Answer: As a noun phrase, a walking robot is a robot that has been designed to walk. As a verb phrase, a robot walking, is a robot that happens to be walking.
So, we can have the following phrases:

The walking robot on the shop floor is currently standing still.
  Look at that robot walking around the shop floor—it must be one of those new walking robot models.

Or, to follow the phrasing in the question:

I see the walking robot walking.
  I see the walking robot standing still.
Comment: Did I not say the same thing? This is unfair . I got no upvotes
Answer: Walking Robot(noun)= A robot that walks
Robot walking is an action.
You see a robot when it's walking
Comment: So what's the difference between the OP's two sentences?
Comment: In walking robot, walking is the main attribute of the robot. That's the only thing it does. Whereas, seeing a robot walking doesn't necessarily mean that it can't do anything else besides walking.


Github integration with git command line

Question: In Vundle for vim, plugins are added with the following syntax:
Plugin 'user/repo'

This works for any github repository, and it makes for a very concise .vimrc.  My question is, is it possible to do this in the git command line.  I'd imagine the syntax would go a little something like this:
git clone user/repo

I tried googling around, but I haven't been able to find anything like this.
Use case for this feature might be if you remember the name of your own repository to clone on someone else's machine, but don't want to spend all the time typing the additional 23 characters to create form the https clone url.
If this doesn't exist, how might I go about writing my own program (Linux) to automatically do this?
Answer: GitHub has a command line tool called hub that has a command with exactly the syntax you've given.  From the hub manual:

git clone [-p] OPTIONS [USER/]REPOSITORY DIRECTORY


Expression of eukaryotic ribosomal DNA

Question: The Wikipedia page for rDNA says "Ribosomal DNA (rDNA) is a DNA sequence that codes for ribosomal RNA" Also, the figure next to it says "The gene segment of eukaryotic rDNA contains 18S, 5.8S, and 28S tracts and forms a tandem repetitive cluster". So, it gave me the impression that rDNA codes for both rRNA and the structural proteins of ribosome. Is that right?
Comment: Wrong. Read about ribosomal protein genes.
Comment: Thanks David! Could you tell me, what exactly is meant by "The gene segment of eukaryotic rDNA contains 18S, 5.8S, and 28S tracts and forms a tandem repetitive cluster; the 5S rDNA is coded separately. NTS, nontranscribed spacer, ETS, external transcribed spacer, ITS, internal transcribed spacers 1 and 2, numbered from 5' end."  in the picture (https://en.wikipedia.org/wiki/Ribosomal_DNA#/media/File:Eucaryot_rdna.png)
Answer: As well as messenger RNA (mRNA) that encodes protein, there are a variety of RNAs that have structural or regulatory roles and do not code for protein. Ribosomal RNAs (rRNA) are one such structural RNA. Like mRNA, rRNA (and other stable RNAs) are  specified by genes in the chromosomal DNA, although the details of their transcription (the RNA polymerase employed and the nature of the promotors) may vary.
The mature eukaryotic ribosome contains three species of rRNA that are analogous to those in prokaryotes — 18S (cf. 16S), 28S (cf. 23S) and 5S (sizes for mammals). However there is an additional 5.8S species in eukaryotes. The questions addressed in the article are: 1. What genes and what transcripts give rise to these mature RNA species? and 2. Is there a single gene for each species or multiple repeated genes? A third, implicit, question is whether the situation in eukaryotes is similar to that in eukaryotes.
The answer to question 2 is given in the phrase "forms a tandem repetitive cluster" — there are multiple copies of the genes for 18S, 28S and 5.8S rRNA, clustered together one after another. These genes are separated ('spaced apart') by regions of the genome that are not transcribed, and are termed non-transcribed spacers (NTS).
(There are also multiple copies of the 5S rRNA gene, although these are only clustered in some species.)
The answer to the first question is that the 18S, 28S and 5.8S rRNA are transcribed from a single gene and are initially present in a single transcript. This is processed by ribonucleases to generate the three mature species. If one compares the sequences of the mature species with that of the gene/transcript one can identify portions of the initial rRNA transcript that are not present in any of the three mature species. These are termed transcribed spacers. The one at the 5′ end of the transcript is termed the external transcribed spacer (ETS), and those that are between the three mature species are termed  internal transcribed spacer (ITS).

The situation in prokaryotes differs from eukaryotes in so far as the 5S rRNA gene is part of the gene/transcript containing the 16S and 23S rRNAs, lying at the 3′ end of this. This is mentioned in the Wikipedia entry for Ribosomal RNA, rather than that for ribosomal DNA, quoted in the question, and illustrated in the figure below taken from the teaching web pages of Ross Hardison at Penn State University. Notice the transfer RNA gene in the transcript between the portions resulting in the mature 16S and 23S rRNAs.
Comment: Thank Dav! You have been very helpful to me. Thank you so much!
Comment: "rRNA are synthesized in a different pathway. In the nucleolus, the rRNAs combine with ribosomal proteins to form the large and small subunits of the ribosome. Ribosomal proteins are synthesized in the cytoplasm and transported to the nucleus for subassembly in the nucleolus. They autoassemble in a long complicated maturation process which ends in the cytoplasm (ER)". https://www.nature.com/articles/35030006 says there's more rRNA than protein in the ribosome, so there are a lot of copies of those few transcripts. Did they succeed in producing ribosomes in-vitro from the separated ingredients?
Comment: @reuns — As I understand it you are asking either one or two supplementary questions. In answer to the question in your final sentence. Nomura reconstituted bacterial ribosomes in 1968 (if I remember rightly) and showed that resistance (or sensitivity — I forget) to streptomycin was a property of one specific protein (S12). People I knew were trying unsuccessfully to do the same thing for eukaryotes in the early 70s, but I imagine (and seem to remember) that was subsequently achieved. As assembly in vivo occurs on the rRNA precursors, the reassembly in vitro is somewhat artificial.
Comment: Tks, also I realize what I said was wrong (for prokaryote) the 30s subunit contains only one single stranded rRNA (secondary structures make it locally double stranded) of 1500 nucleotides each containing about 20 non-hydrogen atoms gives the 30000 rRNA atoms mentioned in the nature article. Thus (for the small subunit) it is about assembling 1 rRNA and 21 proteins which is doable and has been achieved since 40 years. This explains why [the map of the 30s](http://www.msykes.com/science/pdf/SykesMT_2011_AnnRevBiochem_RibosomeAssemblyCofactors.pdf) is described in term of 5' central and 3' parts

Expression of eukaryotic ribosomal DNA


Neutrino power plant

Question: Suppose there is a material that interacts with 50% of high-energy neutrinos. To what temperature such material will heat up naturally here on Earth? What power can be extracted from it?
Comment: I'm concerned that the question violates the "fictional physics" constraint. Above the Z mass, neutrinos *do* interact strongly matter, but that is uninteresting for the purposes of this question because the main neutrino flux through the Earth is at solar energies (which, like reactor energies are a few MeV). The cross-section there is low for very fundamental reasons relating to the mass of the weak bosons and the Fermi coupling constant.
Comment: @DeerHunter Well, reactor neutrinos are not "high energy" in the usual terminology. They are typically a few MeV.
Comment: Have a look at the neutrino slides of this talk: http://users.ictp.it/~smr2246/monday/gaisser-NUSKY.pdf . The numbers are very small there is no energy pool in the high energy neutrino flux and in addition, due to the weak interaction the by products take away most of the energy, except for electron neutrino interactions.
Comment: The obvious use of this material would be putting it around reactor cores, I presume. https://en.wikipedia.org/wiki/Neutrino#Artificial - 185 MW of neutrino energy loss out of 4000 MW thermal output (in a 1.3GW plant).
Answer: If we indeed suppose that such an exotic material did indeed exist, then we just have to consider the flux of solar neutrinos from proton-proton fusion. This is about $10^{11} cm^{-2}s^{-1}$ at about 0.4 Mev each.
So a one-metre square sheet of annixxite, would generate, in Watts:
$$
{1\over2} \times 10^{11} \times 10^4 \times (0.4 \times 10^6) \times (1.602 \times 10^{-19}) = 32.04
$$
So about 30 Watts (a $1m^2$ photovoltaic panel is about 20 times more powerful).
You might like to add in the contribution from high-energy cosmic neutrinos... Their flux is about $100 cm^{-2}s^{-1}$ with energies all over the scale. Let's guess at 10 Gev:
$$
{1\over2} \times 100 \times 10^4 \times 10^{10} \times (1.602 \times 10^{-19}) = 8.01 \times 10^{-4}
$$
So about 0.8 milliwatts and so negligible.
Comment: I like this, the neutrino-to-light energy flux should (for steady state) approximately match the proportion of energy in the fusion process, taken away by neutrinos. We know that's not very much, and that it by all common sense is much below 1: both sources coming from the sun, this rule of thumb can tell you "it's much less than photovoltaic panels" :)
Comment: neutrinovoltaics will work when its cloudy and 24h/day though! Just put the panel on an equatorial telescope mount and rotate. But this tech is a long way off, despite what https://neutrino-energy.com/ might think....

Neutrino power plant


Non-random sampling iid

Question: Suppose I know that 40% of the population are single but my sampling procedure is non-random and skewed towards singles in a way such that in my sample 60% are single. So my data would not be i.i.d. because we do not draw randomly from the population. But would that violate the independence assumption or the identical distribution assumption?
Comment: It is hard to see how any of the components of "iid" might apply to a non-random sample: because it is not random, the concepts of "independent" and "distribution" don't apply at all, rendering "identical" meaningless.  However, by "non-random" some people actually mean "random but with differing probabilities of inclusion."  Could you state the sense in which your data are "non-random"?
Answer: If you are only oversampling specifically for singles, then this is fixable with poststratification or just some weighting. That happens when you select someone not purely random, but you only take into account whether they are single and select based on that. You should read a bit on that, but you can imagine how "weighing" the observations can correct for such well-behaved random oversampling. That would be relatively straightforward. But this only applies if being single or not is the only thing you take into account.
In inferring nationwide vote percentages from polls, pollers often just call a lot of people based on generating telephone numbers. It's somewhat random, but because some people don't answer or have a phone, they end up with skewed results. So not many young people will pick up a fixed phone for example. To correct for this, poststratification is used, see for example http://www.stat.columbia.edu/~gelman/phd.students/park. This is not a simple procedure, because you have to think of all the variables that influence nonresponse and try to correct for those, or at least, make an informed decisions about which ones to take. This requires expertise.
Whether such a thing might work in your case, depends on the way you have selected people. How random is it?
You ask, does this violate independence and identical distribution assumption? If you use a linear regression, a biased sample does not increase dependence between the errors of the samples I would think, but you sample is definitely not identically distributed to the whole population, that's the whole point, so yes, that one is violated.

Non-random sampling iid


Is forward search meant to work from an include file?

Question: I am able to forward search from an emacs buffer containing my top level tex file to sumatrapdf by using the f8 key which is bound to Sumatra-jump-to-line.  If i visit a buffer with a file included in the first buffer Sumatra incorrectly tries to find a PDF associated with that buffer.
Are there any ways to make forward search work from the include file buffer?
Answer: I just tested this on my Emacs/Sumatra combination.  If you add the following to the end of the included file:
<code>%%% Local Variables:
%%% TeX-master: "path-to/masterfile"
%%% End:
</code>
When you do a forward search from the subfile, such as a chapter included in the master file, it should take you to the proper location in the master PDF.  This should also let you compile the master document from the individual .tex files.  This is all assuming that you are using AUCTeX as your LaTeX mode in Emacs.
Edit:  After you add this to your component .tex file you may need to close the file and reopen it in Emacs for AUCTeX to load the local variables.
Comment: That works perfectly and I really should have known that Auctex would have a way to point to the master file. Note to self: read Auctex documentation more carefully.


Is a differentiable (but not $C^1$) function $f: \mathbb{R}^n \rightarrow \mathbb{R}^n$ with invertible derivative everywhere an open map?

Question: Is a differentiable (but not $C^1$) function $f: \mathbb{R}^n \rightarrow \mathbb{R}^n$ with invertible derivative everywhere an open map?  I know that if we assume the function is $C^1$, then this is a consequence of the inverse function theorem (or a step on the way to proving the inverse function theorem).  I've convinced myself no counter-example exists if $n = 1$, but I haven't been able to prove it or come up with a counter-example in the case $n = 2$.  I've spent more time trying to come up with a counter-example, mostly trying variants involving $x^2 \sin(1/x)$.
Answer: The result holds in every dimension.
For the sake of simplicity, we assume that $f(0)=0$ and $f'(0)=Id$.
There is a continuous function (with vector values) $\epsilon$ such that for each $x$, $f(x)=x+|x|\epsilon(x)$.
Let $R >0$ be such that if $|x| \leq R$, $|\epsilon(x)| \leq 0.5$.
Let $0<r<R$, let $z$ be such that $|z| < r/4$.
It is easy to prove that for any $x$ with $|x|=r$, $|f(x)-z| > |f(0)-z|$.
So consider $g(x)=f(x)-z$ and $h(x)=|g(x)|$ for $|x| \leq r$.
Assume that $g$ does not vanish, then $h$ is differentiable, without critical points, and does not reach its minimum on the border of the disc, which is impossible.
So $g$ does vanish, ie, for all $z$ with $|z|$ small enough, there is some $y$ with $|y| \leq 5|z|$ sich that $f(y)=z$.
In other words: if $V$ is a neighborhood of $0$, so is $f(V)$, which ends the proof.
Comment: Perhaps it's easier to understand the argument if expressed this way: consider $h(x) = |g(x)|^2$. It reaches its minimum somewhere on the disk $B(0, r)$. It can't be at the boundary, so its gradient must vanish at some point. Computing the gradient, this shows that either $g$ has a zero at that point, or that the differential of $g$ is singular. The latter does not happen by assumption.
Comment: Thank you very much for the answer.  Unfortunately I only had time to skim what you wrote now.  May I ask, how do you know that h has no critical points?  But I might be able to figure this out for myself in a few hours when I come back to the computer.  Thanks again.
Comment: Since $|\cdot|$ is a submersion from $\mathbb{R}^n\backslash \{0\}$ to $\mathbb{R}^{+*}$, if $\nabla h(x)=0$, then $g'(x)=0$, ie $f'(x)=0$, a contradiction.
Comment: I do like your formulation better, it is much nicer. Do you mind if I edit it in (and credit you :) )?
Comment: Thank you again!  As far as I can tell, this is very similar to part of the proof of the inverse function theorem in Munkres's "Analysis on Manifolds".  I was suspicious at first because that proof requires $C^1$, but as far as I can tell, your use of the function $\varepsilon(x)$ replaces the part of Munkres's proof where $C^1$ is used.
Comment: @Mindlack Sure, as you wish!


Java 7 on PowerPc

Question: I have several powermac G4 computers running leopard, and would like to use them as a test environment for my Java 7 based applications. I have looked online a bit but could not find any way to install java 7 on a powerpc computer. I wouldn't mind using linux or other alternative operating systems if necessary to get java 7, but would prefer to stay on os x if possible,
Answer: I have successfully built and run Java 7 on my Mac OS X 10.5.8 PPC, exactly OpenJDK version 1.7.0-internal-landonf_2009_12_16_12_54-b00, using these instructions.
Comment: Thanks for sharing an OS X method. I'd be nice if someone would create an installer for Leopard.
Comment: I have bundled my [JDK7 build](http://dfiles.eu/files/xgo71ltfy). I hope it will run on your Mac OS X PPC.
Answer: PowerPC is still an official architecture for Debian. The package openjdk-7-jre is availible for powerpc and should run your Java 7 code.
Comment: This is about Leopard, not Debian.
Comment: @niutech - the question says "I wouldn't mind using linux"
Comment: @Mark - then "but would prefer to stay on os x if possible". It is possible, I have added the answer.
Comment: Debian has dropped official support for PowerPC based Macs.
Answer: Unfortunately, Java 7 is only available on OS X for Intel-based Macs running Mac OS X 10.7.3 (Lion) or later.
The Mac OS X System Requirements page for Java 7 states:

Mac OS X System Requirements
Intel-based Mac running Mac OS X 10.7.3 (Lion) or later.*
  Administrator privileges for installation
  64-bit browser
  Note that installing Java on a Mac is performed on a system wide basis, for all users, and administrator privileges are required. You cannot install Java on a single-user basis.
A 64-bit browser (Safari or Firefox, for example) is required to run Java 7 on Mac OS X. 32-bit browsers such as Chrome do not support Java 7 on the Mac platform.
*Users with Mac OS X versions 10.6 and below should go to Software Update under the Apple menu to look for updates.

There are some very old releases available for PowerPC at SoyLatte, but these may not be suitable.
Answer: Powermac G4 is 32bit PowerPC/PPC based. PPC32 is only being maintained for Linux nowaday, but the good news is that the 32bit Java 8 from Azul Systems works on PowerMac G4 with Linux. We got OpenHab to work on this configuration.
This is not yet a free download but ask nicely enough and often enough and they make make it available.

Java 7 on PowerPc


Will a Lion Fortran Binary work on Mountain Lion?

Question: I want to install a fortran binary from here GCC wiki GFortran binaries, but the binary for Mountain Lion is not yet available.  Would the binary for Lion work, or would it be a terrible mistake to install it?
Answer: It should run just fine on Mountain Lion, and it should not do any damage to the Mountain Lion machine.
There is only one way to know for sure if it will work - installing it. I didn't want to do this because I am not sure how to test it, but will say that it shouldn't be a terrible mistake to install.
It will either not run (due to various things like Gatekeeper, minor API changes between Lion and Mountain Lion, etc) or not even install. Otherwise, a Mountain Lion specific build either uses new APIs, etc.
Finally, quickly browsing around online it looks like depending on your install there may be an issue error trying to exec 'f951': execvp: No such file or directory". This site offers a fix, which looks like you need to uninstal the current Xcode, remove references to previous compilers like gcc, cpp, gfortran, and then reinstall Xcode, gfortran, and gcc.
Comment: are you sure the errors you mention are not fro the HPC GCC?  the site you link specifically mentions it...
Comment: They may be. I didn't install this because I have no way to test. I just wanted to let you know what I found with gfortran on ML, and that was one of the only things in searches. I say install it and try it out.


Custom Forms Solution for SharePoint Online

Question: Looking for feedback from the community. has anyone use a forms solution (3rd Party) that is not too expensive and can do following: (The PowerApps solution is coming out to be too expensive with the number is users)
- Create Custom forms
- Ability of do some branding
- Has capability to built calculated fields
- Can pull data from lookup list
- Can be saved as pdf
- has e-signature capability
- has password protection capability
- works great with MS Flow/Automate
thanks for your feedback!
Answer: You can use OOB tools/ methods to customize form:

InfoPath
Custom .NET SharePoint Forms
SharePoint Forms Designer

To get other third party tools for form solution, you can check the following articles:
5 alternatives to InfoPath for SharePoint forms
Top Infopath Forms Replacements For Sharepoint
The Best Free Forms Solution for SharePoint
Third Party Tool disclaimer:
While Microsoft supports and encourages open-source software development, it does not provide technical support for the softwares from third parties, nor does it guarantee that the software will work as described.
Answer: If you are using SharePoint online, the quickest and easiest solution is Microsoft Office Forms.  It doesn't have a ton of branding/customization options, but it is quick and easy to get up and running and integrated with Power Automate (Flow).
On the other end of the complexity spectrum, you can create a custom list to hold the information you want, then develop an SPFx custom webpart to control the input.  This could have a high initial development cost, but there are no additional per user recurring costs.  The data in your SharePoint list then has all the normal connectivity points to Power Automate.


Who is Hari? Is it the only entity named before OM?

Question: We have 108 names of Vishnu which all starts with OM(AUM). But we call it Hari (and then) OM.
Comment: Exactly where did he say it? I can only find one reference to Hari in the books you quote. Vivekananda writes "One of the names of the Lord in Sanskrit is Hari, and this means that He attracts all things to Himself."
Comment: In Hare Krishna first word Hare can refer to Goddess Radha, just like in Sri Narayana first word Sri refers to Goddess Lakshmi.
Comment: Well, I think I remembered it incorrectly. It is Hari which is the only entity named before OM(AUM). We have 108 names of Vishnu which all starts with OM. But we call it Hare (and then) OM. Let me know if I need to change the question. Thanks Swami Vishwananda and brahma jijnasa.
Answer: When we say "BhurbhuvasuvarOm iti digbandaha" during Puja/Japa for creating a protective circle around us, then also the (Vyahtri) portion "Bhurbhuvasuvar" comes before Om.
For example, from this page:

sauḥ – aiṁ – klīṁ –  hrīṁ – śrīṁ  astrāya phaṭ (open up the left palm
  and strike it three times with index and middle fingers of the right
  hand)
bhūrbhuvassuvaromiti digbandhaḥ|  (using right hand thumb and middle
  fingers and click clockwise around head)

So, HarihiOm is not the only such case.
Also, starting a recital with Harihiom is not a universal standard it may be practiced by only some Sampradayas. So, the practice is Sampradaya specific.

Who is Hari?

It is another name for Lord Vishnu just like Hara is another name for Lord Shiva.
Comment: Is this the same OM(Aum) that we are talking about? Also, this is used in a sentence and not after any entity. I am concern if Hari the only entity.
Comment: No it is not the only entity.. that's what I have shown in the answer and yes it is the same OM only @karanpatel
Comment: Can you name the entity in your sentence? Also, a link which may have the entity brief detail.
Comment: In the answer itself I have given a link. Pls open it and see. The entity is the Vyahriti traya i.e **bhurbhuvasuvar** -- this portion also comes before OM. @karanpatel


Why are THP 1/2W resistors bigger than 1/4W while 1206 resistors are all equal?

Question: How come THM (through hole mounting) 1/2 W resistors are bigger than their 1/4 W or 1/8 W counterparts, while SMD 1206 1/2 W and 1/8 W resistors are equally sized?
Comment: Have a look at the operating temperatures maybe?
Comment: @Transistor I guess SMD will be hotter?
Answer: SMD 1206 defines the flat/projected size of the component / in other words, it defines the footprint.  But they do have differences when their wattage is different.
How much heat the component can handle not only depends on size, it also depends on other factors: component matérials used, board layout, ... .
I could find SMD 1206 resistors that can handle 2W.  The manufacturer indicates that the actual power depends on how the device is actually mounted.  The 2W device has an aluminium core which helps conducting the heat to the board and possibly a heat sink.
The SMD resistor is directly on the PCB so it is "easier" to transfer heat from the resistor to the PCB than it is for the THT resistor.  In addition, the PCB layout can be designed to improve heat dissipation.
There is of course also the issue of pricing - when you are using THT you typically care less about space occupation, and increasing the size of the THT resistor to cope with double the power, is a relatively small increase in the 2D space taken on the board. (The axial resistor is cooled by the air flow, unless you put a heatsink on it using a clamp for instance).
Answer: The power rating is a combination of higher tolerance , lower tempco and higher max operating temp. Thus these variables define the Pmax.  I found that% tolerance is the biggest factor due to max temp R error.  The exceptions increase cost dramatically for high temp, low tolerance error, low temp. coefficient. They are not all the same.
So you may find 1/8W 0.1% to 1/4 1/3 to   1/2W 1% and many options in between with 1/4W as the standard rating for this size.
You will find a 1/2W rated 1206 part with <=0.1% tolerance and it will have exotic materials and cost >100x as much while operating much hotter at max power.
These are the standard sizes.
<code>Code    Length (l)      Width (w)       Height (h)          Power
    US      Metric  inch    mm      inch    mm  inch    mm      Watt
    0201    0603    0.024   0.6     0.012   0.3 0.01    0.25    1/20 (0.05)
    0402    1005    0.04    1.0     0.02    0.5 0.014   0.35    1/16 (0.062)
    0603    1608    0.06    1.55    0.03    0.850.018   0.45    1/10 (0.10)
    0805    2012    0.08    2.0     0.05    1.2 0.018   0.45    1/8 (0.125)
    1206    3216    0.12    3.2     0.06    1.6 0.022   0.55    1/4 (0.25)
    1210    3225    0.12    3.2     0.10    2.5 0.022   0.55    1/2 (0.50)
    1218    3246    0.12    3.2     0.18    4.6 0.022   0.55    1
    2010    5025    0.20    5.0     0.10    2.5 0.024   0.6     3/4 (0.75)
    2512    6332    0.25    6.3     0.12    3.2 0.024   0.6     1
</code>
**
Read more http://www.resistorguide.com/resistor-sizes-and-packages/
Answer: It's simple, the through hole resistors have the leads connected to the board, the smd resistors have pads which are directly in contact with the body of the resistor and the body itself is pretty much in contact with the board.
That allows them to dissipate heat by transmission way more efficiently, plus when they are black they also dissipate by radiation fairly good, due to the smaller surface area and the fact that they are directly over the board they dissipate a little less by convection
now the transmission depends on the material of the body too, so if it's made lets say of aluminum it will be able to handle more heat than one made of ceramic, also if the film that actually makes the resistor can handle higher temperatures the heat dissipation capacity will be also bigger, as le_top said though it will depend on the layout too, its not the same to have a trace 1mm wide connected on each side than a 0.1mm one
in a through hole you mostly dissipate by convection, meaning that you must increase the surface area
Comment: I think what the OP might be asking is why the 1/8W 1206 exists at all and what about it does not allow it to dissipate as much power as the 1/2W 1206.
Comment: air gap under the resistor and the FR-4 epoxy-fiberglass
Comment: Any ambient rise needs to be power derated due to self heating in enclosure.


In FEA, why is the stress at an interior angle (<180 deg) is a singularity and an exterior angle (>180 deg) it is not?

Question: If you observe the attached figure, I heard some FE analysts say that the stress at the interior corner is always a singularity (but its intensity depends on the value of interior angle) but the stress at an exterior corner is not. I cannot understand why. Some even say that the theoretical value at an exterior angle is supposed to be zero. My question is that is it always the case? Does the exterior angles of a geometry can never result in a singularity, for any type of loading and boundary condition applied to the geometry? Reason being? And if sufficient mesh refinement is provided, so will the stresses at the exterior angles result in values close to zero?
Answer: Fair warning, I'll be anthropomorphizing and using metaphors throughout this answer.
It helps to think in terms of how the applied force "flows" through the element. It "wants" to get from the top where it is applied over to the fixed support. To do so it has to go down and to the right (though doing so actually means going left at first).
The force likes to take the shortest possible path to the support, so it tries to make a sharp turn at the corner. This basically creates a "traffic jam" near the inner corner while leaving the outer corner much freer.
The following image is a sketch trying to show these "force lines" and now they flow from the top to the support. Notice how they bunch up near the internal angle.

You could draw as many lines as you want and you'd get arbitrarily close to the external corner, but the "density" of lines near it will be much lower than near the internal corner.
Comment: +1 for the flow lines
Comment: So the exterior corners are never a singularity, rather it be for any type of loading and boundary condition (ofcourse assuming they are not applied at the exterior corners themselves). How would a solver know about this that the load paths are supposed to get 'traffic jammed' at the interior corner and not at the exterior corner? Or the the traffic jam analogy is developed afterwards, i mean after seeing the behavior of the stresses in FEA?
Comment: @RameezUlHaq: The concept of "flow lines" (don't remember the real engineering term for them) is very old, certainly much older than computers. As to how to calculate the stress distributions, I honestly have no idea how it was done before computers. FEA solvers simply apply analytical methods to find the deformed configuration which presents the lowest work generated (or something, I don't remember my energy methods theory very well anymore). And since work is a function of distance travelled, the deformed configuration is such that the flow lines try to stick to the inner corner.


How to approach a project naming activity for Junior Prom?

Question: I've been given a school project where I have to come up with a name for our junior prom. I already made some up like "rendezvous under the stars," but I can't think of anything else. How should I approach this project?
Answer: This is loosely about PM, not 100% off topic.  Part of major projects where some serious material organization transformations take place, PMs would deploy a concept called Organization Change Management.  This focus is all about preparing the organization to change so that resistance to such change is minimal.
One of the critical success factors is stakeholder participation, meaning the change is more likely to be accepted and enabled if key stakeholders had something to do with the change, even if only a little.
With your project, the theme or name of it needs to resonate with your stakeholders, including students, teachers, and likely parents.  So your problem is not a lack of imagination on your part but the method you are using to generate ideas and then to narrow it down to the chosen one.  This is NOT a solo event, not if you want the name to resonate and be accepted.
So what you need to do is come up with some ideas of how to get stakeholder involvement.  Focus groups?  Surveys?  A friendly competition?  All of these?  What you want to do is derive a method of name identification, testing across a representative sample of your stakeholder population, and then choosing.  Implement that and the name will be the result and will likely be accepted by majority of your stakeholders.


Get project custom fields Project Online using Javascript

Question: I am currently working on Project Online 2013 and I am developing an app with use of Enterprise Custom Fields where I need to list all the custom fields that have project entity type alone (not task or resources).
I could get the list of all Custom Fields by PS.ProjectContext.get_customFields(). But could not filter it by project entity type.
Could anyone  please recommend how to write a Javascript(or REST/jQuery) method to retrieve the project custom fields?
Answer: To retrieve custom fields of a specific project you can use the below endpoint
<site url>/pwa/_api/ProjectServer/Projects('<<guid>>')/CustomFields


upgrading python

Question: My dedicated server is centos with Cpanel. I need to upgrade python for eyeD3 program. How do I upgrade to latest python stable? From cPanel or SSH?
Answer: A good practice for this is installing another version of Python side by side with the system provided one, python on CentOS (and most Linux distros) is very heavily tied with the operating system, upgrading the system one to a new version is not recommendable.
I normally add a new python repo and point my program to use that version of python instead, there's an amazing guide for installing python side by side (you'll need shell access for this), check it out here http://www.question-defense.com/2009/12/25/how-to-install-python-2-6-on-centos-5-without-breaking-yum
Answer: If you use CentOS, yum provide update python. You can update Python to >= 2.5 at your own risk.
I recommendation install new version Python in /opt.
Comment: @ahmet CentOS uses python 2.5 for a lot of internal things. yum is one of the biggies. Basically, its par for the course that you just install a version of python from source in the /opt/ directory. It ends up being cleaner all around.
Comment: what risks are possible ?
Answer: The best way to do it is via SSH.
Download the latest python version or use Yum (or yum search for specific packages). After that add the new version of python to PATH if necessary, and configure the application to use that path (of the newly installed python).
Here how you can download python and install it:

upgrading python


What are the requirements and use cases to have an eclipse headless application?

Question: I would like to know what generic requirements are there to have Eclipse headless application. Also what are the different generic use cases which will be helpful to have headless application.
Regards
Anand
Answer: The question is the same as; why would you want to have a commandline version of a program over one with a GUI?
In my experience, if the RCP is supposed to be run on unix/linux OS then those users will typically want to be able to use it in headless mode. Also if you can see a usecase where you'd want to script the use of your program.
To retrofit headless mode to an existing RCP can be very difficult, since you ideally want a very strict Model-view-controller separation to allow for the same functionality to be performed regardless if the action came from clicking in a GUI or sending in an argument on commandline.
When I was doing this, we created three eclipse projects, one with the core business functionality, one with the headless functions, and one with the GUI components. The project that handled headless functionality was rather small (~200 lines). But we had been programming the core parts from day one with this requirement in mind.
We had issues with some dependencies to Eclipse UI components (such as the workbench) that we could not get rid of in the headless version, but I hear this is better in Eclipse version 4.
Answer: A common situation is when you want to use some Eclipse APIs as a service. Let's say, for example, you need a "code completion provider" for your web application. You could rely entirely on javascript or just call the Eclipse API that fulfills your needs. You can also create an application as a bundle to be deployed in an OSGI console.


Where should I place my questions on which there may be multi-religious answers?

Question: I have a question that requires answers from multiple religions. Where do I ask it? There should be a place for inter-religious dialogue. BTW I have read this: Why not have religion.stackexchange.com instead of Christianity/Judaism/Biblical Hermeneutics?
Comment: Well, if you read that question, what did you think about it? How does it relate? Just dropping a related link in your question doesn't give much context.
Comment: Kindly add why you are downvoting this question
Comment: Best bet would be philosophy stackexchange.
Comment: @NathanTuggy, my question is _where do I ask it?_ Dropping the link implies that there is possibly no explicit answer.
Answer: You can't ask a question about all religions in one place, and the answers in the question you linked explain why such a site isn't practical.  You can, however, tailor your question for each community whose input you want, and ask it there.  (Don't just cross-post the same question; that tends to produce poor quality and is discouraged.)
On each site ask your question from the perspective of that religion.  You'll then have to synthesize the results, same as for any project that requires answers from multiple communities (or multiple questions in the same community).
Comment: It wouldn't be the same question, it would be a series of similar questions: "Does Shia Islam teach A?" "Does the Catholic Church teach A?" and so on.
Comment: Correct me if I am wrong ... _On each site ask your question from the perspective of that religion_ would practically (at least in some cases) mean overriding the _Don't just cross-post the same question_.
Comment: Or "what does (group) teach about X?" or "according to (group) how do you (achieve some outcome, e.g. gain salvation)?".  (Beware of "too broad", of course.)
Answer: If a question has several "right" answers, it's probably not a good fit to the Stack Exchange model generally.
If, however, what you're after is a philosophical insight into, say, the similarities and/or differences between particular religions on a particular issue, then Philosophy might be the place.
Here's what you can ask about there, and what you can't


How much damage does a coffin do?

Question: I've been looking through various supplies to buy for my campaign as a Bloodrager/Fighter and I found that coffins are a thing. So I'm wondering how much damage would it do? would it be like a greataxe/greatsword or a club?
Comment: The Meat Man Commeth! Welcome to rpg.se, take the [tour] and visit the [help] for more information. Are you looking to use a coffin as your primary weapon or simply want to know how much damage it does should you decide to use it as one? Either way we should be able to answer, good luck and happy gaming!
Answer: It's an improvised weapon
The pathfinder 1e Core handbook has all the details in the weapons section, you mainly get a -4 penalty when using it.
Catch offguard and improvised weapon mastery feats can help you minimize the penalities for using it and even help you get a little edge with them.
Deciding how much damage does takes a bit of a subjective approach, as the manual says you should apply the damage of a similar weapon of the same size.
Taking in account that a coffin is a blunt weapon that's bigger than the person that's suposed to be inside it, I'd, personally compare it to a large  greatclub, this would make it do 2d8 blunt damage, and would add an additional penalty of -2 for the size difference with the wielder thus giving you a -6 total penalty should a medium creature use a medium sized coffin as a weapon.
As using a two handed weapon that's a size larger than the character is not possible, you'd need to either get 2 levels in the Titan Mauler barbarian archetype, or look for a way to consider the character a large creature (like using the enlarge person spell).
Comment: (I'm not clear on if this answer is taking into account that a typical Medium creature just can't wield a Large greatclub.)
Comment: I do agree that the question could be improved by pointing that out (and maybe even pointing to a/some of the way(s) it is actually possible), but I don't think it's necessary per the scope of the question.
Comment: You might also note that a wooden coffin will quite probably break if used as a weapon. It isn't designed for that at all, and is a fair bit weaker than a solid piece of wood the same size.
Comment: @John Dallman not only that, if you would try to wield a coffin as a wepaon you'd basically be a siting duck, since you need to hold it like a ram and it's not balanced at all. But I think those details are up for GM interpretation.

How much damage does a coffin do?


Can a UK research council-funded PhD change direction to fall outside the scope of the RC?

Question: I am in my first year of a four year PhD programme in the UK. It's through an interdisciplinary doctoral training centre (DTC), and is funded by the EPSRC (who funds a certain number of places at the DTC, who then accepted my application and so granted me the funding). So the funding is administered by my university, but it comes from EPSRC and I am still bound by their funding rules.
This year I am undertaking a number of relatively short research projects, and in September I will submit a project proposal for the remaining three years. It has been stressed many times by my programme directors that the main project must fall within EPSRC's remit, and that the proposal will likely be checked by the EPSRC. For my short projects I have been careful to satisfy this requirement and have made direct reference to EPSRC guidelines in my proposals to ensure that I stay within the remit.
My question is this: suppose I submit a project proposal which gets approved by the EPSRC and I start the project sincerely intending to follow through on my proposal. But over the course of the project various unforeseen issues and distractions the project changes, and moves into an area not covered by my funding research council. Will this cause me problems down the line? Or once I've cleared the hurdle of the project proposal, will I be in the clear, funding-wise?
Comment: I think this is a question where you need to consult either the senior people administering the DTC at your university, or a programme officer at EPSRC, or both.
Answer: It is a serious problem if the unforeseen issues make it impossible to fulfill the terms of the grant.  You will need to work with your programme directors about that.
If the unforeseen issues and distractions merely make you prefer not to fulfill the terms of the grant, than too you could ask your programme directors.  But don't be surprised if they prefer that you do fulfill them.


How make a port appear open with an nmap scan

Question: To avoid someone knowing which port are open on my machine, I thought it would useful to open all unused port so that the nmaper is unable to identify which port are really open.
How make a port appear open with an nmap scan
Comment: Something needs to open/listen to the port ; https://unix.stackexchange.com/a/270647/117549 is an example, but you seem instead to be asking how you could have something listening to ~65,000 ports, correct?
Comment: Related question: https://unix.stackexchange.com/questions/399626/why-is-kali-linux-so-hard-to-set-up-why-wont-people-help-me
Answer: You have got labrea for people scanning your network IP addresses, have not tested it for a good while now.

labrea - Honeypot for incoming IP connection attempts
labrea creates virtual machines for unused IP addresses in the
  specified block of IP addresses. LaBrea sits and listens for ARP
  "who-has" requests.
When an ARP request for a particular IP goes unanswered for longer
  than its "rate" setting (default: 3 seconds), labrea crafts an ARP
  reply that routes all traffic destined for the IP to a "bogus" MAC
  address. labrea sniffs for TCP/IP traffic sent to that MAC address and
  then responds to any SYN packet with a SYN/ACK packet that it creates.

To install it in Debian, do:
sudo apt-get install labrea

As for answering in some designated common ports, and providing alerts, you have got psad, though as far as I remembered it was not about listening all ports.
You can always run honeypots, though I have not tested them for a good while.
Nevertheless, and entering the realm of my opinion, I prefer to drop all connections to unused ports, the less services that are exposed to the outside, the less avenues for attacks.
Comment: Off topic, further references: "TCP/IP Illustrated, vol I - the protocols", 2nd edition, Stevens et al;
Answer: On Linux, you can use iptables's socket match to have iptables know if a TCP port is in use. Combined with the xtables-addons's TARPIT target (also using LaBrea's concepts) this can make look open any unused TCP port automatically, while leaving actual open ports working as usual. For UDP there's probably not much difference between an open port not answering and a dropped port so I'm not talking about it anymore (just drop udp by default).
Rules:
iptables -N openclosed
iptables -A openclosed -p tcp -m socket --nowildcard -j RETURN
iptables -A openclosed -p tcp -j TARPIT --honeypot
iptables -I INPUT -j openclosed

Caveats: every connection makes a conntrack entry used by netfilter. This solution can thus make a lot of conntrack ressources become used. Bear this in mind when the system is receiving an attack rather than a scan. While TARPIT can be used without netfilter (using NOTRACK), I'm not sure socket can, and anyway this can't be kept as simple as above. Adding the --honeypot option to TARPIT makes it cheaper for the scan if not sending data, but also for netfilter; feel free to remove it. Also --nowildcard might or might not be suitable for router usage (but it's ok anyway for a local usage in the INPUT chain).


How is Sugar kosher?

Question: BH
How is sugar kosher? Someone told me that when they make sugar they use different ingredients to separate the sugar from everything so how is the whole process kosher after getting past all the ingredients? And what are the ingredients used?
Answer: The Star-K goes through the manufacturing process and concludes there really aren't any serious concerns. The main steps and ingredients are quite simple.
https://www.star-k.org/articles/kashrus-kurrents/662/raising-cane-the-kashrus-and-other-halachic-issues-of-cane-sugar/
They raise, and then put to rest, a few minor factors that may be involved, and if any remain in the final product, would be in minute, invisible, untaste-able quantities that would be "nullified":

Apparently, the sugar had been passed through the [milk] protein in
order to purify it and the impurities were left behind in the protein.
This finding was reported in several Jewish sources with
sensationalistic titles such as, "Sugar May Now Require Round the
Clock Supervision."
However, there is "nothing new under the sun." Over 500 years ago,
there was a letter in the responsa of the Radbaz in regard to sugar.
At that time, milk was added to sugar during its production...
Due to various considerations, including the fact that the
amount of milk was actually minuscule, the Radbaz was lenient.
The logic of the Radbaz holds true for the Chinese sugar as well since
the amount of milk used is very insignificant. Additionally, this has
not been found to be a widespread occurrence overseas, and is not
being practiced in the U.S. at all. Furthermore, a filtering aid does
not end up in the final product....
Other issues do commonly arise in this day and age. For instance, the
carbon decolorization at many cane sugar refineries occurs through the
use of bone-char particles. These are electrically-charged pieces of
burnt cattle bones. While one might assume that this would be a
kashrus concern, in truth it poses no problem. This is because the
bones are completely burnt, thereby undergoing a chemical change which
converts them to pure carbon. In addition, the bone-char is completely
unfit for human consumption and, therefore, may be used in processing
the sugar. The bone-char is subsequently removed from the sugar and is
not chemically evident in the final product.
The anti-foaming agents that control the froth which is created in the
refining process may sometimes be of non-kosher animal origin.
However, the amount used is insignificant and would be batel,
nullified, in the sugar. Therefore, the kosher consumer may purchase
any pure cane or beet sugar even without kosher certification.

If you have a specific concern, feel free to add it into the question.
Comment: FYI. I once wanted  to calibrate a viscometer. This is done by measuring the viscosity of sugar solutions of various strengths. I asked where I could obtain the purest sugar. I was told to go to the grocer's shop.

How is Sugar kosher?


Is there an opens source library to generate public/private keys in angular/ionic?

Question: I am not sure this is a SO question but I have been searching for a library similar to keypair or libsignal that allows you to generate public/private keypairs in angular and ionic. I am trying to create an end-to-end encrypted application using angular and ionic on the client side. I have tried Keypair but it comes with a polyfill warning and has not been updated for years. I have also looked at libsignal client for typescript but it looks like a node implementation. Maybe there's another solution to what I am trying to do using angular/ionic. I just want to create a public/private keypair at login or on request...send my public key to the server where others can grab it encrypt a small text and ..save the encrypt text on the server where I can grab in and decrypt in on my client?  any suggestions would be greatly appreciated.
Comment: Just so you know, one of the flags in SO is precisely *"Asking for recommendations about [...] software libraries"*, so yeah, sorry but this is not an SO question.
Comment: @S. Dre ....I suspected so.....I will ask a specific question on one of the libs I am trying.
Comment: Check [Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/). I see a lot more "which X would you..." type of questions there
Answer: You can use node-forge
<code>rsa_generateKeyPair() {
    let pair = Forge.pki.rsa.generateKeyPair(2048, 0x10001)
    return {
      private: Forge.pki.privateKeyToPem(pair.privateKey),
      public: Forge.pki.publicKeyToPem(pair.publicKey),
    }
}
rsa_decrypt(key:string, data64:string) {
    let privateKey = Forge.pki.privateKeyFromPem(key) ;
    let data = Forge.util.decode64(data64) ;
    return privateKey.decrypt(data) ;
}
rsa_crypt(key:string, data:string) {
    let pubKey = Forge.pki.publicKeyFromPem(key);
    let data64 = Forge.util.encode64(pubKey.encrypt(data)) ;
    return data64 ;
}
</code>
Comment: I tried to install this before...but it gave some problems....I will get back to it and post the actual issues.


WAI-Aria state for active widget

Question: Is there a state to show that an widget is active. For example a user tabs in a listbox and navigate with up and down keys  through the items. Is there a state for the listbox that shows the user is in it?
Answer: No, generally the user agent would be able to determine that through the DOM and the focus or active events. If for some reason you were wanting to be inside a list but not focused on an item, you could set aria-selected to false.
http://www.w3.org/TR/wai-aria/states_and_properties#aria-selected
Answer: Checkout the wai-aria authoring guide for widgets. It will tell you what you need per widget. Depending on the widget you do want to set the tabindex and aria-selected among other things.
http://www.w3.org/TR/wai-aria-practices/

WAI-Aria state for active widget


path connected subspace $A$ of $X$, $ i:A\to X$ inclusion. Why is the induced map of $i$ on homology injective?

Question: X is a topological space and $A\subset X$ is a path-connected subspace of X and $i:A\to X$ is the inclusion. I want to know, why the induced map of i on singular homology of dimension zero over $\mathbb{Z}$, namely $H_0(i)=(i)_0:H_0(A)\to H_0(X)\; [v]\mapsto [i(v)]$, is injective.
My first thoughts are: if i consider the pair $(X,A)$, i have a long exact sequence
$$\ldots\to H_{n+1}(X,A)\overset{\delta_n+1}{\to}H_n(A)\overset{(i)_n}{\to}H_n(X)\overset{(j)_n}{\to}H_n(X,A)\overset{\delta_n}{\to}H_{n-1}(A)\to\ldots$$ with $\delta_n$is the boundary map and $j:(X,\emptyset)\to (X,A)$ is the inclusion map on pairs and $(j)_*$ is the induced map of j. I consider the section of the sequence:
$$\ldots H_1(X)\overset{(j)_1}{\to} H_{1}(X,A)\overset{\delta_1}{\to}H_0(A)\overset{(i)_0}{\to}H_0(X)\overset{(j)_0}{\to}H_0(X,A)\overset{\delta_0}{\to}0$$.
Why $(i)_0$ is injective? I only know: $(j)_0$ is surjective, because $Im(j)_0=H_0(X,A)=ker(\delta)_0$ But i need to know, why $ Im(\delta_1)=ker(i)_0$ has to be zero, but i don't know why. Could you help me?  Furthermore i know: $H_0(A)\cong\mathbb{Z}$ and $H_0(X)\cong \mathbb{Z}^{\text{|path-connected-components of X|}}$. But i don't know how to continue...Regards
Answer: Sometimes, you actually have to look at the topology.
A chain $c$ in $H_1(X, A)$ is a collection of edges (with coefficients, but those will turn out to be irrelevant); the boundary is a collection of pairs-of-points in $A$. Since $A$ is path connected, for each such pair we can find a path in $A$ that connects them. The sum of all these paths, with the appropriate coefficients, has boundary equal to $\partial c$. Hence $\partial c = 0$ as an element of the homology group $H_0(X, A)$. Since the map before it in the exact sequence is a zero map, $(i)_0$ must be injective.
Small hint: nowhere in your reasoning did you use the path-connectedness of $A$, so it was clear to me that it had to be part of the story. (Esp. when you consider the case where $X$ is the unit interval and $A = \{0, 1\}$ is its boundary: in this case, the map is not injective, but that's because $A$ is not connected.)
Comment: thank you. i have a question. what do you mean with "pairs-of-points"? i have problems with the boundary map $H_1(X,A)\to H_0(A)$ from the snake lemma (to understand this map). But the main argumentation here seems to be reasonable for me.
Comment: Take a single 1-simplex $c : I \to X$; its boundary is the 0-chain $c(1) - c(0)$. We can think of that as a pair of points in $X$ (one with a coeff of $+1$, one with a coeff of $-1$). For a more general chain, you get multiple simplices, with different coefficients, but each contributes a "pair of points" like this.
Comment: ah okay. i was not sure if you mean something different (something in relation to a pair of spaces) but now i understand. Thank you
Answer: The long exact sequence is not really helpful here. What we need to do is look at chain groups. Any two 0-chains in $A$ of the form $1f$ where $f$ is a constant map are homologous and map to a generator when we pass to homology. 0 chains of the form $1(i\cdot f)$ generate the direct summand in $H_0(X)$ corresponding to the path component containing $A$. Therefore a generator of $H_0(A)$ is mapped to a nonzero element in $H_0(X)$, so since the groups are free abelian the map is injective.
Comment: hi. yesterday i was tired.. could you explain the last sentence/ the last conclusion, why the map is injective if the generator of $H_0(A)$ is mapped to a nonzero element in $H_0(X)$ and the groups are free abelian?
Comment: @Teddy Specifically the generator is mapped to a generator of a direct summand, but any nonzero element generates an infinite cyclic subgroup. If the map were not injective the image would be finite.


When I open my camera everything disappears

Question: I opened up the camera via FN 0 (because I am using a laptop), and the entire set disappears from sight but when ever I exit it, it is all still there.
I am new to the software so please excuse my mistake
Comment: The layer with your objects seems to not be selected when you activate the camera (on the bottom, right side to "global"). I think if you just click it, the scene will show. I don't know why it is deactivated though when you press 0.
Answer: That's actually very easy to explain.
The "0" you are pressing is the shortcut for Layer 10! That means you are NOT switching to camera view, but actually changing the layer from 1 (which contains all your geometry) to 10 (which contains nothing). That's why you see ... nothing.
To solve it. Check layer 1.

Make sure you press either what is the equivalent of NUMPAD 0 on your laptop or check "Emulate Numpad" in User Preferences.

Now your Number Row will act as your Numpad.
A final option without any hotkeys:

I hope this solves it for you.
Answer: At the bottom of your 3D viewport, there are some boxes. These are your layers. It seems your camera is on layer 10 and your 3D objects are one layer 1. Go to layer 1, press shift+A and choose camera. This should add a camera onto layer 1.
Select your old camera on layer 10 or in the overlay tab and delete it. It doesn't show a circle in layer 10 so there may be some vital information missing in your current camera so it's better just to add a new one.
You can move your new camera on layer 1 into position in two ways. Press Numpad 0 to go into camera view then press shift+F and move it around with the Q, W, E, A, S, D keys or in your scene, press N to open properties tab and look for "Lock camera to view" and navigate normally. Remember to uncheck it once you're happy.
Another option is select Layer 1 and shift+select Layer 10 and try pressing Numpad 0 for camera view. I don't know why Layer 10 shows no objects though. My guess is there was some information deleted.
If there's nothing wrong with your current camera, click on layer 10, select your camera and press "M" and click on Layer 1. Now your camera is on the same layer as your scene.
Hope that solves it!


How does a one-sided glass work?

Question: How does a one-sided glass work? If seen from the outer side, we can see through thinking it is transparent, while if seen from the inside, the glass acts as a mirror. How?
Comment: If you like this question you may also enjoy reading [this](http://physics.stackexchange.com/q/19043/2451) Phys.SE post.
Answer: A one way mirror isn't really a one way mirror. It lets the same amount of light through in both directions. It works because one side of the mirror is light while the other is dark.

Suppose you're on the light side looking at the mirror, and suppose that the light side is 99 times as bright as the dark side. Finally assume the mirror lets through half the light and reflects half the light.
The light from the dark side hits the mirror and half gets through, so the (relative) intensity passing through the mirror is 0.5%. The light around you (in the bright room) hits the mirror and half of it reflects back, so the (relative) intensity of your reflection is 49.5% or 99 times greater than the light from the dark room. Since the human eye isn't good at dealing with large contrasts, your reflection completely swamps the light from the dark side and you can't see through the mirror - all you can see is your own reflection.
If you're looking at the mirror from the dark side excatly the opposite argument applies. The light passing through the mirror from the bright side has an intensity of 49.5% while your own reflection has an intensity of 0.5%. The result is that you can see through the mirror but you can't see your own reflection.
Comment: thanks for the answer! Maybe a silly question: But would it be vice versa if the lamp/bright light and darkness would be each on the other side?
Comment: @Ben yes, the mirror is symmetric. If you put swapped the light and dark sides in my diagram the "one way mirror" would now be working in the opposite direction.

How does a one-sided glass work?


If i don't use Ad Support Framework for rev mob what will happen

Question: i added AdSupport framework to my iPhone application since I wanted to use rev mob ads (as we can see in installation instructions http://sdk.revmob.com/ios) . Now the application runs well for iOS 6.0 but crashes for 5.1.1 since 5.1.1 does not have Ad Support framework. So i removed add support frame work and built pn iOS 5.1.1 . Now application does not crash and adds are also working . Is it
not clear to me how removing Ad Support framework are impacting the the advertisements. If it is not impacting why have rev mob mentioned it in their documentation to add it.
Answer: You should keep the AdSupport framework in, as the rev mob code is probably conditionally checking for it where required.
What you're probably doing is strong linking the library, whereas you should be weak linking it. Strong linking a library (the default) means it is marked as being required, and thus won't run on iOS 5 (as the library doesn't exist). Whereas when you weak link a library it is optional, and will happily run on older iOS versions (but you need to make sure you conditionally check for the library when you call any of its APIs).
To weak link a library, open up your project's Build Phases settings panel, and in the drop-down to the right of the AdSupport library change it from 'Required' to 'Optional'.
Answer: You have to change AdSupport library from 'Required' to 'Optional'.
The AdSupport library has been included in the iOS 6, which include new and important features useful for ad networks, like RevMob: http://developer.apple.com/library/ios/#documentation/DeviceInformation/Reference/AdSupport_Framework/_index.html#//apple_ref/doc/uid/TP40012658


Desoldering Epoxied Components

Question: What is the best way to desolder epoxied surface mount components without damaging the pad? I have tried using hot tweezers at 400C, but the epoxy never melts. It is the epoxy under each small component, not over several components.
Comment: My work has done it as a rework process, we used acetone to dissolve the epoxy / soften it up enough to then remove the part under high temperature. The components were not saved, only the board. Although acetone tends to dissolve everything over time such as solder mask, FR4 etc.
Comment: Is it the (usually red) adhesive under the component or is the board covered with (usually clear) conformal coating?
Answer: Epoxy "potting" cannot usually be melted. You need to chip away at it. See How to remove "glue block" from PCB? However heat may help soften it so that it's easier to chip away.
If you can figure out what type of epoxy it is, an appropriate chemical solvent might work. For some epoxies, you can find good removers that preserve the stuff under, but it depends a lot on the epoxy used. E.g. this remover can even preserve biological samples, but it's for the epoxy used in electron microscopy. More aggressive, general purpose removers like methylene chloride or "Circa 1867" paint stripper will also damage electronic components and the board.
Answer: Epoxy resins are not very resistant to steam or hot water. They absorb it, and then the polymer network is disrupted by hydrolysis.
Since most electronics will not be damaged by prolonged heating to 100°C, and certainly not all will be harmed by immersion in water, the gentlest method (if the components will allow it) would seem to be to boil the PCB in water for between about half an hour and several hours. This should soften the epoxy enough for it to be removed. Doing this under pressure (e.g. in a pressure cooker) will be even more effective. Be aware that the PCB itself is probably made of epoxy resin, so don't try this on PCBs without solder mask.
If you have a source of copious hot steam, like a steam cleaner, this will also work, and avoids the need to immerse the entire PCB.

Desoldering Epoxied Components


Set product's category based on its current category children

Question: I have a lot of products on database, and every single one has a single category asociated, now I want to assign every category parent linked with its current category children. For example, in the case of sunglasses, I would like to associate the "Accesories" categories to it, because the current category of sunglasses is "Eyewear", because is the category child of "Accessories". I could do this with 5 or 10 products, but I have hundreds, so I want to do this by code, my little problem now is I can't identify the table with the category parent-children association.
Answer: You can find category parent-children association in table catalog_category_entity in column path. It show full category tree path: category ids joined by / delimeter.
At screenshots you can find Living Room category with id 22. At the first screen tree in admin side. And at the second path in db table.
Answer: The table I was looking for is catalog_category_entity. The table has a parent_id field (a self referencing foreign key) and a path field, which has its complete category tree separated by slashes. This is all the information I need in order to write my code.


Can other players donate things to my museum, or can I prevent them from doing so?

Question: I want to complete all the collections in my museum on my own.  Can other players donate to my museum?  Is there any way I can have the museum only accept my donations?
Answer: Players cannot donate to a museum that is not part of their own town. As such, the only way that someone else aside from your town mayor can donate to your museum is if you create another resident who lives in your town and donate that way.
No one can donate to your museum while they're visiting you because it's not their own town, so you don't have to worry about trying to "block" them from doing so.
Comment: That makes sense.  I was worried because it shows the name of who donated each item.
Comment: @OrigamiRobot Yeah, that's just so you can keep track if you have more than one resident in your town.
Comment: @user9983 "I was worried because it shows the name of who donated each item" it is kind of funny because nobody really checks who donated it and let's say 3 to 5 years down the road, nobody really even start the game up any more, so who really would care? But I can see if you want to donate yourself for the sake of completing the task yourself -- on your own and not by any random people who visit you (such as visitors who come up to sell vegetable and randomly go into your museum and donate)


In the context of the Unit Circle why is tan$(\theta)$ defined as $\tan(\theta)=\frac{\sin (\theta)}{\cos (\theta)}=\frac{y}{x}$?

Question: I understand why the circular functions $\sin(\theta)=y$ and $\cos(\theta)=x$, but why does $\tan(\theta)=\frac{\sin (\theta)}{\cos (\theta)}=\frac{y}{x}$? Is there any particular reason  why $\tan (\theta)$ is defined as the ratio of $\sin (\theta)$ and $\cos (\theta)$?
Furthermore why does the tangent line specifically touch the Unit Circle at the point $(1,0)$ (presumably this leads on from how $\tan(\theta)$ is defined)?
Answer: The tangent is orthogonal to the line which goes from the center to the point on which you want the tangent.
As this point is $$(\cos(x),\sin(x))$$ the tangent. will be $$(-\sin(x),\cos(x))\cdot t+(\cos(x),\sin(x))$$
You can easily visualize this using an CAS like Mathematica, taking as input
<code>Manipulate[
 ParametricPlot[
 {
  {Cos[Pi*t],Sin[Pi*t]},
  {Cos[x], Sin[x]} + {-Sin[x], Cos[x]}*t
 },
{t, -1, 1}],
{x, -Pi, Pi}]
</code>
gives you a slider where you can go through every angle. If you like I can make some pictures.
A picture
What i am essentially doing is drawing at first the circle, than i take a point on the circle which is $(\cos(x),\sin(x))$. From here I make a line in the direction of $(-\sin(x),\cos(x))$. This essentialy is a line of the form $a t + b$ but here $a$ and $b$ are vectors.
Comment: Congrats for making sense of the question, +1.
Comment: @DominicMichaelis I don't understand your answer, the tangent should have the form $y=at+b$ where $a$ and $b$ are real!
Comment: that doesn't in every case (for example try to give the tangent of the point x=1 in that form. @SamiBenRomdhane
Comment: Why is it that the tangent should be orthogonal?
Comment: Also furthermore how did you derive (−sin(x),cos(x))⋅t+(cos(x),sin(x))?
I'm sorry this is just a little confusing to me, a bit more explanation would help, thank you.
Comment: the confusion in your writing, you shoule explain that the tangent is $t.\vec u+A$ where the vector $\vec u$ is $(-\cos x,\sin x)^T$ and the point $A$ is $(\cos x,\sin x)$
Comment: The tangent must be orthogonal to the graph, else it would not be a tangent. Two vectors are orthogonal iff the scalarproduct is zero. for a 2 dimensional vector this can be easily done by just swapping the entries and adding a - at one of them.
Comment: I don't have mathematica, pictures would be appreciated, thank you!
Comment: @Assad I hope it is better now
Answer: Edit:  Personally I prefer all the other answers, here's another way to think about it if you want more ideas
If $x^2 + y^2 = 1$, then $2x + 2y \frac{dy}{dx} = 0$
Re-arranging, $\frac{dy}{dx} = \frac{-x}{y}$.  As you say, $\cos \theta = x$ and $\sin \theta = y$, giving you the slope of a tangent line as $- \cot \theta$.  You can then use the equation: $$y - \sin \theta = - \cot \theta (x - \cos \theta)$$
Answer: Take a point $\,(\cos x_0\,,\,\sin x_0)\,$ on the unit circle, and assume $\,\cos x_0\cdot\sin x_0\neq 0\,$ (otherwise the question is almost trivial) , so the slope of the radius in the circle to this point is
$$\frac{\sin x_0}{\cos x_0}$$
Since the tangent line to the circle in the above point is perpendicular to the radius at that point, the tangent line's slope must have slope
$$-\frac{\cos x_0}{\sin x_0}$$
So now you have a point on the tangent line and its slope: calculate its formula.
Comment: No, when $\,\sin x_0=0\,$ then we're either on $\,(1,0)\,$ or on $\,(-1,0)\,$ and it's *almost* trivial the tangent lines there are the vertical lines $\,x=1\, $(resp., $\,x=-1\,$ ) . My answer does *not* cover these cases, that's why I assumed what I did.
Comment: When $\cos(x_0) \cdot \sin(x_0)=0$ this is not trivial take $\cos(x_0)=1$ and try to give the tangent with your method
Answer: I copied this image from http://www.sagemath.org. It helped me understand what all of the trig ratios represent.
Answer: From the article $148,150$ of The elements of coordinate geometry, by Loney, the equation of the tangent of the circle $x^2+y^2=a^2$ at $(x_1,y_1)$ is
$$xx_1+yy_1=a^2$$
As you have already identified, any point on the circle can be $(a\cos\theta,a\sin\theta)$ where $0\le \theta<2\pi$
So, the equation of the tangent becomes $$xa\cos\theta+ya\sin\theta=a^2\implies x\cos\theta+y\sin\theta=a\text{ as }a\ne0 $$
For the Unit Circle $a=1,$ So, the equation of the tangent becomes $x\cos\theta+y\sin\theta=1$


Hayflick's limit and cell division

Question: Suppose the Hayflick's limit of a cell is 10 and it divides 10 times.  At this point, it undergoes differentiation.  Is it possible for it to undergo dedifferentiation at this point?
Answer: I don't think so naturally. I think the general stream of the progeny goes stem cell => pluripotent cell => progenitor cell => specialised cell.

Hayflick's limit and cell division


What are the alternative solutions for easy One Handed navigation?

Question: The super-sized smartphones of this era make the user stretch their thumbs to reach touch targets on the top. The one-handed mode does not really solve one-handed reachability as it shrinks the screen making it harder for the user to see the content. How might we redesign smartphone Interfaces to solve reachability concerns consumers face?
Comment: I am new to UX, Hence the question :) @straya
Comment: No ideas of your own to bring to the party?
Answer: I would say there is still a lot of room for R&D here. Some have tried and may have not succeeded to get the pattern in the hands of the masses for reasons other than it being a competitive approach to gesture input.
The Floating Action Button on Android facilitates easy access to actions in the easiest to reach part of the screen. When extended, a range of actions can be accessed through the same mechanism and some swipe gestures. Prolonged usage of that pattern will yield Repetitive Strain Injury, a topic not yet commonly associated with mobile phone usage but a present and growing danger none-the-less.
FAB is terrible for left-handers, however, so I would propose that a similar pattern that can somehow determine the hand the user wishes to use and adapts to it could provide a better solution for "one handed" usage.
There is a potential to leverage other sensors and input devices to provide an array of inputs, enough to say navigate a menu in order to access more, and all quite easily accessible with a single hand:

volume control,
gyrometer,
accelerometer,
compass,
squeeze sensor,
light sensor (covering the phones sensor to action something).
Comment: Thank you so much for your insights. If I am to take the Whatsapp interface and redesign it to facilitate one-handed usage, as you mentioned FABs would be difficult for Left-hand users, can bottom navigation substitute the top interface functions; displaying the main function as icons from Settings and the search icon.  Not sure if that would work. Will like to know your insight regarding the same.
Comment: I also read about the repetitive strain that can affect the carpal tunnel region of the wrist due to over-stretching of thumbs for navigating larger phones but there are not a lot of researches to back this up, Even though I somehow agree with it as my mom faced carpal tunnel wrist strain due to excessive use of her phone and Doc advised her to not use her phone for a while.
Comment: Sure, bottom navigation is another common UX pattern as Juliano Braz stated in his Answer. It and FAB aren't designed to provide an entire suit of controls however - I think there's plenty of room for you to try and build upon them to do that!
Comment: There's also arthritic problems which don't even need stretching to exacerbate - just the same repetitive gestures or even certain gestures (that is where offering multiple ways to accomplish the same task can benefit the user). Where it is possible to minimise the dependency on user input one can make marked gains in mitigating against UX that achieves health problems.
Answer: I prefer use bottom navigation, it's more accessible because the fingers are closer to the bar
https://material.io/components/bottom-navigation


Cooking pots overheated

Question: I was boiling water in two pots, presumably stainless steel. I got distracted and the pots completed overheated and dried. After cooling down the pots, I find them both have brownish grey residual inside (I don't care about the outside), and one of the smells strange. Are they still safe to use? Thank you!
Comment: Could you post a picture of the pots? The residue could just be minerals that was in the water, but it's hard to tell without a picture.
Comment: A vinegar scrub'll usually take care of that crud.
Comment: Thank you guys for your help!  Sorry I did try to download pix but not able.
Answer: Yes, they are still safe to use. You aren't going to be able to heat them to the point where the metal starts breaking down — at least, not without starting a fire.
Your only concern might be if your pots have a nonstick coating, which can be damaged above temperatures of 500 F and begin emitting noxious fumes. According to DuPont:

The fumes that are released by overheated [Teflon coatings] can produce symptoms referred to as "polymer fume fever" — flu-like symptoms that are relatively quickly reversed in humans.

The residue you're seeing is likely just some mineral deposits that, as mentioned, can be removed with vinegar or other food-safe solvent.

Cooking pots overheated


Why are my brushes see-through in Hammer/CS:GO?

Question: I'm making a map for Counter Strike: Global Offensive, but I am having this issue with a part of the map. One of my brushes is weird and see-through in game.
I have no clue what is causing it or how I can fix it. Does anyone know what's going on, and how I could fix it?
Comment: @Superdoggy The question is ontopic. Hammer is the official mapping tool for Source, so it's part of the development process for games based on the Source engine. IOW if you started working on a game based on Source, you'd most likely design the levels as well as events & related scripts in it.
Comment: I don't think this is a game development question. My guess is that the guys at gaming.stackexchange.com might know.
Comment: @Superdoggy it's map making (level design), so I would guess it has it place here... The other place would probably be on the the valve technical support...
Comment: That being said, it could use an edit to include w/e settings OP is using in Hammer and w/e else. A screenshot isn't very helpful.
Comment: @AlexandreVaillancourt It looks more like a bug report of a Valve FPS game, how does debugging a game engine from a single picture have to do with game development? I'd compare it to a question like "I found a glitch with unity3D, here's a picture, can you fix it?" Anyway, I agree with you though on the technical support point, that probably would be where this fits best.
Comment: What's the texture you're using? Certain textures have holes in them, or are designed to be see-through (such as windows).
Comment: What are the brush's dimensions in Hammer?
Answer: I think it's because those are 'dentils' (an architecture element.  As such, they are spaced apart.  They're supposed to go under a ledge.  Google images of dentils.  Oh, also, look at the file name and see if THAT is named 'dentil'.  That'll tell you.
As a workaround I'd put a background behind it.


Python Scrapy how to save data in different files

Question: I want to save each quote from http://quotes.toscrape.com/ saved into a csv file (2 field : author, quote). One other necessity is to save these quotes in different files seperated by the page they reside. ie : (page1.csv, page2.csv ...). I have tried to achieve this by declaring feed exports in custom_settings attribute in my spider as shown below. This, however, doesn't even produce a file called page-1.csv. I am a total beginner using scrapy, please try to explain assuming I know little to nothing.
import scrapy
import urllib

class spidey(scrapy.Spider):
    name = "idk"
    start_urls = [
        "http://quotes.toscrape.com/"
    ]

    custom_settings = {
        'FEEDS' : {
            'file://page-1.csv' : { #edit: uri needs to be absolute path
                'format' : 'csv',
                'store_empty' : True
            }
        },
        'FEED_EXPORT_ENCODING' : 'utf-8',
        'FEED_EXPORT_FIELDS' : ['author', 'quote']
    }

    def parse(self, response):
        for qts in response.xpath("//*[@class=\"quote\"]"):
            author = qts.xpath("./span[2]/small/text()").get()
            quote = qts.xpath("./*[@class=\"text\"]/text()").get()
            yield {
                'author' : author,
                'quote' : quote
                }

        next_pg = response.xpath('//li[@class="next"]/a/@href').get()
        if next_pg is not None:
            next_pg = urllib.parse.urljoin(self.start_urls[0], next_pg)
            yield scrapy.Request(next_pg, self.parse)

How I ran the crawler: scrapy crawl idk
As an added question, I need my files to be overwritten as opposed to being appended like when specifying -o flag. Is it possible to do it without having to manually check/delete preexisting files from spider?
Comment: It will be possible in the upcoming Scrapy 2.4: https://github.com/scrapy/scrapy/pull/4512
Answer: Saving your items into a file named after the page you found them in is (afaik) not supported in settings. If you wanted to achieve this, you could create your own functionality for that with python's open function and csv.writer in your parse method. An alternate option would be to write an item pipeline which manages different item exporters for different files.
What you can do with settings however is limit the number of items in a file with the FEED_EXPORT_BATCH_ITEM_COUNT setting, which is supported since of Scrapy version 2.3.
Overwriting instead of appending to a file can also be done since of Scrapy 2.4. In FEEDS you can set overwrite to True as demonstrated shortly.
If you were to replace your custom_settings with the following, it would produce files with 10 items each named page- followed by the batch_id, which starts with one. So your first 3 files would be named page-1.csv, page-2.csv and page-3.csv.
    custom_settings = {
        'FEED_EXPORT_BATCH_ITEM_COUNT': 10,
        'FEEDS' : {
            'page-%(batch_id)d.csv' : {
                'format' : 'csv',
                'store_empty' : True,
                'overwrite': True
            }
        }
    }

Implementing as pipeline
If you wanted to implement this using an item pipeline, you could save the page number you are on in the dictionary you return, which then gets processed and removed by the item pipeline.
The pipeline in your pipelines.py (based on this example) could then look like this:
from scrapy.exporters import CsvItemExporter

class PerFilenameExportPipeline:
    """Distribute items across multiple CSV files according to their 'page' field"""

    def open_spider(self, spider):
        self.filename_to_exporter = {}

    def close_spider(self, spider):
        for exporter in self.filename_to_exporter.values():
            exporter.finish_exporting()

    def _exporter_for_item(self, item):
        filename = 'page-' + str(item['page_no'])
        del item['page_no']
        if filename not in self.filename_to_exporter:
            f = open(f'{filename}.csv', 'wb')
            exporter = CsvItemExporter(f)
            exporter.start_exporting()
            self.filename_to_exporter[filename] = exporter
        return self.filename_to_exporter[filename]

    def process_item(self, item, spider):
        exporter = self._exporter_for_item(item)
        exporter.export_item(item)
        return item

To your spider you would then need to add a routine to get the page you are on as well as setting the pipeline in your custom_settings, which you could do like the following:
import scrapy
from ..pipelines import PerFilenameExportPipeline

class spidey(scrapy.Spider):
    name = "idk"
    custom_settings = {
        'ITEM_PIPELINES': {
            PerFilenameExportPipeline: 100
        }
    }

    def start_requests(self):
        yield scrapy.Request("http://quotes.toscrape.com/", cb_kwargs={'page_no': 1})

    def parse(self, response, page_no):
        for qts in response.xpath("//*[@class=\"quote\"]"):
            yield {
                'page_no': page_no,
                'author' : qts.xpath("./span[2]/small/text()").get(),
                'quote' : qts.xpath("./*[@class=\"text\"]/text()").get()
            }

        next_pg = response.xpath('//li[@class="next"]/a/@href').get()
        if next_pg is not None:
            yield response.follow(next_pg, cb_kwargs={'page_no': page_no + 1})

However, there is one issue with this. The last file (page-10.csv) stays empty for reasons beyond my comprehension. I have asked why that could be here.