What's the "right thing to do" when latest version of some gnu software is not available via apt-get I run Ubuntu 16.04 and need to use ddrescue from the gddrescue package. (NB: this is NOT the same software at all as dd_rescue from the ddrescue package). The latest version available via apt-get is 1.19, and the latest version available via apt-get for ANY version of ubuntu is 1.22. However, the latest version available from gnu.org is 1.23, and I would like to run the latest version. My questions are:   I have no problem to build the latest version from ftp.gnu.org/ddrescue/ddrescue-1.23.tar.lz, but once I do, is there some way to install it on my system so that apt-get "knows" about it? For example, if 1.20 appears in some repository I use, I would not like apt-get to "upgrade"  to this, etc. Would it "decent/correct/good/nice" of me to turn my build of this software into an apt-get installable package and contribute it to the appropriate repositories? I can't imagine that it's all that difficult to do, though I CAN imagine that it might be a bit fiddly and that for security reasons, random unknown users are not in general allowed to upload upgrades of established software packages.    If this is a contribution which is allowed, could someone point me to a. the official directions for producing an apt-get package? and b. the official directions for submitting that package?   I run Ubuntu 16.04, but I'll bet that ddrescue builds identically for any distro that's based on the same debian as that version of Ubuntu. Should I be trying to contribute a package for that debian?  Thanks
How do I create a PPA? How do I create my own custom PPA to share with the Ubuntu community? I am trying to create my own custom package set and I would really like to share it with the community.
What's an intuitive way to think about the determinant? What's the best way to do a backwards loop in C/C#/C++? I need to move backwards through an array, so I have code like this:  for (int i = myArray.Length - 1; i &gt;= 0; i--) {     // Do something     myArray[i] = 42; }   Is there a better way of doing this?  Update: I was hoping that maybe C# had some built-in mechanism for this like:  foreachbackwards (int i in myArray) {     // so easy }   Update 2: There are better ways. Rune takes the prize with:  for (int i = myArray.Length; i-- &gt; 0; ) {         //do something } //or for (int i = myArray.Length; i --&gt; 0; ) {     // do something }   which looks even better in regular C (thanks to Twotymz):  for (int i = lengthOfArray; i--; ) {         //do something } What is the command to remove all files but not directories? Let's say I have a directory tree like this:  FOLDER:     file1     file2     file3     Subfolder1:         file1         file2     Subfolder2:         file1         file2   If I used rm -r FOLDER/*, everything in FOLDER would be deleted including sub-directories. How can I delete all files in FOLDER and in its sub-directories without deleting actual directories? Inner automorphisms form a normal subgroup of $\operatorname{Aut}(G)$ For an arbitrary group $(G,\cdot)$ let $\operatorname{Aut}(G) = \{f: G \to G \mid f \text{ is an isomorphism}\}$ be the set of all automorphisms of the group $G$. We assume that $(\operatorname{Aut}(G),\circ)$ where $\circ$ is composition of mappings is a group.  1) Prove that for arbitrary $a \in G$ there is an automorphism $p_a: G \to G;\quad p_a(x) = a^{-1}xa$.  2) Prove, that $\operatorname{Inn}(G) = \{p_a \mid a \in G\}$ is a normal subgroup of $(\operatorname{Aut}(G),\circ)$. How to obtain a confidence interval for a percentile? Undergraduate/High-School-Olympiad Level Introductory Number Theory Books For Self-Learning Is is possible that a software issue could be causing spotty USB-C connections on 2017 MacBook Pro? I have a 2017 MacBook Pro. It has 2 USB-C ports on the left side and I use an Aukey hub to provide more ports (4 USB, 1 HDMI, 1 USB-C) and always to connect two monitors.   I connect one monitor through the hub with the HDMI port and another directly to the MBP with a USB-C adapter. Sometimes when I connect the hub to the Mac and the 2nd monitor to the Mac, it works as it should with no problem...but more than half the time I have to connect, disconnect, jiggle, jangle, switch ports, reconnect HDMI, etc. and hopefully they will both work. OFTEN, I can only get one monitor to fire up.  Is there any kind of software fix or reset that might solve this issue? Any other thoughts welcome. Thanks. Prove that , any primitive root $r$ of $p^n$ is also a primitive root of $p$ How to work with iAds using xcode 3.1.3 How does mission progress work in multiplayer? I was trying to create an AnyDice function to model the Great Weapon Fighting fighting style (which lets you reroll 1s and 2s), but I couldn't get it to work on any arbitrary dice.  I've found this one:  function: reroll R:n under N:n {    if R &lt; N { result: d12 } else {result: R} } output [reroll 1d12 under 3] named "greataxe weapon fighting"   And it works fine. But I don't know how to make the function generic so i don't need to change the d12 every time i want a different dice to reroll.  I've tried  function: reroll R:n under N:n {    if R &lt; N { result: d{1..R} } else {result: R} } output [reroll 1d12 under 3] named "greataxe weapon fighting"   but it is not giving the right probabilities. Maybe if I could fetch the die size inside the function... Ahlfors "Prove the formula of Gauss" He says:     Prove the formula of Gauss:   $$ (2\pi)^\frac{n-1}{2} \Gamma(z) = n^{z - \frac{1}{2}}\Gamma(z/n)\Gamma(\frac{z+1}{n})\cdots\Gamma(\frac{z+n-1}{n}) $$   This is an exercise out of Ahlfors.  By taking the logarithmic derivative, it's easy to show the left &amp; right hand sides are the the same up to a multiplicative constant.  After that I'm lost. It's easy using another identity when $n$ is even to use induction. But when $n$ is odd I am lost.  It's obvious when $n$ is a power of 2. Do the non-zero eigenvalues of AB and BA have the same algebraic multiplicity (for AB and BA not square)? I know that if A and B are square nxn matrices, then AB and BA have the same characteristic polynomial and thus the same eigenvalues (and same algebraïc multiplicity).   I'm wondering though if this can be generalized: if A is a nxm matrix and B a mxn matrix, then AB is a nxn matrix and BA a mxm matrix.  So my question is: will the eigenvalues of AB and BA, that differ from zero, have the same algebraïc multiplicity? Should I use single or double colon notation for pseudo-elements? Is there a general way to change the font of a particular symbol without switching packages?  For example, suppose I'm using Computer Modern for my entire document, but I want the "subset" operator to look as it does in mathabx.  How can I redefine it to appear in this way? Is there a label/goto in Python? Is there a goto or any equivalent in Python to be able to jump to a specific line of code? How can I get my usual interface when opening projects created by other people? I've bougth cup models from internet.   In the ZIP I get the blend file and pressing F12 I can render the project (Do you call it project?)  But I don't see anymore the "Layout" tab, that is what I use the most.   Why and how can I go back to my usual interface?    Like in the Opening Layout:    UPDATE 1  I could open the file with the default layout, however I'm not seeing the objects in there:    UPDATE 2  How to open Collection 1? It's grayed out. What is the difference between a tatkal and premium tatkal ticket in Indian Railways? Where can I find documentation on how to use the \nolinebreak command?  The  at  never makes mention of \nolinebreak  The  states that \nolinebreak is implemented by multiplying its input parameter penalty by (-1) and passing the result into \nopagebreak.       I haven't found documentation on how to use the command. Leverage browser caching for Facebook, Google+, or other 3rd party resource files I tested my website with Google PageSpeed Insights.  I did cache optimization in my .htaccess, but it didn't affect resource files that are from Facebook and Google+  Leverage browser caching      http://connect.facebook.net/fr_FR/all.js (20 minutes)      https://apis.google.com/js/plusone.js (30 minutes)      https://oauth.googleusercontent.com/…e:rpc:shindig.random:shindig.sha1.js?c=2 (60 minutes)   What can I do to solve this?