Can anyone explain why the following code compiles?  I expect it to get an error where the double constant 3.3 can not be converted to int, since I declare the constructor to be explicit.  class A { public:     int n;     explicit A(int _n); };  A::A(int _n) {     n = _n; }  int main() {     A a(3.3); // &lt;== I expect this line to get an error.     return 0; }
What does the explicit keyword mean in C++?
I know there is a method for a Python list to return the first index of something:  &gt;&gt;&gt; l = [1, 2, 3] &gt;&gt;&gt; l.index(2) 1   Is there something like that for NumPy arrays? Given two date ranges, what is the simplest or most efficient way to determine whether the two date ranges overlap?  As an example, suppose we have ranges denoted by DateTime variables StartDate1 to EndDate1 and StartDate2 to EndDate2. I've seen examples like this:   public class MaxSeconds {    public static final int MAX_SECONDS = 25; }   and supposed that I could have a Constants class to wrap constants in, declaring them static final. I know practically no Java at all and am wondering if this is the best way to create constants. My organization is looking at developing mobile applications, we have a wealth of web development resources. There are many factors to consider in making the decision of how to develop this application such as Cost(s), platform support, performance, and maintainability.   But, I have not found any research that actually backs up the assumptions that users prefer the experience of a native app over a hybrid mobile web app (A hybrid app is a HTML5 app distributed in an embedded web view using PhoneGap, etc.).   Some  that native apps are more performant and have a better user experience, but why? Have there been any user surveys or analytics that indicate this user preference towards native? Case insensitive 'Contains(string)' Is there a way to make the following return true?  string title = "ASTRINGTOTEST"; title.Contains("string");   There doesn't seem to be an overload that allows me to set the case sensitivity.. Currently I UPPERCASE them both, but that's just silly (by which I am referring to the  issues that come with up- and down casing).  UPDATE This question is ancient and since then I have realized I asked for a simple answer for a really vast and difficult topic if you care to investigate it fully. For most cases, in mono-lingual, English code bases  answer will suffice. I'm suspecting because most people coming here fall in this category this is the most popular answer.  answer however brings up the inherent problem that we can't compare text case insensitive until we know both texts are the same culture and we know  what that culture is. This is maybe a less popular answer, but I think it is more correct and that's why I marked it as such. Shutdown and User button missing in panel I faced with a problem after update,   I missed 2 buttons from above panel, System menu (including shutdown, suspend &amp; …) and User (including log out &amp; …)  how can I restore them !?... How to set date format when manually inserting date on excel, without changing regional settings? In chat, the short code [metaso] expands to http://meta.stacexchange.com/ (no typo, the missing 'k' is the bug I'm reporting).  (And since this is too short a bug report, I'll note that I think that [metaso] should probably point to .) What is so special about speed of light in vacuum? I will try to be as explanatory as possible with my question. Please also note that I have done my share of googling and I am looking for simple language preferable with some example so that I can get some insight in this subject.  My question is what is so special about $c$? Why only $c$. Its like chicken and egg puzzle for me. Does Einstein reached to $c$ observing light or does he got to light using some number which turned out equal to $c$.   Why is $c$ not relative. If something has zero rest mass like a photon why they only travel at $c$ in vacuum and not with $c+1$ or $c-1$? Is it possible to exclude questions I've already answered from the search criteria? When am I entitled to participate in a stock split? — record date, split date, ex date Stock split announcements usually mention a few dates — record date (&quot;date of record&quot;), split date (&quot;distribution date&quot;, &quot;pay date&quot;, or &quot;payment date&quot;), ex date (&quot;ex-split date&quot;). Examples:  :  Each Apple shareholder of record at the close of business on August 24, 2020 will receive three additional shares for every share held on the record date, and trading will begin on a split-adjusted basis on August 31, 2020.   :  Each stockholder of record on August 21, 2020 will receive a dividend of four additional shares of common stock for each then-held share, to be distributed after close of trading on August 28, 2020. Trading will begin on a stock split-adjusted basis on August 31, 2020.    In the case of the Tesla split, the record date is August 21, the split date is August 28 (Friday), and the ex date is August 31 (Monday). Apple's  provides definitions of these dates:  What is the effective date of the split? There are several key dates. The Record Date – August 24, 2020 - determines which shareholders are entitled to receive additional shares due to the split. The Split Date – August 28, 2020 - shareholders are due split shares after the close of business on this date. The Ex Date – August 31, 2020 - the date determined by Nasdaq when Apple common shares will trade at the new split-adjusted price.  However, further down in the FAQ, there is an explanation that seems to contradict the definition of the record date given above:  What happens if I buy or sell shares on or after the Record Date and before the Ex Date? [...] If you buy shares on or after the Record Date but before the Ex Date, you will purchase the shares at the pre-split price and will receive (or your brokerage account will be credited with) the shares purchased. Following the split, you will receive (or your brokerage account will be credited with) the additional shares resulting from the stock split.  Judging by the Apple FAQ, the way the record date works for stock splits is completely different from the way the record date works for cash dividends. With cash dividends, people who become shareholders of record after the record date are not entitled to the dividends. With stock splits, however, people who purchase shares after the record date (but before the ex date) are entitled to the stock split. Furthermore, for stock splits, the record date comes before the ex date, whereas for cash dividends, the record date comes after the ex date. It appears that I am not the only one confused about this. A quick internet search reveals years and years of confusion regarding the record date for stock splits. An extremely common point of confusion is the apparently incorrect assumption that the record date for stock splits works in the same way as the record date for cash dividends. A few questions:  Am I right that the record date for stock splits works differently from the record date of cash dividends? The only relevant dates for a stock split seem to be the split date (on which I will receive new shares after the market closes), and the ex date (on which I can sell the new shares on stock exchanges at a post-split price). It seems that the record date is completely irrelevant. What is the record date for? From my understanding, the price of the stock will be reduced at the instant the new shares are distributed (on the split date). Is this correct? How to kill the process using the name of the program instead of PID? I started my Python program in the background using nohup as mentioned below -   nohup zook.py &amp;   Now I am trying to kill this process so I did the ps command as mentioned below  root@phxdbx1145:/home/david/zook# ps ax | grep zook.py 16352 pts/6    S+     0:00 grep --color=auto zook.py   But somehow, everytime its PID getting changed, I don't know why. Whenever I do like this -   kill -9 16352   It always say, No Such Process.  And when I do px command again, I see that PID got changed automatically..  So I am not sure how do I kill this process?  Is there any way I can kill the process with the name somehow?  UPDATE:-  This is what I am getting. I did pkill -9 zook.py and then I did ps command as mentioned below and it is shwoing zook.py constantly?  root@dbx1145:/home/david/zook# pkill -9 zook.py  root@dbx1145:/home/david/zook# ps ax | grep zook.py 23870 pts/6    S+     0:00 grep --color=auto zook.py  root@dbx1145:/home/david/zook# ps ax | grep zook.py 23872 pts/6    S+     0:00 grep --color=auto zook.py  root@dbx1145:/home/david/zook# ps ax | grep zook.py 23874 pts/6    S+     0:00 grep --color=auto zook.py  root@dbx1145:/home/david/zook# ps ax | grep zook.py 23876 pts/6    S+     0:00 grep --color=auto zook.py Remove all packages installed from a PPA? I have installed LibreOffice 4 using PPA. I was using LibreOffice 3, then  I had upgraded to LibreOffice 4, because I was somewhat eager to try a new version.   Now since I found that LibreOffice 4 has some issues, including handling my native language, I want to move back to LibreOffice 3.  This question  has already some answers which has some similarity with my above mentioned issue, but it does not solve my problem. This question talks about downgrading from a specific version of LibreOffice, namely from 4.0 to 3.6. The solutions mentioned are not the ones I am looking for. They will work, but the  solutions suggest either downloading .deb files for LibreOffice 3.6 or adding PPA for them. Furthermore, some of the answers put out-of-proportion~(applicable for the solution, however) stress on use of , not general command-line-solution.     I want a general solution without using PPA or downloading .deb files. All I want is to move back from the (higher) PPA version to the (lower) official version.  Anyway, in order to accomplish this, I removed the LibreOffice config directory from my home and then purged LibreOffice from my machine.  sudo apt-get purge libreoffice-*   Then I removed the relevant PPA's using the sudo apt-add-repository --remove command. And then ran sudo apt-get update.  Now, when I try to install LibreOffice using the command  sudo apt-get install libreoffice   I get an avalanche of output about unmet dependencies, something like,   The following packages have unmet dependencies:  libreoffice : Depends: libreoffice-core (= 1:3.5.7-0ubuntu4) but it is not going to be installed (snipped)    If I dig the issue further, by using the command,  sudo apt-get install libreoffice-core   I get    The following packages have unmet dependencies:  libreoffice-core : Depends: libreoffice-common (&gt; 1:3.5.7) but it is not going to be installed                 Depends: libexttextcat0 (&gt;= 2.2-8) but it is not going to be installed                 Depends: ure (&gt;= 3.5.7~) but it is not going to be installed E: Unable to correct problems, you have held broken packages.    Could you please tell me how do I install LibreOffice 3 in my machine?  I am using Ubuntu 12.04 LTS.    EDIT  Before receiving , I was wondering, at this very moment, if I take a fresh computer, and install Ubuntu 12.04, LibreOffice installation will work without a hitch. Then why I can not install LibreOffice in my 12.04 machine today from simple command line?  Then the accepted answer clarified everything. I need to use ppa-purge so that this resets all packages from a PPA to the standard versions released for my distribution.  Basically it is like a way to restore my system back to the way it was before my installed packages from a PPA.  further elaborates the idea.    worked perfectly for me. Actually, this was an education for me since it taught me how do downgrade a package that was added via PPA. And I realized that the answer actually teaches us to "move from PPA installation  of a package to official lower version package." How to install a LibreOffice Language Tools (Spelling Check, Thesaurus...) What are the steps to install the Spelling Check and other language supports for LibreOffice. For example spanish, french, italian, etc.. Breaking an equation cluster that does not fit on the rest of page across two pages Recovering from a move of /home when it's encrypted (ecryptfs) I had a 20GB / partition at work that dual-booted with Windows and it quickly ran out of space. I usually do 20GB / and 160GB (or whatever the rest of the hard drive is) as /home, so I intended on recovering the space Windows was taking up and turning that into /home.  That went fine and I was able to mount the partition and rsync all my files over.  However, I forgot that the partition was encrypted, so now all my files are sitting in /home/.ecrypt and /home/$USER is empty.  How can I recover my files from /home/.ecrypt and move them to /home/$USER?  I followed this tutorial: How to take the gradient of the quadratic form? It's stated that the gradient of:  $$\frac{1}{2}x^TAx - b^Tx +c$$  is   $$\frac{1}{2}A^Tx + \frac{1}{2}Ax - b$$  How do you grind out this equation? Or specifically, how do you get from $x^TAx$ to $A^Tx + Ax$? How do I install MATLAB via the ISO? Verification that $\lim_{x \to a}\frac{f(x)-f(a)}{x-a}$ and $\lim_{h\to 0}\frac{f(a+h) -f(a)}{h}$ are equivalent definitions of the derivative. I wanted to verify that for definition of the derivative it is true that:  $$ \lim_{x \to a}\frac{f(x)-f(a)}{x-a}= \lim_{h\to 0}\frac{f(a+h) -f(a)}{h}$$  If I denote $h=x-a$,  we can  let $x\to a$, this means that $h \to 0$. Also notice that $f(x)=f(a+h)$ $$ \lim_{x \to a}\frac{f(x)-f(a)}{x-a}=\lim_{h \to 0}\frac{f(a+h)-f(a)}{h}$$ As desired. Is the main idea here really just to use a variable substitution? I suppose there is some formal theorem I also use here that when $f(x) \to y$  we can let $g(f(x)) \to g(y)$ if the function $g$ is continuous. I've somehow lost my id_rsa.pub file. I still have my id_rsa file. How do I recover the public key from the private key?  (This question came up after ssh-copy-id was reporting "ERROR: No identities found" while ssh-keygen reported "/root/.ssh/id_rsa already exists". ls ~/.ssh pointed out the problem was having id_rsa but not id_rsa.pub. I found the solution, but it was buried at the bottom of a long post on an Ubuntu support forum.)