For a long time I have been wondering about the existence of many shells in GNU/Linux. To make the question a bit focused I have used only three shells - bash, dash and zsh.   From wikipedia articles  ,  ,  and other sources arguably, the modern bash seems to be the father of all shells.   There doesn't seem to be any coherent story which shares how all the shells started at various parts of time. Can anybody help out here sharing the motivations of various developers at specific points of time and issue they were trying to solve?
I've seen the phrase "sh compatible" used usually in reference to shells. I'm not sure if it also applies to the programs that might be run from within shells.  What does it mean for a shell or other program to be "sh compatible"? What would it mean to be "sh incompatible"?  Edit: This question asking the difference between bash and sh is very relevant:   I'd still like a direct answer to what it means to be "sh compatible". A reasonable expectation might be that "sh compatible" means "implements the Shell Command Language" but then why are there so many "sh compatible" shells and why are they different?
LaTeX Error: Option clash for package xcolor Can a university revoke one's degree for his minor misconduct? Does there exist a continuous bijection from $(0,1)$ to $[0,1]$? Of course the map should not be a proper map. Remove all files/directories except for one file I have a directory containing a large number of files. I want to delete all files except for file.txt . How do I do this?  There are too many files to remove the unwanted ones individually and their names are too diverse to use * to remove them all except this one file.  Someone suggested using   rm !(file.txt)   But it doesn't work. It returns:  Badly placed ()'s    My OS is Scientific Linux 6.  Any ideas? Entire function and the series of its successive derivatives I recently came across the result that if $g$ is holomorphic in a neighbourhood of a point $z_0$ and  $$\sum_{n=0}^{\infty }{g^{(n)}(z_0)} $$ converges then $g $ is an entire function. Now, my doubt is if the above series is absolutely convergent then can we say something more about $g$, like say $g$ is a polynomial? I could not find any non-polynomial  entire function( I tried with functions like $e^z$, $\sin z $, et al), whose successive derivatives converge absolutely as series. Any help please? java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuterFilter Behaviour of printf when printing a %d without supplying variable name I've just encountered a weird problem, I'm trying to printf an integer variable, but I forgot to specify the variable name, i.e.  printf("%d");   instead of  printf("%d", integerName);   Surprisingly the program compiles, there is output and it is not random. In fact, it happens to be the very integer I wanted to print in the first place, which happens to be m-1.  The errorneous printf statement will consistently output m-1 for as long as the program keeps running... In other words, it's behaving exactly as if the statement reads  printf("%d", m-1);   Anybody knows the reason behind this behaviour? I'm using g++ without any command line options.  #include &lt;iostream&gt; #define maxN 100 #define ON 1 #define OFF 0  using namespace std;  void clearArray(int* array, int n); int fillArray(int* array, int m, int n);  int main() {     int n = -1, i, m;     int array[maxN];     int found;      scanf("%d", &amp;n);      while(n!=0)     {         found=0;         m = 1;         while(found!=1)         {             if(m != 2 &amp;&amp; m != 3 &amp;&amp; m != 4 &amp;&amp; m != 6 &amp;&amp; m != 12)             {                 clearArray(array, n);                 if(fillArray(array, m, n) == 0)                 {                     found = 1;                 }             }             m++;         }          printf("%d\n");          scanf("%d", &amp;n);     }      return 0; }  void clearArray(int* array, int n) {     for(int i = 1; i &lt;= n; i++)         array[i] = ON; }  int fillArray(int* array, int m, int n) {     int i = 1, j, offCounter = 0, incrementCounter;      while(offCounter != n)     {         if(*(array+i)==ON)          {             *(array+i) = OFF;             offCounter++;                }         else          {             j = 0;             while((*array+i+j)==OFF)             {                 j++;             }             *(array+i+j) = OFF;             offCounter++;                    }         if(*(array+13) == OFF &amp;&amp; offCounter != n) return 1;         if(offCounter ==n) break;          incrementCounter = 0;                while(incrementCounter != m)         {             i++;             if(i &gt; n) i = 1;             if(*(array+i) == ON) incrementCounter++;          }            }      return 0; } A friend of mine misplaced his passport while staying in Jeju island. Normally I would advise him to just travel to Seoul, get an emergency passport from his embassy and fly back home without issues, but I know that Jeju island has a special immigration regime.   Are there any immigration checks on the way from Jeju island to Seoul? If not, can one travel that route without a passport? A charged particle undergoing an acceleration radiates photons.  Let's consider a charge in a freely falling frame of reference.  In such a frame, the local gravitational field is necessarily zero, and the particle does not accelerate or experience any force. Thus, this charge is free in such a frame. But, a free charge does not emit any photons. There seems to be a paradox. Does a freely falling charge in a gravitational field radiate? Within 300 km of Tokyo: Where for flora, landscape, nature? How do I find my follower if and when they leave me? I had parked my follower at an inn with a bunch of valuable items that I didn't want to carry. I guess I have been out a bit too long as this message appears:      Your follower tires of waiting and leaves.    There have been other situations where my follower has mysteriously disappeared as well.  How can I find my follower when they get up and leave or disappear into thin air? Testing for coefficients significance in Lasso logistic regression [A similar question was asked  with no answers] I have fit a logistic regression model with L1 regularization (Lasso logistic regression) and I would like to test the fitted coefficients for significance and get their p-values. I know Wald's tests (for instance) are an option to test the significance of individual coefficients in full regression without regularization, but with Lasso I think further problems arise which do not allow to apply the usual Wald formulas. For instance, the variance estimates neded for the test do not follow the usual expressions. The original Lasso paper:  suggests a bootstrap-based procedure to estimate the coefficients variance, which (again, I think) may be needed for the tests (section 2.5, last paragraph of page 272 and beginning of 273):  One approach is via the bootstrap: either $t$ can be fixed or we may optimize over $t$ for each bootstrap sample. Fixing $t$ is analogous to selecting the best subset (of features) and then using the least squares standard error for that subset  What I understand is: fit a Lasso regression repeatedly to the whole dataset until we find the optimal value for the regularization parameter (this is not part of the bootstrap), and then use only the features selected by the Lasso to fit OLS regressions to subsamples of the data and apply the usual formulas to compute the variances from each of those regressions. (And then what should I do with all those variances of each coefficient to get the final variance estimate of each coefficient?) Furthermore, is it correct to use the usual significance tests (for instance Wald's test which makes use of the estimated betas and variances) with the Lasso estimates of the coefficients and the bootstrap-estimated variances? I am fairly sure it is not, but any help (use a different test, use a more straightforward approach, whaterever...) is more than welcome. According to the answers  I suspect inference and p-values just cannot be obtained. In my case, p-values are an external requirement (although the use of L1 regularization was my choice). Thanks a lot EDIT What if I fit an OLS logistic regression using only the variables selected by a previous run of the Lasso logistic regression? Apparently (see ),  There's no need to run the model again after doing cross-validation (you just get the coefficients from the output of cv.glmnet), and in fact if you fit the new logistic regression model without penalisation then you're defeating the purpose of using lasso  But what if I do this with the sole purpose of being able to compute p-values while keeping the number of variables low? Is it a very dirty approach? :-) Best way for a 'forgot password' implementation? Is it possible to call a function whose name is stored in a string in vbscript? Why some dragon claw doors do not open? Subjunctive mood: 'was' usage after 'I wish' and 'if only' had declared the sentence below as follow: 1) STAR TURN, 2) BEST LINES.      I wish Bernard Cribbins was my grandad. Perhaps he would be willing to   adopt?     Rattigan: “If only that was possible.” The Doctor: “If only that were   possible. Conditional clause.”    Is 'was' after 'I wish', 'if only' and 'if' (in conditional clauses) colloquial?  Does it be used in formal speech and writing? Fill the area determined by two pgfplots graphs I need to fill the region determined by two (Gaussian) curves and the right red line (the region is brushed in green in the figure below). I also wonder what is the best way to draw vertical line which goes through the intersection of both graphs (the left red line on the figure).  Any pointers would be greatly appreciated.    My initial attemt is pasted below.  \documentclass{standalone} \usepackage{pgfplots}  \begin{document}  \pgfmathdeclarefunction{dnorm}{2}{%   \pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}% }  \begin{tikzpicture} \begin{axis}[domain=0:12, samples=100, height=5cm, width=10cm] % Fill aread under the curves \addplot [fill=red!20, draw=none, domain=0:6] {dnorm(6.5,1.5)} \closedcycle; \addplot [fill=blue!20, draw=none, domain=6:10] {dnorm(4,1)} \closedcycle; % Draw curves \addplot [thick] {dnorm(4,1)}; \addplot [thick] {dnorm(6.5,1.5)}; \end{axis} \end{tikzpicture}  \end{document}   My solution  A picture is worth a thousand words. Code is pasted below.   \documentclass{article} \usepackage{tkz-fct} \usetikzlibrary{intersections}  \begin{document}  \tikzset{    name plot/.style={every path/.style={name path global=#1}} }  % Extract coordinates for point X \makeatletter \newcommand{\gettikzxy}[3]{%   \tikz@scan@one@point\pgfutil@firstofone#1\relax   \edef#2{\the\pgf@x}%   \edef#3{\the\pgf@y}% } \makeatother  % Dimlines \def\Dimline[#1][#2][#3][#4]{ \begin{scope}[thin, &gt;=stealth'] % redefine as flechas \draw let \p1=#1, \p2=#2, \n0={veclen(\x2-\x1,\y2-\y1)} in [|&lt;-&gt;|, decoration={markings,mark=at position .5 with {\node[#3] at (0,0) {#4};}, }, postaction=decorate] #1 -- #2 ; \end{scope} }  \begin{tikzpicture}[scale=1,font=\small] \tkzInit[xmin=0,xmax=12,ymin=0,ymax=.3,ystep=.05] % Draw coordinates \draw[&gt;=stealth', &lt;-&gt;] (0,6) node[above] {$y$} -- (0,0) --  (12.5,0) node[right] {$x$}; % Draw functions and areas \tkzFct[name plot=A,thick,color=red,domain=0:12]{1/(1.5*sqrt(2*pi))*exp(-((x-4.5)**2)/(2*1.5**1))} \tkzDrawArea[opacity=.3,color=blue,domain = 7:12] \tkzFct[name plot=B,thick,color=blue,domain=0:12]{1/(2*sqrt(2*pi))*exp(-((x-7)**2)/(2*2**1))} \tkzDrawArea[opacity=.3,color=red,domain=0:7] \tkzDrawAreafg[between=b and a,opacity=.3,color=green,domain = 0:7] % Intersection between curves \path [name intersections={of=A and B,by=C}]; % Extract coordinates of C \gettikzxy{(C)}{\cx}{\cy} % Vertical lines \draw [thick,dashed, black] (\cx,0) -- (\cx,5.5) node [above] {$x_{0}$}; \draw [thick,dashed, black] (7,0) -- (7,5.5) node [above] {$\hat{x}$}; % Define regions \Dimline[($(0,0)+(0,-.6)$)][($(7,0)+(0,-.6)$)][above,black][$\mathcal{R}_{1}$]; \Dimline[($(7,0)+(0,-.6)$)][($(12,0)+(0,-.6)$)][above, black][$\mathcal{R}_{2}$]; \end{tikzpicture}  \end{document} How can I extract a predetermined range of lines from a text file on Unix? My friend installed Windows 7 on his computer (upgrading from XP).  He wasn't sure if his processor supported x64 or not, so he installed the x86 version, just to be on the safe side.  After I looked it up, it turns out his processor does support x64, and now we want to upgrade.  The question is: is it possible to upgrade without completely re-installing the OS?  Can I? Or do I have to format the C: partition again? How to convert Strings to and from UTF8 byte arrays in Java In Java, I have a String and I want to encode it as a byte array (in UTF8, or some other encoding). Alternately, I have a byte array (in some known encoding) and I want to convert it into a Java String. How do I do these conversions?