On linux, is there an easy way to recompress a zip file (changing compression-level) with preserving as most meta-data as possible (timestamps etc.)?
I have a large number of zip files that were compressed using the zip command. I would like to recompress them with the -9 flag to improve the compression ratio. Does anyone know if that can be done without manually decompressing and then compressing.  PS. I need to keep them as zip files since they are served to windows users( and as such have white spaces in their names)
Rest mass of the photon Why is the rest mass of the photon is taken to be zero?  If rest mass of the photon is non zero, then it leads to infinite energy of the photon (by $E=mc^2$ equation) and there is a violation of conservation of energy. Is this a reason?  Also, is there any thing called the relativistic mass of the photon? It often occurs to me to add an edit summary to a question-edit immediately after submitting the edit, especially if the changes aren't obvious (formatting etc.). So I:   Click "edit" again. Fill in the summary Click on "Save Edits".   The 'edit' (no actual change has been made to the title/body/tags)  is accepted, but the summary doesn't show up, i.e. it is silently rejected.   I don't think it should work this way because the summary has been added by the original editor within the original edit's edit-window. In fact if I remember correctly, it to used to work as expected earlier; so perhaps this is a recent change. Are there rules for falling in water vs. diving vs. just jumping in for various depths of water? Error when using TikZ-Feynman package Today I downloaded and installed the new  package to draw Feynman diagrams. I included the packages   \usepackage{tikz}  \usepackage{tikz-feynman} \tikzfeynmanset{compat=1.0.0} \usetikzlibrary{shapes,arrows,positioning,automata,backgrounds,calc,er,patterns}   into my preamble (changed them already many times).  However, already a simple sample code like  \begin{tikzpicture} \begin{feynman} \vertex (a) {\(\mu^{-}\)}; \vertex [right=of a] (b); \vertex [above right=of b] (f1) {\(\nu_{\mu}\)}; \vertex [below right=of b] (c); \vertex [above right=of c] (f2) {\(\overline \nu_{e}\)}; \vertex [below right=of c] (f3) {\(e^{-}\)}; \diagram* { (a) -- [fermion] (b) -- [fermion] (f1), (b) -- [boson, edge label'=\(W^{-}\)] (c), (c) -- [anti fermion] (f2), (c) -- [fermion] (f3), }; \end{feynman} \end{tikzpicture}   directly gives the error:     Package pgfkeys Error: I do not know the key '/graph drawing/node distance'.   Can you please help me? Thanks in advance! Printing pointers in C I was trying to understand something with pointers, so I wrote this code:  #include &lt;stdio.h&gt;  int main(void) {     char s[] = "asd";     char **p = &amp;s;      printf("The value of s is: %p\n", s);     printf("The direction of s is: %p\n", &amp;s);      printf("The value of p is: %p\n", p);     printf("The direction of p is: %p\n", &amp;p);      printf("The direction of s[0] is: %p\n", &amp;s[0]);     printf("The direction of s[1] is: %p\n", &amp;s[1]);     printf("The direction of s[2] is: %p\n", &amp;s[2]);      return 0; }   When compiling it with gcc I get these warnings:  $ gcc main.c -o main-bin -ansi -pedantic -Wall -lm main.c: In function ‘main’: main.c:6: warning: initialization from incompatible pointer type main.c:9: warning: format ‘%p’ expects type ‘void *’, but argument 2 has type ‘char (*)[4]’ main.c:11: warning: format ‘%p’ expects type ‘void *’, but argument 2 has type ‘char **’ main.c:12: warning: format ‘%p’ expects type ‘void *’, but argument 2 has type ‘char ***’   (The flags for gcc are because I must be C89)  Why incompatible types of pointer? Isn't the name of an array a pointer to it's first element? So if s is a pointer to 'a', &amp;s must be a char **, no? And why do I get the other warnings? Do I have to cast the pointers with (void *) in order to print them?   And when running I get something like this:  $ ./main-bin The value of s is: 0xbfb7c860 The direction of s is: 0xbfb7c860 The value of p is: 0xbfb7c860 The direction of p is: 0xbfb7c85c The direction of s[0] is: 0xbfb7c860 The direction of s[1] is: 0xbfb7c861 The direction of s[2] is: 0xbfb7c862   How can the value of s and it's direction (and of course the value of p) be the same? Ok. I was playing mcpe and I noticed that mossy cobblestone isn't in the crafting table. And I wanted to make a house that looks old. So if its possible to get mossy cobblestone without mods, how can I get it on survival? If it is possible can somebody please leave a step by step guide. Thank you. Using exec and tee to redirect logs to stdout and a log file in the same time In a bash script, how can I redirect all standard outputs to a log file and tee the output on the screen using exec ?  log_file="$HOME/logs/install.txt-`date +'%Y-%m-%d_%H-%M-%S'`" [ -f "$log_file" ] || touch "$log_file" exec 1&gt;&gt; $log_file 2&gt;&amp;1   This code redirect all the log to the log file but not to the screen . show elements of order 15 in $S_8$ satisfy a relation Let $G$ be a group.  Define a relation $\sim$ on $G$ by $a \sim b$ if there exists $g \in G$ such that $a = gbg^{-1}$.  Prove that all elements of order 15 in $S_8$ are related by $\sim$.  I noticed that in order to have order $15$ in $S_8$. We need a $5$ cycle and a $3$ cycle. Then, I am stuck. Can anyone give me some ideas about what to do? Thank you in advance. Does "non-" prefixed to a two word phrase permit another hyphen before the second word?  If I want to refer to an entity which is defined as the negation of another entity by attaching "non-" it seems strange to attach the "non-" only to the first word when the second one is really the word naming the entity. For example,     non-control freak   looks like a person obsessed with not being in control rather than one who is simply not obsessed with control.     non-control-freak   actually looks better because the "freak" is attached to the "non-" as much as it is to "control-", without the space implying the presence of a phrase break.    and its answers make it sound like totally detaching the "non" could be an option, but if I were following the convention of hyphenating "non-" could I add a hyphen after the next word to resolve this problem? The distance between touching objects What is the distance between, say, a cup of coffee and the table it rests on? What is the distance between two touching hands? Why does mathematical convention deal so ineptly with multisets? Can any one help me with this?  Determine all integer triples $(x,y,z)$ such that $1 ≤ x ≤ y ≤ z$ and $x + y + z + xy + yz + xz = xyz − 1$.  I thought of Vieta's formula but don't let me lead you into a dead end. Aside from the repetitive appearance of the black cat, I can't remember seeing any living animals, either inside the Matrix simulation or in Zion.  How come? Is there an in-universe explanation? Order of evaluation in C++ function parameters checking apt-get update lock file Creating fillable PDFs Continuous and preserves measurability $\implies$ preserves null sets. Weird syslog order Have you ever seen wrong order in /var/log/syslog ? I think that it causes only crontab.  Jun 28 22:20:01 alex CRON[2327]: (root) CMD (something &gt; /dev/null) Jun 28 22:21:01 alex CRON[2700]: (root) CMD (something &gt; /dev/null) Jun 21 03:49:01 alex CRON[2753]: (root) CMD (something &gt; /dev/null) Jun 28 22:23:01 alex CRON[2754]: (root) CMD (something &gt; /dev/null) Jun 27 05:08:01 alex CRON[2813]: (root) CMD (something &gt; /dev/null) Jun 26 00:19:01 alex CRON[2816]: (root) CMD (something &gt; /dev/null) Jun 28 22:25:01 alex CRON[2816]: (munin) CMD (if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi) Jun 28 22:25:01 alex CRON[2821]: (root) CMD (something &gt; /dev/null) Jun 28 22:27:01 alex CRON[3225]: (root) CMD (something &gt; /dev/null) Jun 28 22:28:01 alex CRON[3240]: (root) CMD (something &gt; /dev/null) Jun 28 22:30:01 alex CRON[3290]: (root) CMD (something &gt; /dev/null) Jun 26 12:03:01 alex CRON[3291]: message repeated 2 times: [ (root) CMD (something &gt; /dev/null)] Jun 28 22:30:01 alex CRON[3291]: (munin) CMD (if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi) Jun 28 22:31:01 alex CRON[3659]: (root) CMD (something &gt; /dev/null) Jun 28 22:32:01 alex CRON[3754]: (root) CMD (something &gt; /dev/null) Jun 16 06:41:01 alex CRON[3846]: (root) CMD (something &gt; /dev/null) Jun 28 22:35:58 alex cron[909]: (CRON) INFO (pidfile fd = 3) Jun 28 22:35:58 alex cron[944]: (CRON) STARTUP (fork ok) Jun 28 22:35:58 alex cron[944]: (CRON) INFO (Running @reboot jobs) Jun 28 22:36:01 alex CRON[1428]: (root) CMD (something &gt; /dev/null) Jun 28 22:37:01 alex CRON[3050]: (root) CMD (something &gt; /dev/null) Jun 28 22:38:01 alex CRON[3082]: (root) CMD (something &gt; /dev/null) Jun 28 22:39:01 alex CRON[3114]: (root) CMD (something &gt; /dev/null)   As you can see, there is bad time order between lines. It is just crontab error, or there is some problem with system clock, or something?  I am running the latest Ubuntu 14.04 kernel:  Linux alex 3.13.0-30-generic #54-Ubuntu SMP Mon Jun 9 22:45:01 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Escaping regex string How to get remote host DNS address from a super-slim host (docker) without ping or bind-utils?