Deployment friendly code

Question: Is writing deployment friendly code considered a good virtue on the part of a programmer?
If yes, then what are the general considerations to be kept in mind when coding so that deployment of the same code later does not become a nightmare?
Comment: This will vary depending on if you are deploying an app to a few in house users, a web site, or a cross platform commercial product. Being more specific might lead to better answers.
Answer: The biggest improvement to deployment is to minimize manual intervention and manual steps.  If you have to type in configuration values or manually navigate through configuration screens there will be errors in your deployment.
Answer: If your code needs to "call home", make sure that the user understands why, and can turn the functionality off if necessary.  This might only be a big deal if you are writing off-the-shelf software to be deployed on corporate networks.
It's also nice to not have your program be dependent on too many environmental things to run properly.  To combat this, I like to define a directory structure with my own bin, etc and other folders so that everything can be self-contained.
Answer: The whole deployment process should be automated to minimize the human errors. The software should not be affected by the envrionment. Any new deployment should be easily rolled back in case any problem occurs. While coding you should not hard code configuration values which may be different for each environment. Configuration should be done in such a way that it can be easily automated depending upon enviroment.
Answer: Client or server?
In general, deployment friendly means that you complete and validate deployment as you complete a small story / unit of work. It comes from continual QA more than style. If you wait till the last minute to build and validate deployment, the cleanest code will never be friendly.
Everything else deployment, desktop or server, follows from early validation. You can add all the whacky dependencies you want, if you solve the delivery of those dependencies early. Some very convenient desktop deployment mechanisms result in a sand-boxed / partially trusted applications. Better to discover early that you can't do something (e.g. write your log to c:\log.txt) than to find out late that your customers can't install.
Answer: I'm not entirely sure what you mean by "deployment friendly code." What are you deploying? What do you mean by "deploying"?
If you mean that your code should be transferable between computers, I guess the best things to do would be to minimize unnecessary (with a given definition of "unnecessary") dependencies to external libraries, and document well the libraries that you do depend on.

Deployment friendly code


how can I transfer files from raspberry pi 3 to windows and android via WiFi hotspot?

Question: I want to transfer different types of files from the Raspbian OS to the windows and android through a WiFi hotspot that we created already,without a internet connection we need transfer the files?please tell me the complete steps....
Answer: If both computers are attached to the same wireless hotspot, then they should be able to contact one another directly via IP address. This is the same as on a normal internet connected LAN -- hence you can also use the same kind of software to transport the files.  Using SMB/CIFS is popular with Windows users, implemented by Samba on the linux side.  To that end you will find many questions tagged samba here and an order of magnitude more on our big sibling site Unix & Linux.  Note that Raspbian is essentially a normal GNU/Linux OS distro with some cosmetic and configuration tweaks.
You are not bound to use SMB/CIFS, of course.  I believe there is some Windows side software around to mount SSHFS shares, which is more popular with linux users.  You can also use normal FTP, a web server, etc. etc.
WRT Android there look to be both Samba and SSHFS clients available.
Answer: WinSCP for windows. For Android if you can access the root just use scp. If not try to find scp Android apps.
Comment: This is not very helpful. Ask yourself this if you were the OP would you know what WinSCP is? Where do I get it? What if he is on a Mac? How do I use it if i get it installed? Are there any prerequisites?
Comment: Per Steve's comment above, while this does at least take a stab at answering the question, it's not a complete answer. Please consider expanding it to explain what each of the parts involved is (preferably with some links to manuals or project homepages), and exactly how they would be applied to this particular problem.


How to optimize this code

Question: I have used this code in helper to display the count based on the status -
    def to_do_count
        Task.where(status: 0).count
    end

    def in_progress_count
        Task.where(status: 1).count
    end

    def paused_count
        Task.where(status: 2).count
    end

    def completed_count
        Task.where(status: 3).count
    end

I need help to optimize this code as there are lot of repetitions.
Comment: I did not know optimization could be done by these many ways, but I liked Pavel's option 1 approach.
Comment: should be moved into Review network
Comment: I'm voting to close this question as off-topic because this question belongs on another site in the Stack Exchange network: Code Review.
Answer: def count_of(type)
    Task.where(status: get_status_type(type)).count
end

def get_status_type(type)
   {to_do: 0, in_progress: 1, paused_count: 2, completed_count: 3}[type]
end

Now call:
count_of(:to_do)

instead of
to_do_count

Answer: You can define a STATUSES constants then define those methods using runtime method definition in Ruby. The code will be like
STATUSES = {
  to_do:       0,
  in_progress: 1,
  paused:      2,
  completed:   3
}

def count_for(status)
  Task.where(status: status).count
end

STATUSES.each do |k, v|
  define_method("#{k}_count"){ count_for(v) }
end

Now you can call all these methods. Since they were defined dynamically

to_do_count
in_progress_count
paused_count
completed_count
Answer: Option 1
def task_count(status)
  Task
    .where(status: { to_do: 0, in_progress: 1, paused_count: 2, completed_count: 3 }[status])
    .count
end

task_count(:to_do)
task_count(:in_progress)

Option 2
You can simplify it by using scopes
class Task
  scope :to_do,           -> { where(status: 0) }
  scope :in_progress,     -> { where(status: 1) }
  scope :paused_count,    -> { where(status: 2) }
  scope :completed_count, -> { where(status: 3) }
end

Then helper can look like this:
def task_count(status)
  Task.send(status).count
end

task_count(:to_do)

Answer: Use hash constant
TASK = {
  to_do: 0,
  in_progress: 1,
  paused_count: 2,
  completed_count: 3
}

def self.count_of(type)
  Task.where(status: TASK[type]).count
end

Call it on class
Task.count_of(:to_do)

How to optimize this code


Dominated convergence theorem - what sequence?

Question: Simple question. When are we allowed to exchange limits and integrals? I'm talking about situations like
$$\lim_{\varepsilon\to0^+} \int_{-\infty}^\infty dk f(k,\varepsilon) \overset{?}{=}    \int_{-\infty}^\infty dk\lim_{\varepsilon\to0^+} f(k,\varepsilon).$$
Everyone refers to either dominated convergence theorem or monotone convergence theorem but I'm not sure if I understand how exactly one should go about applying it. Both theorems are about sequences and I don't see how that relates to integration in practice. Help a physicist out :)
Answer: The statement of the dominated convergence theorem (DCT) is as follows:

"Sequential" DCT. Suppose $\{f_n\}_{n=1}^\infty$ is a sequence of (measurable) functions such that $|f_n| \le g$ for some integrable function $g$ and all $n$, and $\lim_{n\to\infty}f_n = f$ pointwise almost everywhere. Then, $f$ is an integrable function and $\int |f-f_n| \to 0$. In particular, $\lim_{n\to\infty}\int f_n = \int f$ (by the triangle inequality). This can be written as
$$ \lim_{n\to\infty}\int f_n = \int \lim_{n\to\infty} f_n.$$

(The statement and conclusion of the monotone convergence theorem are similar, but it has a somewhat different set of hypotheses.)
As you note, the statements of these theorems involve sequences of functions, i.e., a $1$-discrete-parameter family of functions $\{f_n\}_{n=1}^\infty$. To apply these theorems to a $1$-continuous-parameter family of functions, say $\{f_\epsilon\}_{0<\epsilon<\epsilon_0}$, one typically uses a characterization of limits involving a continuous parameter in terms of sequences:

Proposition. If $f$ is a function, then
$$\lim_{\epsilon\to0^+}f(\epsilon) = L \iff \lim_{n\to\infty}f(a_n) = L\quad \text{for $\mathbf{all}$ sequences $a_n\to 0^+$.}$$

With this characterization, we can formulate a version of the dominated convergence theorem involving continuous-parameter families of functions (note that I use quotations to title these versions of the DCT because these names are not standard as far as I know):

"Continuous" DCT. Suppose $\{f_\epsilon\}_{0<\epsilon<\epsilon_0}$ is a $1$-continuous-parameter family of (measurable) functions such that $|f_\epsilon| \le g$ for some integrable function $g$ and all $0<\epsilon<\epsilon_0$, and $\lim_{\epsilon\to0^+}f_\epsilon=f$ pointwise almost everywhere. Then, $f$ is an integrable function and $\int |f-f_\epsilon|\to 0$ as $\epsilon\to 0^+$. In particular,
$$ \lim_{\epsilon\to0^+}\int f_\epsilon = \int \lim_{\epsilon\to0^+} f_\epsilon.$$

The way we use the continuous DCT in practice is by picking an arbitrary sequence $\pmb{a_n\to 0^+}$ and showing that the hypotheses of the "sequential" DCT are satisfied for this arbitrary sequence $a_n$, using only the assumption that $a_n\to 0^+$ and properties of the family $\{f_\epsilon\}$ that are known to us.
Comment: Let's see if I understood this correctly, using the more specific problem I mentioned in the question. First, I find some integrable function $g$ s.t. $|f(k,\varepsilon)| \leq g(k), \forall k \in\mathbb{R}$ and all $\varepsilon$ between $0$ and some positive $\varepsilon_0$. Then I check if $f(k,\varepsilon) \to f(k,0)$ for all $k$ except perhaps on a set of measure zero. If it does, I can exchange the limit and the integral. If not, I can't. Did I get everything right?
Comment: @IvanV.: Yes, that's correct!
Comment: Alright, thank you, much appreciated!
Answer: Let's look at it in a sample case. We want to prove by DCT that $$\lim_{\varepsilon\to0^+} \int_0^\infty e^{-y/\varepsilon}\,dy=0$$
This is the case if and only if for all sequences $\varepsilon_n\to 0^+$ it holds $$\lim_{n\to\infty}\int_0^\infty e^{-y/\varepsilon_n}\,dy=0$$
And now you can use DCT on each of these sequences. Of course, the limiting function will always be the zero function and you may consider the dominating function $e^{-x}$.


Are there generated structures in Pocket Edition?

Question: Are there any type of generated structures, such as dungeons, witch huts, temples, villages or caves, in Minecraft Pocket Edition? I'm asking especially about version 0.8.1 alpha.
Comment: @Jose This is a site where people ask for help, then they wait patiently for someone to see their question and answer it.  Given that you waited exactly 4 minutes before posting a comment demanding attention, I'm not certain you understood the way the site works.  Please take the time to read the tour located under the help tab above.
Comment: Hello and welcome to Arqade! I've edited your question as an attempt to make it more clear. If the meaning of the post changed (if I understood you incorrectly), you should rollback the edit from the "edited" link. I don't know the answer myself, but someone else should now be able to answer.
Comment: [Related](http://gaming.stackexchange.com/questions/153622/how-to-spawn-minecraft-villages)
Answer: Not yet but there will be an update which will turn the answer to a yes.
Additions include villages, caves, lava pools & mineshafts. I heard it comes out on 29.6.14 but I could be wrong.
Answer: Now, with the recent 0.9.0 update, yes, there are generated structures. These include,

Villages, do note, villagers are not able to be traded with.
Mineshafts, which often come with goodies in minecarts. Watch out for spider spawners though.
Stongholds, do note, strongholds are just there to be there, the end and nether are not in the game yet.
Dungeons, which can spawn a variety of monsters, including, creepers, skeletons, zombies.
Temples, temples spawn in deserts and jungles, and both contain dangerous traps, but with goodies loaded inside.

Hope this helps!
Answer: No. As of version 0.8.1 alpha, there are no generated structures of any kind in Pocket Edition. According to the Minecraft Wiki, generated structures are planned for 0.9.0 alpha.
Answer: Not really there can sometimes be lava falls and water falls generated maybe big overhangs that are good for mining but no generated structures are in the current versions yet but in 0.9.0 mojang are adding caves,lava pools and mineshaft s in pe as generated structures


How do System Preferences remain unlocked?

Question: To make certain modifications to system preferences, you first need to unlock the preference pane. Some of these changes are done on a system level and the command-line equivalent would need to be invoked as the root user (via setuid). However, running sudo has an expiration (typically 5 minutes) before needing to re-authenticate again; how do system preferences assert their "open lock" state?
Comment: It's not at all clear that the preference pane calls sudo. Are you looking for a technical reverse engineering how things work or is there some practical question you are seeking to solve like perhaps how to modify the timeout or something else altogether?
Comment: Thanks, bmike. I'm curious if the authenticated "session" for an unlocked preference pane can be reversed for malicious intent, e.g. if an evil daemon can pose as the system preference pane to modify network settings without the user's knowledge by "piggybacking" off the unlocked prefs.
Comment: Perfect - if you don't get a good answer - consider editing the question to call this out more clearly - comments can be missed and also deleted from time to time.
Answer: What you are describing is the standard way, the Mac OS X do it.
You have to do the following to get around the five minuts loop hole: Guide to lock system preference
It is assert by using plist files which I hold system times etc. or that is how it was done i Snow Leopard and older.
Comment: Could you incorporate enough of the linked content so people can understand what solution you are proposing to the question at hand? There is an edit button above to let you add details to this stub of an answer.


Relation between thermodynamic reversible process and reversible reaction

Question: I know it seems to be a weird question. But for long I have been thinking whether there is any relation between thermodynamic reversible process and reversible reaction. Do they have any connection and if so how?
Answer: To complement other answers, I provided here definitions extracted from official IUPAC sources:
reversible process
A definition comes via the concept of entropy (Ref. 1):

Quantity the change in which is equal to the heat brought to the system in a reversible process at constant temperature divided by that temperature. Entropy is zero for an ideally ordered crystal at $\pu{0 K}$. In statistical thermodynamics
$$S=k \ln W$$
where $k$ is the Boltzmann constant and $W$ the number of possible arrangements of the system.

The second sentence is a formulation of the third law, while the last is a definition of entropy viewed from the context of statistical thermodynamics. The first sentence describes the thermodynamic entropy. Coupled with the second law expressed as an inequality relation between heat and entropy,
$$\Delta S \ge \frac{q}{T} \tag{const. T}$$
it provides a functional definition of a reversible process (it is a process that maximizes $q$).
reversible reaction
The definition provided by IUPAC is related to microscopic reversibility:

In a reversible reaction, the mechanism in one direction is exactly the reverse of the mechanism in the other direction. This does not apply to reactions that begin with a photochemical excitation.

Such a definition implies thermodynamic reversibility.
References

IUPAC. Compendium of Chemical Terminology, 2nd ed. (the "Gold Book"). Compiled by A. D. McNaught and A. Wilkinson. Blackwell Scientific Publications, Oxford (1997). Online version (2019-) created by S. J. Chalk. ISBN 0-9678550-9-8. https://doi.org/10.1351/goldbook.
Answer: Reversible reaction
According to Merriam Webster, a reversible reaction is:

a reaction that takes place in either direction according to conditions (as the formation of hydriodic acid by union of hydrogen and iodine or its decomposition into these elements)

For this type of reaction, you would use a double-harpoon to write the chemical equation:
$$\ce{H2(g) + I2(g) <=> 2HI(g)}$$
and would be able to write an equilibrium constant expression
$$K = \frac{[\ce{HI}]^2}{[\ce{H2}][\ce{I2}]}$$
with [] denoting activity or fugacity. If you start with pure reactants, the reaction would go forward (decrease in reactants, increase in products). If you start with pure products, the reaction would go backwards (increase in reactants, decrease in products). Once the reaction has reached equilibrium, concentrations would no longer change.
In any case, reactions in both directions would occur at the particular level. When the reaction is at equilibrium, you just won't know at the macroscopic level and would have to disturb the equilibrium to see macroscopic changes again.
Reversible process
Again according to Merriam Webster, a reversible process is:

an ideal process or series of changes of a system which is in complete equilibrium at each stage such that when the process is reversed each of the changes both internal and external is reversed but with the amount of transferred energy unaltered

Applied to chemical reactions, a reversible process is one where the Gibbs energy is constant throughout (or where the entropy of the universe is not increased by it). We would not expect any macroscopic changes (the process is at equilibrium), which why this is an ideal process (not real). The closest real process is one where the system is near equilibrium, and the increase in entropy of the universe is minimal.
What does IUPAC say?
The IUPAC Gold book makes reference to a paper (DOI: https://doi.org/10.1351/pac199466051077) offering a glossary of terms used in physical organic chemistry. In their definition of chemical equilibrium, it says:

While the definition of reversible process matches the one I cite above, and they use the same notation for the equilibrium reaction. However, the connection between reversible process and chemical equilibrium surprises me. When a reaction approaches equilibrium, the Gibbs energy does change, and it will not return to the initial state unless work is done on the system. Maybe the confusion regarding reversible process vs. reaction stems in part from this.
Answer: I agree with both the MW and the IUPAC definitions, but perhaps you can help me checking if I am getting this right.
If a reactive system involving a reaction that is reversible in the chemical sense (i.e. it "goes both ways" around its equilibrium (i.e. the  activities ( ~ concentrations) of its components can match the value of the equilibrium constant $\mathrm{K(T)}$ ), then as a whole there are changes within the system that satisfy $\Delta{S_{system}} = 0$ (i.e. reversible in a thermodynamic sense) because the reversible reactions within have molar changes of entropy + $\Delta S$ (for the forward reaction, typically non-zero) and $- \Delta S$ (for the backward reactions, with a minus sign in front), with forward and backward reactions at the same rate (dynamic equilibrium).
In a previous reply, I attempted the following wording, which perhaps is more detailed but does not make explicit the distinction between entropy of reaction and entropy of the system:
With $\Delta G = \Delta H - T\Delta S$ for a reversible reaction, where $\Delta G$ is the change in Gibbs energy, $\Delta H$ the enthalpy of reaction and $\Delta S$ the change in entropy (and $T$ and $P$ constant), I think what is going on then for a system where a dynamic equilibrium is established between backward and forward reaction, which could qualify as a reversible process, once the equilibrium is reached. $T$ sets the value of the equilibrium constant and hence $\Delta G$ for these conditions. $\Delta H$ and $\Delta S$ typically are considered to be fairly constant (you could see how $\Delta S$ may in fact be dependent on temperature though, just through different vibration energies of different bonds).
In the special case where $\Delta G = 0$ (when equilibrium constant $K = 1$), with $\Delta G = \Delta H - T\Delta S$, one has to assume that the $\Delta S$ is fully reversible, which I think assumes faultless conversion of $T\Delta S$ to $\Delta H$ and vice-versa, between reacting species.


Git way of handling floating branch like in StarTeam

Question: In my project I have a folder that contains a lot of data that needs to be versioned. Most of the time I don't need it, so I just do:
$ git clone myrepo
$ cd myrepo

Sometimes I also need the latest stuff from my data branch, that is in it's own folder
$ git checkout databranch -- datadir
When I checkout data branch, I just need the latest stuff. Data branch should not contain any versioning of anything but its own content and master branch should not contain data branch stuff by default.
This sounds like git-submodule, but I must keep everything contained in a single repository. And I'd like to keep my data-branch, when selected, floating on top of master like StarTeam is able to do (if I recall correctly).
Is this possible in Git? What kind of workflow would you suggest as an alternative?
Answer: git checkout databranch -- datadir
git rm -r --cached datadir

and you're done.


Is it incorrect to calculate NDVI using DN (Digital Numbers) values instead of using the Surface Reflectance values?

Question: I am working with images from landsat8. I need to know If I can calculate correctly NDVI using digital numbers instead Surface Reflectance values or TOA reflectance
equation

result
Comment: Please define "...digital numbers..."
Comment: You need to use surface reflectance when performing analyses across time periods or when using multiple images.
Answer: Use Surface Reflectance whenever you can.
Regarding the Top Of Atmosphere reflectance, in my opinion it is a mathematical error to believe that a equally displacement and scaling of both bands Digital Numbers will not reflect a displacement in the proportion between the subtraction and addition of them.
Therefore, the index value will not be the same calculated from Level 1 Digital Numbers as from TOA reflectances. In any case, it can be argued that it will only have a displacement in absolute terms. But we usually use NDVI values to classify certain conditions. If you shift the classification values in the same way that the index value shifts due to conversion to TOA reflectances, there would be no problem.
Regarding the Surface Reflectance, it is considered important only to compare different images. However, the algorithm from which the SR is derived takes into account the water vapor present in the atmosphere, and the water vapor does not have the same effect on both bands.
Since access to Level 2 Surface Reflectance products is open, I don't see a reason not to use them.
Answer: As well pointed out @Aaron, you need to use surface reflectance when performing analyses across time periods or when using multiple images. This is necessary because TOA reflectances are calculated with a correction for the sun angle as is referred by USGS document here. Values of REFLECTANCE_MULT_BAND_x and REFLECTANCE_ADD_BAND_x remain constant for individual bands (B4 and B5 bands for NDVI calculations) but, SUN_ELEVATION is clearly affected by time acquisition and, obviously, by location.
For corroboration purpose, it can be used following GEE script for easily retrieving these metadata values for B4 and B5 bands.
<code>var pt1 = ee.Geometry.Point(6.746, 46.529);
var pt2 = ee.Geometry.Point(20.105, 44.409);

var dataset1 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                  .filterDate('2017-01-01', '2017-12-31')
                  .filterMetadata('WRS_PATH', 'equals', 195)
                  .filterBounds(pt1);

print(dataset1.first());

var dataset1_lst = dataset1.toList(dataset1.size());

print("size", dataset1.size());

var dataset2 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                  .filterDate('2017-01-01', '2017-12-31')
                  .filterMetadata('WRS_PATH', 'equals', 186)
                  .filterBounds(pt2);

var dataset2_lst = dataset2.toList(dataset2.size());

print(dataset2.first());

print("size", dataset2.size());

//RED: B4, NIR: B5

function properties (ele) {

  return [ee.Image(ele).get('REFLECTANCE_MULT_BAND_4'),
          ee.Image(ele).get('REFLECTANCE_MULT_BAND_5'),
          ee.Image(ele).get('REFLECTANCE_ADD_BAND_4'),
          ee.Image(ele).get('REFLECTANCE_ADD_BAND_5'),
          ee.Image(ele).get('SUN_ELEVATION')];

}

var properties1 = dataset1_lst.map(properties);

print(properties1);

var properties2 = dataset2_lst.map(properties);

print(properties2);

Map.setCenter(14.305, 45.413, 6);

var images1 = dataset1.select(['B4', 'B3', 'B2']);

Map.addLayer(images1, {}, 'images1');

var images2 = dataset2.select(['B4', 'B3', 'B2']);

Map.addLayer(images2, {}, 'images1');
</code>
Results for same location can be observed in following image. 'SUN_ELEVATION' values (red rectangles) depend of time acquisition.

Results for different locations can be observed as follows. 'SUN_ELEVATION' values (red rectangles) also depend of path, row images.
Answer: Both of the answers (@xunilk and @GabrielDeLuca) make valid points about why reflectance is more appropriate as an input to deriving NDVI or other indices from multispectral data, but I wanted to add something fundamental that may be missing.
Reflectance is a property of the material being imaged, whereas the raw digital numbers are intensity measurements taken at the sensor (radiance). When raw intensity is converted to reflectance (radiometric correction), the idea is to account for atmospheric and illumination effects (among others) which differ based on the position of the sun and sensor relative to the object of interest. Raw intensity measurements are subject to all of these effects, meaning the same sensor can record very different values for the same scene on repeat observations under different conditions.
Converting raw digital numbers to reflectance (normally) involves using objects of known reflectance in the scene to infer the reflectance of the object(s) of interest, which means that (theoretically) repeat observations will result in similar reflectance values for the same material, regardless of the conditions.
A final point, different sensor arrays can have different bit depths, meaning that the possible range of values for a given band is variable depending on the resolution of the sensor array. For example, an 8-bit sensor is capable of measuring 256 possible values for each pixel, while 16 bit sensors can measure 65,535. Because reflectance is expressed as a percentage, radiometric correction of imagery taken from different sensors also serves to normalize the values of your data before computing NDVI or other indices.


Why is cream curdled in coffee?

Question: Why would liquid half-and-half creamer curdle when poured into hot coffee? This happens to me sometimes, and I'm not sure why. Could it have something to do with either the coffee being too hot or the creamer being too cold?
Answer: I would think this is happening because your cream is just about to turn sour.
As cream ages, lactic acid builds up in it.  The acidity in your coffee is enough at that point to push the cream over the edge to curdling.
Try newer cream or a very low-acid coffee with old cream and you should be OK.
Comment: yep, sounds like you are buying 1/2 & 1/2 in large containers and not using them fast enough; but you might also check to verify that you're buying homogenized 1/2 & 1/2... as i've never seen fresh cream in my supermarket, it seems unlikely though
Comment: Bingo! I tried with new cream, same temp coffee (freshly brewed), and there was no problem.
Answer: I watched an episode of Blue Bloods where Mr. Selleck explained to his grandkids that the secret to not having your cream curdle in your (Irish) coffee was to hold your spoon upside down over your coffee and pour the cream over the back of the spoon. I tried it and have never had curdled cream in my coffee since. Don't know why it works I just know that it does. I'm guessing it might have something to do with increasing the dispersion of the cream.
Answer: I had this happen to me in the most bizarre circumstance. I buy green coffee beans and roast them myself at home. I have decaf and regular that I roasted separately, then grind them together to make half decaf and then brew my coffee via pour over ( no machines). I did this and then used soy creamer (brand new, not old). Didn't curdle. Then, I brewed a cup with just the regular beans (no decaf). Same way, same day, everything the same other than it was full caff. Added the same soy creamer and it curdled. I repeated this exactly the next day and it did it again!! My guess is it has to do with the acidity of the coffee beans.
Answer: I have organic heavy cream expiration date is March 15th 2018. Its Feb 17th. When I pour it in my hot coffee it's still looks like it's curdled until I stir it in. Even if I pour it over the back of a spoon. Still tastes great and it hasn't  upset my stomach. But it is odd that it looks like it's curdling, it must be an effect from the coldness of the cream to heat of the coffee, or fat content reacting to heat, acidity. My best guess. Just weird, that it happens.
Answer: The acid in coffee causes the cream to curdle.
Comment: If curdling is caused by the natural occurrence of acid in coffee, wouldn't the cream *always* curdle?

Why is cream curdled in coffee?


On a modern system, will using disk compression give me better overall performance?

Question: It seems that CPU increases have outpaced disk speed for a while. Assuming a desktop or laptop with modern dual core Intel/AMD CPU and a single average SATA disk, would doing compression on most all of the disk give better overall performance? Basically does the reduced disk bandwidth more than make up for the increased CPU load? I'm sure the real answer is "it depends on what you're doing". By asking this question, I'm hoping to have someone who has done this pipe up and give some examples or pitfalls.
Comment: define performance? As in speed increase or space increase? You probably wouldn't notice any speed increase but would definitely find the spare bytes useful! :-p
Answer: Yes, disk compression can provide better performance under particular circumstances:

Your application is disk throughput bound: modern CPUs and (de)compression algorithms can run at much higher bandwidth than modern disks in long transfers. Any reduction at all in the amount of data moving to or from disk platters is a win in this circumstance
It takes less time to (de)compress data that's going to disk platters than the difference in transfer times, and you have CPU cycles to spare

There's a reason both ZFS and Btrfs, both recent green-field designs, include provisions for compression.
In the HPC space, when an application is checkpointing from memory to disk, the CPUs are frequently not doing anything useful at all. This time is essentially pure overhead. Any use of the CPUs to reduce this time is a win.
Comment: Media streaming is *not* a compelling application for storage-system level compression. The data should already be compressed in a much better application-specific format.
Comment: Media streaming disks are probably the only place where benefits happen as the chunk size is large enough. Standard OS disks will *always take a hit.
Answer: Disk compression will never give you better performance.
It may give you almost no penalty due to fast modern CPUs, but that's an entirely different thing.
You assume having to transfer less data from/to disk can improve performance; but big data transfers are almost never an I/O bottleneck: the real bottlenecks are seek time and latency. Modern hard disks are really fast on sustained data transfers with big files, what slows them down are little transfers from all over the disk.
Some scenarios:

Media files. Those are usually already compressed on their own (JPEG, MPEG, MP3), so compressing them at the filesystem level is not going to help at all; it will instead worsen things, because CPU resources are already needed to encode/decode them.
Databases. Those are usually read from/written to in little random bursts, so compressing them will not only have no benefit at all, but will also degrade performance, as the DBMS can't properly identify where on disk the physical data it needs to access are stored.
Pagefile. This is usually quite large, but the O.S. needs to address very small chunks of data on it, and needs to do that very precisely ("Read 4K at physical address X"); compressing it is usually not possible, but even if it was, it would be a complete waste of time and resources: it would provide almost zero compression, due to the "complete random data" nature of this file.
Comment: never is a very narrow minded word. Raw bandwidth from the disk and through the pci bus is often the bottleneck with some of the work I do.  Compression can help performance a lot, especially if you have already taken measures to remove some of the other bottlenecks you mention
Comment: disk i/o is almost always a bottleneck in databases
Comment: So transferring less data from the disk provides no benefit?
Comment: I'd also be hesitant to say "never". There may well be scenarios where disk bandwidth is the bottleneck. But you're probably correct that this is not the typical case.
Comment: Edited to answer that :-)
Comment: Nitpick: The pagefile will not be "complete random data", it will probably contain machine code and application data, which should compress reasonably well. Of course, your point about direct addressing still stands.
Comment: Compression may affect cache behaviour (e.g. BTRFS reading larger blocks from disk, a kind of prefetch side-effect), which may benefit or harm the performance, depends on the load.
Answer: There are specific situations that do this already at the per-application level, such as video compression - a system that couldn't read raw HD-quality video fast enough from a dsk can instead read compressed information and expand it using memory and CPU power.  There is no reason this couldn't also be the case for other, specific situations but this can be best handled at the application level so the compression methods used are optimized to their purpose.
Keep in mind that the performance overhead of decompression is worthwhile if the entire throughput increases, so the idea shoudln't be dismissed out of hand - I don't think we're ready for general purpose performance boosting compression yet but it is theoretically possible to trade a resource you have excess of (CPU & memory) for a boost elsewhere (total data read from hard-drive)
Answer: You answered your own question!  it depends is indeed the answer.
The best generalization i can make is:
If you have a database application which is disk read constrained, then yes! performance is better.
I don't think this is the case for most activities you'll be doing on a desktop/laptop.
In my domain (SQL Server)  I know that reporting databases under heavy read loads can get better performance if compression is used.  I know the same is true for mysql.
Microsoft have a white paper on their compression features in SQL Server 2008.  Not exactly light reading unless your a DBA, but here's one chart that supports my generalization:
Answer: CPU speeds have always been faster than disk speeds. IMHO, compression is going to increase overhead and thereby decrease performance.
Comment: but if your cpu is sitting doing nothing and you disk bandwidth is the bottleneck, your cpu will end up doing more work but overall performance will increase.  It really depends on what sort of data you are retreiving and what you are doing with it.
Comment: but it depends on what you're doing :-)
Comment: How so? An increased overhead is an increased overhead. You can't buy money by spending money (unless it's counterfeit money, but that's another story).
Comment: The function of compressing and decompressing files, regardless of whether or not they're smaller due to the compression, is going to introduce performance overhead. When the file is read from disk into memory it has to be decompressed. When it's written from memory to disk it has to be compressed.
Answer: I was reading somthing similar to this yesterday regarding OSX and it's compression of the filesystem - Basically the answer revolves around what you want to compress - in this example he's talking about the "FAT" data; file structures, properties, metadata etc that when stored together can be compressed to save space and be read into the cpu quicker than seeking the head all over the place to find the data for each file...
Anyway, worth a read if you're thinking about such things :-p

But compression isn't just about saving disk space. It's also a classic example of trading CPU cycles for decreased I/O latency and bandwidth. Over the past few decades, CPU performance has gotten better (and computing resources more plentiful—more on that later) at a much faster rate than disk performance has increased. Modern hard disk seek times and rotational delays are still measured in milliseconds. In one millisecond, a 2 GHz CPU goes through two million cycles. And then, of course, there's still the actual data transfer time to consider.
Granted, several levels of caching throughout the OS and hardware work mightily to hide these delays. But those bits have to come off the disk at some point to fill those caches. Compression means that fewer bits have to be transferred. Given the almost comical glut of CPU resources on a modern multi-core Mac under normal use, the total time needed to transfer a compressed payload from the disk and use the CPU to decompress its contents into memory will still usually be far less than the time it'd take to transfer the data in uncompressed form.
That explains the potential performance benefits of transferring less data, but the use of extended attributes to store file contents can actually make things faster, as well. It all has to do with data locality.
If there's one thing that slows down a hard disk more than transferring a large amount of data, it's moving its heads from one part of the disk to another. Every move means time for the head to start moving, then stop, then ensure that it's correctly positioned over the desired location, then wait for the spinning disk to put the desired bits beneath it. These are all real, physical, moving parts, and it's amazing that they do their dance as quickly and efficiently as they do, but physics has its limits. These motions are the real performance killers for rotational storage like hard disks.
The HFS+ volume format stores all its information about files—metadata—in two primary locations on disk: the Catalog File, which stores file dates, permissions, ownership, and a host of other things, and the Attributes File, which stores "named forks."
Extended attributes in HFS+ are implemented as named forks in the Attributes File. But unlike resource forks, which can be very large (up to the maximum file size supported by the file system), extended attributes in HFS+ are stored "inline" in the Attributes File. In practice, this means a limit of about 128 bytes per attribute. But it also means that the disk head doesn't need to take a trip to another part of the disk to get the actual data.
As you can imagine, the disk blocks that make up the Catalog and Attributes files are frequently accessed, and therefore more likely than most to be in a cache somewhere. All of this conspires to make the complete storage of a file, including both its metadata in its data, within the B-tree-structured Catalog and Attributes files an overall performance win. Even an eight-byte payload that balloons to 25 bytes is not a concern, as long as it's still less than the allocation block size for normal data storage, and as long as it all fits within a B-tree node in the Attributes File that the OS has to read in its entirety anyway.
There are other significant contributions to Snow Leopard's reduced disk footprint (e.g., the removal of unnecessary localizations and "designable.nib" files) but HFS+ compression is by far the most technically interesting.

From:
http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/3
Comment: I've thought about this before, but that exact article prompted me to post this question.
Comment: lol. Interesting :-p
Answer: The Microsoft Disk compression is ugly OLD. It is hardly comparable in ratios with ARJ method from 80's.
But, even Microsoft's compression CAN provide better performance on very slow (laptop) hard drives. Especially if there's enough RAM for Write-caching and preventing excessive writes.
The write process is a weak spot of any random-access enabled compression method.
So, if you want compressed drive, you better move to some kind of Linux.
Disk compression is also very suitable for RAM-drives, no need to tell you why.
Comment: Could you add some supporting data, maybe performance comparison between the Windows and Linux based solutions?
Comment: Yeah, if you're going to bump a 3.5 year old thread, you'd better be bringing some new, hard facts.
Answer: Doubtfully.  Compression and decompression involves more than just the disk and the CPU; in particular there will be a lot of transferring of data to and from memory (in addition to the standard transfer overhead without compression) which will really hurt in terms of page faults.
Answer: In short, no, you probably won't gain in performance.
While compression will improve the performance of your storage, it will significantly degrade your processor speed.  It probably comes down to what type of files you are going to be decompressing.  If you are only dealing with word, excel and other basic filetypes then go ahead and compress them.  If the individual files are bulkier, you're going to be sacrificing more of your time.


Using only certain files out of GPL code

Question: The whole of atk1.0-2.4.0 is listed under GNU-GPLv2.0.  Can I take certain files out of GNU GPL license code and use it under different license / no license, or is this considered as obfuscation of GNU GPL licensed code?
Comment: Taking a portion of work is not obfuscation; it just means you are using a smaller portion. It would be like copying one chapter of a book as opposed to copying 30 chapters out of the same book; both require permission (license) in order to do legally. GPL is the license in this case, so even if you copy one part (e.g. one chapter, a few files, etc.) you need to abide by the rules of that license to use it.
Comment: Of course if you go small enough (e.g. one sentence of a book, one line of code), then in theory you could get to something so small that that one small piece on its own in isolation is no longer copyright protected, or because on its own that one tiny piece has no more creative elements, or because it is not original. But in this case that is not the situation, as you said you are copying a few files, so most likely those files are creative elements and are therefore copyrighted just like the whole package.
Comment: @Brandin The concept of a *de minimis* contribution, one too small to qualify for copyright protection, is alive and well.  However, at least since [Salinger v Random House](https://en.wikipedia.org/wiki/Salinger_v._Random_House,_Inc.) it's been very clear that a sentence can often be quite large enough for its copying to infringe copyright.  The court held even subsections of sentences could infringe, if they were part of the expressive heart of the work.  I'm not saying that would apply in this case, just cautioning against suggesting that one sentence or line is always too small to qualify.
Answer: Insofar as the GNU GPL license allows modification, you may modify a GPL-licensed work to no longer include certain files while retaining other files. However, you may only perform such distribution under the license terms granted by the work's copyright holder(s) -- typically the author(s) -- so you may not offer such a modified form under any terms other than the GPL (unless the copyright holder granted a different license option, either generally or privately to you specifically).
This is certainly not "obfuscation" of the GPL-licensed code, but if you use those files in binary form, you must also offer the corresponding source necessary to rebuild those binaries. Indeed, even if it did constitute obfuscation, outright obfuscation is not even automatically problematic, as long as you also distribute (or offer) a corresponding unobfuscated source form that is the "preferred form for making modifications" from which the obfuscated form was created. As a pratical example, you may offer a minified version of a GPL-licensed web application that loads faster over a network (at the cost of readability and comprehensibility) as long as you also offer the readable unminified version under the GPL to all recipients of the minified code.
If you include those files in a new work with other files, then the entire work may be distributed only if you distribute it as a whole under the GPL. This obligation to license other material under the GPL extends as far as copyright law understands the upstream GPL-licensed work to exist in the same copyrightable work as that other material.


reading formulated value from excel using oledb

Question: I am using C#.net (4.0) and trying to calculate some result by putting my parameters in an excel file. This exceil file as got the required formula in place. For example, when I enter my parameters in cells A1, A2 and A3, the result value is calculated and displayed in cell a4. The cell a4 is having a formula which utilises values from a1, a2 and a3.
I could connect to this excel file easily using oledb provider (v4.0) Then I could also set the cell values of a1, a2 and a3. The result was appearing in cell a4 (i opened the excel file to check). But the only prolem is when I read the value from cell a4, it is not returned as is.
The value calculated in a4 : 6.67%
The value I get in .net code of the same cell: 0.092323323211... (something like this)
As a solution, I tried to copy the "value" part of a3 in other cell (like b3 = VALUE(a3)) and tried to read b3. But I get same result.
Is there any fix for this ? Am I missing somethig here specific to formulated cells? or is it a bug of MS oledb?
Thanks for any inputs....
Answer: Try adding IMEX=1 to your connection string.


Largest value of $p$ such that $f \in L^p$

Question: Let $X$ be a measure space of finite total measure and suppose that $f \in L^1(X)$. I know that since $\mu(X) < \infty$, $f\in L^p$ implies that $f \in L^q$ for all $q \leq p$. I am interested in $p = \sup\{r\in [1,\infty) : f\in L^r\}$. In particular, I am wondering if it is possible for $f$ to actually be in $L^p$. Clearly its possible for $f$ to fail to be in $L^p$ (cf. $1/x^{1/p}$ on $[0,1]$. It seems somewhat implausible that the integrals of $| f|^p$ would all be uniformly bounded up to some point $p$ after which they are infinite, but I am not sure how to prove this, or even if its true.
Comment: excuse me, I'm working just on an affirmation that you did here, that $f(x)=\dfrac{1}{x^{\dfrac{1}{p}}}$ with $x\in [0,1]$ fails to be in $L_p$, is it because $\int_{[0,1]}\mid f\mid ^p d\mu = \mid x\mid ^{-\dfrac{p}{p}}.\mu([0,1])=\mid \dfrac{1}{x}\mid $, and this goes to $\infty$ when $x\mapsto 0$?
Answer: Consider $\displaystyle{\frac{1}{x(\log x)^2}}$ on $\left(0,\frac{1}{e}\right)$, where $p=1$ and the function is in $L^1$.  By taking powers of this function, you can get any other finite value of $p$.  See also this related question.  Of course, the case $p=\infty$ is covered by any bounded function, and there are also examples of unbounded functions for which $p=\infty$, like $\log$ on $(0,1)$.


Primary Fermentation - Mold or Yeast by product?

Question: Anyone seen this before? Very light bread mold look only on the surface of primary fermentation. All equipment StarSan'd before use. I've been home brewing for many years and never had this happen so, no clue if this batch is ruined. Safe to drink? Also, brewed this 3 weeks ago.
Comment: I'd guess some part of the process of getting the wort into the fermenter introduced the infection.  When you're cleaning and sanitising, do an extra check on pumps and transfer hoses (etc.) for infections.
Comment: I read some comments elsewhere that it was safe to drink but, it smelled and tasted so bad I had to dump this batch. :( Still interested to hear any advice/comments. Obvious steps now are to thoroughly clean with chemicals before using again.
Comment: what was the taste ? acidic ? Sulfidic ? rancid ?
Comment: I'm not sure how to describe it but, it smelled like bread mold. The sample I tasted was from the bottom and the taste was the same as the bread mold smell.
Comment: I did eventually find the culprit after thorough investigation. The Mr. Beer spigot has a rubber piece inside, which I soak in cleaning solution before use every time. Turns out, there is more to this small rubber piece. You have to fold it inside out to get to every crevice. It's very difficult to do because you feel like it will break if you keep bending the rubber. After much struggling, I got it turned inside out and the mold inside almost made me sick. So, clean every surface and anything that can be turned inside out, do it :D
Answer: Seems like pieces of a pellicle from bacterial infection. Sanitize everything with bleach, rinse properly with water and then starsan.
Comment: I agree, bleach it all or replace it. The greenish blue color reminds me of a bread mold.
Answer: I was once told that a general rule is any white infection is salvageable as a sour if you so choose, any green must be dumped. Personally I hate sours and will dump all infections, and that's definitely infected. Dump it, don't even bother tasting it


What am I supposed to see on tensorboard images tab?

Question: I'm training an object detection model with Tensorflow and monitor the training task with tensorboard. I was expecting in the Images tab of tensorboard that displayed images would show a bounding box (at a specific point of training). What I see though is only images with an orange line drawn above the picture (the same orange that I expect for the bounding box). Am I missing something? Am I right when I say that a bounding box should appear or not? Picture of what I see is joined. Any help greatly appreciated.
Answer: This is what I see using data from Pascal VOC that was converted using this example script:
I am using Tensorflow 2. I think it's just the images preprocessed using the data_augmentation_options that were specified in your pipeline.config file.
I seem to recall seeing bounding boxes on the images in Tensorboard back when I was using the Object Detection API with Tensorflow 1. But I haven't seen any bounding boxes on the images using the API with Tensorflow 2. I have verified that the models subsequently worked. I just didn't see bounding boxes in Tensorboard. Note that I am just running training and then doing evaluation separately. If you specified eval_config or eval_input_reader in your pipeline.config, you might get different results.


What would be the effect of a combination of the Furnunculus Curse and the Jelly-Legs Curse?

Question: What would happen if the Furnunculus Curse and the Jelly-Legs Curse were used on someone at the same time? Would each curse just simply retain its regular effect, or would there be a new combined effect? If the latter, what would the new effect be?
Comment: -1 for lack of research, although I do understand why you posted this.
Comment: @Randal'Thor - Sure, but when you make it really blatant, you probably shouldn't expect people to pat you on the back.
Comment: @Randal'Thor - For me the frustration is the OP clearly knew the answer before posting, yet didn't self-answer.
Comment: @Valorum Dunno if Alex is one of them, but some people avoid self-answering because they fear downvotes / it might be seen as a 'rep grab' / they think it's against the rules / ...
Comment: @Randal'Thor - Posting a Q that you know the answer to (and not self-answering it) seems a lot like posing the site a puzzle to solve rather than a serious question that OP needs to have answered.
Comment: @Valorum I've done it many times, both here and on other sites. (Not counting [puzzling.se]!)
Answer: It seems to create little tentacles all over one's face.

"Thought we'd see what those three were up to," said Fred matter-of-factly, stepping onto Goyle and into the compartment. He had his wand out, and so did George, who was careful to tread on Malfoy as he followed Fred inside."Interesting effect," said George, looking down at Crabbe. "Who used the Furnunculus Curse?" "Me," said Harry "Odd," said George lightly. "I used Jelly-Legs. Looks as though those two shouldn't be mixed. He seems to have sprouted little tentacles all over his face. Well, let's not leave them here, they don't add much to the decor.".- Harry Potter and the Goblet of Fire, Chapter 37 (The Beginning)

So it seems like they did mix and it created the effect of spawning little tentacles all over Crabbe's face.


How do I get my music back on Banshee?

Question: My Banshee Media Player on my laptop deleted all my songs. I pressed "Remove from Library" on one song and it deleted all my songs. How do I get them back? I need help ASAP.
Comment: Is this a trick question? Please tells us what you have tried and what did not work. The songs removed from the library are only links to the music files on the hard disk. The song files are still in the music folder or whatever folder you downloaded them into. You repeat what you first did to get Banshee playing those files. If you have tried this and it did not work, then you must tell us.
Answer: As @grahammechanical said in the comment above, all of your music should still be on your computer -- probably in your ~/Music folder.  From within Banshee, go to Tools > Rescan Music Library and Banshee should automatically re-import all of the songs.  If that doesn't work, you can re-import manually by going to Media > Import Media, and choose to import your entire Music folder.
But removing all of your songs when you try to remove one is a very weird issue.  If you can reproduce the problem, I'm sure the Banshee developers would appreciate it if you report it here: http://banshee.fm/contribute/file-bugs/
Before you try to test this out (and in general, if you're worried about problems with your music library) you might want to make a backup copy of your database.  The following command will create a copy of your Banshee database in the same folder as the normal database:
cp ~/.config/banshee-1/banshee.db ~/.config/banshee-1/banshee.db.backup

Comment: Thank you soooo much! It actually worked! I would've never figured out how to do that! Thanks again!

How do I get my music back on Banshee?


Proxy server security

Question: I installed Squid, and in this server guide, there are some security configurations.
Is there any risks when using a proxy server?
What are Squid security threats?
Answer: The biggest risk with a proxy server is creating an open proxy - a proxy that anyone on the internet can use to reach any server on the internet.
Open proxies can be used and abused to get around censorship but also to conduct illegal activities, spread web spam, attack other servers, and other unwanted things.
You need to ensure that either the source or the destination is authenticated or restricted by IP address.  If it's a forward proxy, then it should only be possible for the authorised person to use it - not any arbitrary user out on the internet.  If it's a reverse proxy, it should only be usable for contacting the one particular website it's designed to proxy for - not any arbitrary site.
The above is in addition to the usual security considerations that apply to any software.

Proxy server security


LG V10 Phone stuck in BootLoop - recovery data

Question: I have a LG V10 Phone.  It is stuck in the BootLoop mode.  I want to recover the data from the phone.  Is there a way to recover the data without getting into the system?  Please advice.  Thanks, John
Comment: Please explain in the question the cause of bootloop - what you exactly did in your device that caused it..
Answer: The bootloop bug is a known issue with LG V10. If you have insurance on the phone, even if it is out of the original manufacturer warranty, you can go to your local cellular provider and have them cross-ship a refurb replacement to you.
To get to your data before getting your phone fixed or replaced, here's a link to a very sound incremental methodology: https://appuals.com/fix-lg-v10-bootloop/
The best thing about this process is that you start with the simplest solution and progress, and you'll learn more about the Android OS capabilities along the way no matter what your final outcome is.


What does backslash "\" escape character really escape?

Question: What does the backslash really escape?
It's used as an escaping character.  But I always wonder what's escaping, or what's being escaped from.
I know "\n" designates a new line. But what where does the escaping come in? Why is it called that?
Comment: It is escaping my wrath when it screws up my strings.
Answer: The backslash is used as a marker character to tell the compiler/interpreter that the next character has some special meaning. What that next character means is up to the implementation. For example C-style languages use \n to mean newline and \t to mean tab.
The use of the word "escape" really means to temporarily escape out of parsing the text and into a another mode where the subsequent character is treated differently.
Comment: Or escaping itself.
Comment: Depending on the character, a backslash may be telling the compiler/interpreter that the following character has **no** special meaning. For instance, when escaping quotation marks.
Answer: :))
It is a term related to that of an escape sequence and an Esc (escape) key.
The character itself isn't "running away" from any other character. One might say the character following the escape character (say, \n from your example) escapes the fate of being used as an ordinary n in some application, and is used instead as a newline.
Comment: This answer helped me best to understand, here are some examples in bash that helped me see it in action:
echo "$(echo "upg")" => upg

echo '$(echo "upg")' => $(echo "upg")

echo "\$(echo "upg")" => $(echo upg)

echo "\$\(echo "upg"\)" => $\(echo upg\)

echo "\$(echo \"upg\")"  => $(echo "upg")
Answer: Escape sequences have a lot in common with the concept of out-of-band communication:

Also sometimes used to describe what communications people call shift characters, such as the ESC that leads control sequences for many terminals, or the level shift indicators in the old 5-bit Baudot codes.

Let's say you're doing a file transfer over a serial port and you negotiate with the computer on the other end: "OK, here comes the file".  Since in the general case all characters might be valid file characters (if it's an ASCII file) you have some problems:

How do you know where the end of the stream is?
Some schemes use ASCII NUL (zero) to terminate, like strings in some languages, but then you can't have that character in the file.  That's not allowable in some settings, like file transfers.  Zero could be a valid character.
You could send the expected file length first, but what if you need to abort?

Various people throughout the history of computing have implemented lots of different methods to get around this problem.
In the case of literal strings in a programming language, it's a similar problem.  The first quote says "here comes the string - start reading until you get another quote".  Of course, then you have the problem of sending a quote character, so they invented the slash escape sequence.  If you see a slash and then a quote, then that's a literal quote, not the end of the string.  Unfortunately you just swallowed a spider to eat a fly, because now you can't send the literal slash-quote combination.  So, you can escape a slash with another slash.  So slash-slash means slash, slash-quote means quote.  That allowed them to use slash for other unprintable or hard-to-print characters like carriage returns, line feeds, tabs, etc.
Answer: It's an escape from the parsing context, that is demanding (what a villain) n to be interpreted as n instead of as a newline.
The most interesting distinction about it is that an escape doesn't
switch parsing context the way a quote character " (or many other
symbols) would do , requiring another " (or some other symbol) to
get back to the former context. They just take a little diversion but get
back on the road ASAP.
Yet no one talks anymore about parsing contexts, as much as no one seems to write parsers anymore, since the advent of xml and json. Some problems stop being mainstream, go into a niche and weird niche concepts like that remain lingering around.


How does one communicate their project if they suffer from a learning disability?

Question: I aspire to be a researcher one day and hopefully open a bunch of consulting firms to help others.  I have tons of great research project ideas ( e.g. polymer microfluidic circuit design for nano-robotics, etc) but I suffer from mild ADD, so I have a difficult time writing academic like papers, but I can make excellent PowerPoint presentations to communicate my idea, and they are pretty well detailed. I am very specific and I like to present it without elaborating much about it. If I want to be known or be recognised for my contributions, is it necessary for me to write academic papers to communicate my work, or can I simply use another medium of scientific communication such as powerpoint presentation to present my work.
Comment: This seems to be a question about academia, which has it's own Stackexchange site.
Comment: You need to find collaborators who can do the writing.  Which is not at all uncommon in research groups: one person will do the initial draft, others will suggest improvements, someone else will produce the final version.  And someone else might do slides for a conference...
Comment: @jamesqf: Your comment is the most helpful one, even the answers don't do justice. Thank you
Answer: You are talking about two completely different things - being a researcher and opening a bunch of consulting firms - as if it was one. It's not.
If you want to be a researcher as recognized by academia, then you have to pay your dues, get a PhD from an accredited institution and get three to four research articles published as part of your graduation requirement. Plus a 100-200 page thesis that you will have to defend before a committee comprised of faculty from your department. These academic requirements are non-negotiable.
If you want to open a bunch of consulting firms, then all you need is capital. You can do Powerpoint presentations to your heart's content as part of running your firms - You are operating as a business person and a manager of your firms. No formal degree or formal experience required.
Yes, there are researchers who have opened their own firms. The way they got there was by first earning their credentials. If you want to go that route, you can't escape writing research papers. Powerpoint presentations and youtube videos are not considered to be materials that are fitting for scientific peer review.
Comment: @viethnhiPhuvan Then explain me, how audioslides are now being accepted by some of the  most prominent journals. I have seen an audioslide discussing some design method on journal of microelectronics. I am pretty sure you can pay someone to write a paper for you, like I can do all the work, and make them write it for me. From your profile, you seem like a software engineer, so I have to consult others with the proper credentials. Thanks.
Comment: @NiloyAlam - https://www.elsevier.com/connect/audioslides-allow-authors-to-make-mini-webcasts-about-their-papers You still have to write the paper. Dream on. If you get caught paying somebody to write your papers, that the end of your academic career. Don't take my word for it -  Do you feel lucky?
Answer: If you aspire to be recognised by academia, you need to use the formal methods. Powerpoint presentations are presentations not serious dissertations. Great for sales people, but without being open to discussion they're not going to be met so well by serious academics I would think. You have to be prepared for peer review and to back up your ideas as well.
If academics are not your target, then yes, PP presentations are great for getting funding and sales, but you usually need some credible academic backing behind them for research funding, over here anyway.
Disclaimer:- I'm not an academic although I deal with plenty of them in a couple of fields.


Sharepoint 2013 onpremise migration to SharePoint Online

Question: .        I need some advice.I would like to migrate a site collection to SharePoint online.I know i have options like shaeegate or metalogix but not all clients have these tools and money.
Can i use powershell? Its not a big site.
Any tips or ideas shared would be appreciated and thanks in advance
Comment: Since it's not a big site, [metalogix trial](http://pages.metalogix.com/trial-content-matrix.html) allows you to migrate max 10GB for free.
Comment: Hi Sergei, Thanks for the tip.About the content migration express? Is this stil available?
Comment: Sorry what is migration express?
Comment: Sergei its the same as Metalogix (content matrix)
Answer: Introduction
Use PowerShell migration Azure APIs [ARTICLE].
This involves the script which is helpful in creating SPO Migration Package from SharePoint Onprem Content using PowerShell Commands i.e. exporting the lists, document libraries, form libraries etc. of a site collection or a site.
Business case
Azure APIs are provided by Microsoft. These APIs can be used to save the overall licensing cost of migration tool. Effective Time utilization as well as Work fragmentation by using this API.
Targeted Audience

SharePoint Application Developers
SharePoint Administrator
SharePoint Architect

Technologies used

SharePoint onprem (SP2010/SP2013/MOSS-2007)
SharePoint Online (Office 365)
Online management PowerShell
Azure storage, blobs & containers
Require as access to Azure Management tool for creation of the Azure Blob's

Pre-requisites
RDP to a WFE for SharePoint Onprem Server
Valid Office 365 subscription
Valid Microsoft Azure subscription
SharePoint Online management shell version 16.0.4017.1200 or above version. Download here More details at https://technet.microsoft.com/en-us/library/fp161372.aspx
windows PowerShell 3.0 and above version
SharePoint Admin Tenant account access is required.
Migration Steps for SharePoint Online (O365–SPO) from SharePoint Onprem
To keep things simple, let's divide the entire process in few steps:
For migrating the content from SharePoint On-Premise to SharePoint Online includes five steps as below.

Create SPO Migration Package from SharePoint On-Prem Content.
Prepare Final SPO Migration Package.
Upload SPO Migration Package to Azure Blob Containers.

Submit Migration Job.
Check Migration Job Status (Optional).
Answer: The most optimistic answer for the question is Yes. But it all depends up on the analysis and after gathering the basic details on the inventory of the on-premise site collection
Such as :

number of lists, document libraries (also, versions - if yes its gonna be really complex and time consuming)
Customization's
Page layouts
Permissions and with granular item level permissions if any
no.of sub sites
Content size

Overall there are two preferred API support which are CSOM/Powershell based CSOM and Rest based services. CSOM is the most suitable but even it has certain limitations.
If you have complex customizations and granular permissions then it will be very tedious to do this kind of script based migration.
Overall, you might end up writing the custom solution/scripts but those are not really a fault tolerant/proof when compared to a tool based approach.
So better you weigh these options and decide based on the available time, resources and complexity.
Answer: Well Usually there are 3 ways that you can go about migration
1) manually - but this is terible solution, noone should ever even consider it.
2) Hybrid - which is good, for a transition period but essentially a cheat, since you don't move sites. Actually this method is also used if you imnvest heavily in SharePoint server customization, but I guess taht in your case this is not the case.
3) 3rd party tool like sharegate. Which is actually the only logycal option.
If you do indeed have heavy customizations on the server side, I would advise contacting some organization that can assis you in migrating your SharePoint, especially if we are talking about corporate environmnt here. Might I suggest Digital Design, here is a link http://www.digdes.com/services/sharepoint-to-office-365-migration . I pesonally was quite pleased with there services.


How do I redirect the "No Result" search page to Add node?

Question: I would like to redirect the "No result found" page of the drupal search to Add node. Basically I want when users search for an item using the search text box they get redirected to the Add node page when the item is not found.
Answer: I was really hoping that _preprocess_search_results(&$vars) would work, but it only gets called when there are results, so, here are two really really I can't believe I am suggesting these but they should work ways:
Drupal 6:
In your theme's template.php file, you can retheme box, which is how drupal 6 creates the 'no results found' info:
function YOURTHEMENAME_box($title, $content, $region = 'main') {

  if ($title==t('Your search yielded no results')) {
    drupal_goto('node/add');
  } else {
    $output = '
'. $title .'

'. $content .'
';
    return $output;
  }
}

If Drupal 7:
Copy search-results.tpl.php from the search module's directory to your theme directory and change it:
<?php if ($search_results): ?>

<?php print t('Search results');?>

  <ol class="search-results <?php print $module; ?>-results">
    <?php print $search_results; ?>

  <?php print $pager; ?>
<?php else: ?>
  <?php drupal_goto('node/add'); ?>
<?php endif; ?>


What is the difference between these comments

Question: What is the difference between these types of comments in ASP.NET's ASPX markup page?
<%-- something here --%>

and the html comment

Answer: The first you will only see in the ASPX and not the rendered HTML Page
The second will be rendered as part of the HTML
Answer: The first is a server side comment. It will stop the .NET code from executing.
The second is plain HTML comments. The .NET code inside the comments will still be executed on the server-side but the resulting markup will be commented out to the browser.
Scott Guthrie has a short but sweet blog post covering the differences a little more:
Tip/Trick: Using Server Side Comments with ASP.NET
Answer: The <% ... %> comment is a so called server-side comment (and will not be shown in the final output).  is a regular HTML comment (and will be shown in the browser by viewing the source).

The key difference is that with
  client-side comments it is the browser
  which is ignoring the content within
  them.  Code/controls within
  client-side comments will still be
  executed on the server and sent down
  to the browser.  As such, if there is
  a server error caused within them it
  will block running the page.

Read more about the differences here: Using Server Side Comments with ASP.NET 2.0
Answer: the first one would not appear in the final HTML output.
the second one is how you comment in HTML and it will appear in the HTML output.
Answer: This is a server side comment and will not appear in the HTML markup:
<%-- something here --%>

This is an HTML comment and will appear in the HTML markup, as it is part of it:


selecting the search result in watir

Question: Currently i need to search a text and select the expected result from the search list.Search result displays with li tag and the text resides under span tag. Searching text will be like this Phone,Phone-audio,Phone-video .My source code is displaying like below..Please help me to select either Phone-audio or Phone-video.

Phone

Phone-audio

Phone-video

Answer: That html doesn't make any sense, and definitely isn't per standard. Neither the span nor the -audio or -video are inside the li tags. I'm not even sure what element you need to click.
If it was html was compliant it would be as easy as:

browser.span(text: 'Phone-video').when_present.click

or maybe this would work, depending on the rest of the site's html, but it would be very flaky if anything changed:

browser.ul.span(index: 1).when_present.click

selecting the search result in watir


Should I use Async & Await, instead of Coroutines, in Unity?

Question: Should I use Async & Await in Unity?  Or should I keep using Coroutines?  If I should use Async & Await, how can I do so in a manner comparable to Coroutines?
Answer: In contrast to Evorlor's answer, here are some good reasons to use Coroutines:

They've been the standard solution in Unity for many years and anyone else you bring onto the team should already be comfortable with them.
They are in step with the engine. WaitForFixedUpdate() ensures that the next step in the Coroutine will be run during the Fixed Update cycle. WaitForEndOfFrame() ensures that the next step will be run in the Update cycle. If you use C#'s async/await, there's no way to ensure it's complicated to ensure that the code remains in-step with the engine (see below).
Likewise, WaitForSeconds() takes the current Time.timeScale into consideration, something that's not possible with await.
Coroutines are automatically stopped when the object that is running them is destroyed or disabled (this is occasionally undesirable, in which case you might want async/await).

When should I not use coroutines?

When you want a coroutine-like function to return a value (see this blog post recommended by DMGregory for how to configure these to work with the main thread when needed)
If you are having trouble getting error handling to work with your coroutine (see blog post from previous bullet. Note that you can put a try-catch block in a coroutine, as long as that block doesn't include a "yield" instruction).
If you've profiled your application and found that coroutines are costing you performance overhead that you can't spare, and this can't be fixed by optimizing your coroutines (unlikely for most games)
If you need to run a coroutine-like function from a regular C# class that doesn't extend MonoBehaviour
If you need a coroutine-like function to keep runnning when its GameObject is destroyed or disabled.
When working with a library that makes heavy use of async (e.g. Google Firebase)
When your code needs to be parallel (multi-threaded). Although they can be used to improve performance by distributing an expensive operation over multiple frames, Coroutines are not threaded. When you need multi-threaded code for maximum performance, use C# Threads or the Unity Job System.
If you have any other good reason not to use coroutines

In my experience, all of these exceptions are very rare and you don't normally need to consider them. YMMV depending on the project and your coding style.
Comment: Although I've never found it necessary, I sometimes contemplate creating a global CoroutineManager object for the very reasons you point out. That is, there's a shared object specifically designated as one to launch coroutines on that is guaranteed to be good for that purpose.
Comment: responding to these two bullets: "If you need to run a coroutine-like function from a regular C# class...
If you need a coroutine-like function to keep runnning..." Note that I frequently start coroutines on some *other* object to get around both these limitations. You can call otherObject.StartCoroutine(MyMethod())
Comment: @jhocking Yes, but that can be conceptually confusing, and there's a risk of accidentally killing the coroutine by deactivating or destroying the object that's running it. The more developers on the team, the more likely this trick will cause confusion or bugs. And issues caused by coroutines stopping prematurely are often particularly difficult to diagnose.
Answer: Should I use Async & Await or Coroutines?
You should use Async & Await.  Coroutines were Unity's solution to running multiple simultaneous processes at a time when the version of C# it supported did not have Async & Await.  Now that Unity's version of C# supports Async & Await, Coroutines are obsolete.
What is the difference between them?
Coroutines check back every frame to see if the condition has been met.  Async & Await set a timer, and come back when the time is up.  Async & Await is more efficient, but negligibly so.  Async & Await can have return values much more easily than Coroutines.
How can I use Async & Await in place of Coroutines?
These two code snippets behave the same way:
public IEnumerator CoroutineMethod()
{
    //Exits method early
    if(ShouldEarlyExit())
    {
        Debug.Log("Early exiting.");
        yield break;
    }

    //Wait until condition has been met
    yield return new WaitUntil(() => ConditionMet());
    Debug.Log("Condition has been met.");
    //or
    while (!ConditionMet())
    {
        yield return new WaitForEndOfFrame();
        Debug.Log("Condition has been met.");
    }

    //Run code every n seconds
    while (true)
    {
        yield return new WaitForSeconds(1.0f);
        Debug.Log("waiting for 1 second.");
    }
}

public async void AsyncAwaitMethod()
{
    //Exits method early
    if (ShouldEarlyExit())
    {
        Debug.Log("Early exiting.");
        return;
    }

    //Wait until condition has been met
    while(!ConditionMet())
    {
        await Task.Delay(Mathf.CeilToInt(Time.maxDeltaTime * 1000));
        Debug.Log("Condition has been met.");
    }

    //Run code every n seconds
    while (true)
    {
        await Task.Delay(1000);
        Debug.Log("waiting for 1 second.");
    }
}

Comment: Note that the two pieces of code you've shown do not behave the same in a few important ways. 1) If the MonoBehaviour running the coroutine is destroyed/deactivated, the coroutine stops, but the async method continues looping forever. 2) The coroutine respects changes to Time.timeScale, whereas the async method ignores this. (The coroutine can be made to use unscaled time with WaitForSecondsRealtime if desired) 3) A delay proportional to deltaTime as shown here does not guarantee the async method resumes at a particular phase of the game loop.
Comment: This answer seems to be at odds with [Unity's own recommendations on when to use Coroutines vs Async/Await](https://www.slideshare.net/unity3d/best-practices-async-vs-coroutines-unite-copenhagen-2019). Specifically they recommend using async/await for IO (including user input and network calls), and continuing to use coroutines for fire-and-forget behaviours.
Comment: In my experience, coroutines remain useful, so I think calling them 'obsolete' is misleading.
Comment: @DMGregory I definitely didn't cover all the differences, or even close. Just the basics.


How big is too big in flutter shared_preferences?

Question: I am currently working on the cache handling of the app. Shared_Preferences documentation states that bigger information should be stored somewhere else, but all I work with is pretty much Arrays that can only be up to 800-900 elements long, containing simple integers.
Answer: There is basically no limit specified for storing the data in SharedPreferences
Still, its an advice to store big data in Database, because you can access Objects from it, and shared preferences can only store primitive data types(String, int, float, etc)
Answer: Both Android's SharedPreferences and iOS NSUserDefaults are basically just proxies over XML files which are stored inside application's internal storage area, and do not have storage limits.
If your design is compliant with using shared preferences instead of, for instance, database, then I suppose that you are good to go.


email asking professor for help

Question: I have been rejected by a particular university for MS two times now. I really want to get into it to work with a professor. I am thinking of emailing him to ask him what I can do to improve myself to become acceptable. I am trying to improve myself on various fronts that I can think of, so I would like ask him if I am on right path. I am a first generation student and I have no guide to ask, so he is that only one I can think of, to ask these questions. What would be the proper subject line for this? Right now I have "Help needed to improve myself" as subject. In the body, I will explain my situation and ask him if he could give me some of his time. What would be the proper way to proceed in asking for his help?
Comment: I would use a subject that is more specific like "Quick MS application feedback"
Comment: Ask for "feedback" on what you could do to improve future applications.
Comment: @FedericoPoloni I do understand that professors are people too, but aren't they people with very less time on their hands? Though the list provided in linked answer doesn't cover my issue. I am just asking for advice, whether my subject line is good enough to grab receiver's attention.
Answer: "Help needed to improve myself" sounds weird and spammy. I would suggest something like "MS application help", and make sure the body of the email is concise and to the point.
Answer: If you want to work with this professor and hope to receive some help, you need to be familiar with their research. Then you can legitimately write "Prospective student interested in your research" as subject line. What to include in the email:

You are interested in their research because of X, Y, and Z
You want to apply to the MSc program and you are wondering whether the professor will accept Master's students in the coming year
You have already applied twice and, despite what you think is a good CV, you have been rejected. Politely ask whether the professor would be willing to provide feedback on your CV to improve your application.

Note point 2: the professor may not be looking for MSc students! Lab needs fluctuate, professor may go on leave, may be busy with other projects, and so on. There are many reasons that have nothing to do with you why the professor may not be willing to accept you.
Good luck!

email asking professor for help


Display Vertices as Circles

Question: Is there a way to display circles instead of squares for vertices in object mode?  In preferences, only Vertex Size can be changed.
Thanks!
Comment: What is a reason for that?
Comment: I want to render millions of imported foam particles and the easiest solution Is to render them in a viewport as vertices (viewport->viewport render animation). Shading and composing of the whole thing can be made in After Effects. There is apparently no other solution to render foam particles in Blender easy way (the only solution is to make millions of instances which kills GPU memory pretty fast) Circular vertices would be at least a minor improvement when rendering the viewport foam.
Comment: Sorry for delay, I lived in a feeling - instancing is light solution (even simple circle Tracked to Camera is heavy?). What about particles Halo?
Answer: You can render (Viewport > Viewport Render Animation) just as particle's   Halo (default particle Point) ... the only one thing that differs is perspective (far particles are smaller than front ones).
Since it isn't geometry, just visual representation, could be memory intensive as representation of vertices.
Under Overlay Properties in 3D view editor enable Statistics to see from how many vertices your "foam" consists. Add Particle system with the same amount of particles as vertices. Frame Start 0 End 1 (or go to Render > Extra > Unborn). Source > Vertices (disable Random Order). Physics Type > None.
Default size 0.1

Size 0.01
Comment: +1... as this could work.. but how to go from his/her data to the particles?
Comment: How gentle request to complete my poor answer :) You are right +1

Display Vertices as Circles


connect owncloud to ubuntu one

Question: Is it possible to connect ownCloud to ubuntu one over the "External storage support" app in ownCloud. It works pretty well with dropbox and Google Drive.
Answer: No. Unfortunately it is not. As you probably have seen, Ubuntu One is not listed in supported protocols in the external-storage dropdown menu in your Owncloud environment.
In fact, the protocol that is used for U1 is not a standard protocol (but Google Drive and Dropbox are not standard either). It is developed by Canonical. It is called ubuntuone-storageprotocol. API's to interface with Ubuntu One are however available so there is nothing stopping the owncloud devs to start supporting this. It just hasn't happened (yet).
Comment: I don't know what you think makes what dropbox or Google Drive do, be "standard" protocols. They are completely non-standard protocols.
Comment: Forgive me @dobey but where exactly did you see me write that they did :) ?
Comment: what I was just trying to emphazise was that you can't connect from Owncloud to U1 storage using standard protocols like webdav, ftp and such.
Comment: your answer implies they are standard, and the U1 protocol is not. You do not say that owncloud is using DAV or FTP to talk to dropbox or Google Drive, and AFAIK, you can't use those to talk to either one.
Comment: Sorry still not reading it like that myself, but no worries! I will edit the answer to make it totaly unambiguous

connect owncloud to ubuntu one


How to assign task, resources to trips

Question: In a scheduling problem I want to assign the resources to tasks, each task has earliest start date, latest start date and duration. Also each resource has fixed number of available hours in a day. The problem is resource and task are located at different locations and each task have their own time window. A resource can make a trip to a location and complete certain number of tasks and come back. Later on it can make second trip and complete certain number tasks. For each hour (worktime, wait time) spent at destination location there is a cost. What tasks shall I assign in a trip so that there is minimum cost of assignment and when shall a resource start a trip ?
Comment: The problem you mentioned sounds like a variant of VRP that is CVRPTW (capacitated vehicle routing) in which the number of capacitated resources should be travelling between the number of distinctions in the specific time window. Also, if you are willing to schedule only one resource it can be reduced to a TSPTW or TSP with job processing time. Do you try that?
Answer: As pointed out by A.Omidi in the comment above, your problem is a Capacitated Vehicle Routing Problem with Time Windows (CVRPTW). It can be naturally modeled by following a list-based modeling approach. This is a modeling approach offered by Hexaly, which is different from traditional solvers. Note that Hexaly is commercial software. Nevertheless, it is free for faculty and students.
Below is the code snippet to model the classical CVRPTW problem in Hexaly Modeler:
<code>function model() {
  customersSequences[k in 1..nbTrucks] <- list(nbCustomers);

  // All customers must be visited by the trucks
  constraint partition[k in 1..nbTrucks](customersSequences[k]);

  for[k in 1..nbTrucks] {
    local sequence <- customersSequences[k];
    local c <- count(sequence);

    // A truck is used if it visits at least one customer
    truckUsed[k] <- c > 0;

    // The quantity needed in each route must not exceed the truck capacity
    routeQuantity[k] <- sum(0..c-1, i => demands[sequence[i]]);
    constraint routeQuantity[k] <= truckCapacity;

    endTime[k] <- array(0..c-1, (i, prev) => max(earliestStart[sequence[i]],
      i == 0 ?
      distanceWarehouse[sequence[0]] :
      prev + distanceMatrix[sequence[i-1]][sequence[i]]) + serviceTime[sequence[i]]);

    homeLateness[k] <- truckUsed[k] ?
      max(0, endTime[k][c - 1] + distanceWarehouse[sequence[c - 1]] - maxHorizon) :
      0;

    // Distance traveled by truck k
    routeDistances[k] <- sum(1..c-1,
      i => distanceMatrix[sequence[i-1]][sequence[i]]) + (truckUsed[k] ?
      distanceWarehouse[sequence[0]] + distanceWarehouse[sequence[c-1]] :
      0);

    lateness[k] <- homeLateness[k] + sum(0..c-1,
      i => max(0, endTime[k][i] - latestEnd[sequence[i]]));
  }

  // Total lateness, must be 0 for a solution to be valid
  totalLateness <- sum[k in 1..nbTrucks](lateness[k]);

  nbTrucksUsed <- sum[k in 1..nbTrucks](truckUsed[k]);

  // Total distance traveled
  totalDistance <- sum[k in 1..nbTrucks](routeDistances[k]);

  minimize totalLateness;
  minimize nbTrucksUsed;
  minimize totalDistance;
}
</code>
The complete Hexaly Modeler code and the corresponding Python, Java, C#, and C++ codes are here: https://www.hexaly.com/docs/last/exampletour/vrptw.html.
Following this modeling approach, Hexaly finds quality solutions (optimality gap less than 1%) for CVRPTW instances with thousands of customers to visit in a few minutes.
For an introduction to the list-based modeling approach for combinatorial optimization, look at https://www.hexaly.com/docs/last/advancedfeatures/collectionvariables.html.

How to assign task, resources to trips


Who created the default Ubuntu wallpaper?

Question: Who created the default Ubuntu wallpaper? I mean the wallpaper displayed at this link.  It is beautiful and I am curious: was it Mark Shuttleworth himself?
Comment: Looks like a mix of the 10.XX wallpaper and the 11.xx, add to that the purple at the far right.
Answer: I think it's a worf of the  Canonical Design Team Blog.
Update: Now that i've read a little, i believe Canonical held some sort of contest where users could contribute with artwork, Wallpaper competition i believe, and maybe some user won and got his wallpaper published.
You can read more here:

https://launchpad.net/ubuntu/maverick/+source/ubuntu-wallpapers/0.31.6
https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/621287
https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/625193
https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/629216
https://blueprints.launchpad.net/ubuntu/+spec/design-m-wallpaper-competition
Comment: The wallpaper contest ones are in addition to the default wallpaper.
Answer: The default wallpapers in Ubuntu since 10.04 have been made by Otto Greenslade (Portfolio).
Prior to 10.04, the wallpapers were mostly created by Ken Wimer (Blog). I say "mostly" because my memory is a bit hazy if he created every single older wallpaper, but he was the designer of the wallpapers prior to 10.04.


What Drafting / Technical Drawing questions are in Scope?

Question: How do we, as a community, want to handle drafting (or technical drawing) questions that come up? What are in scope? What are out of scope?
Comment: After the scope is decided we need to decide on the tagging system so we dont have to come back and modify it later on.
Comment: Like what? Define "drafting/technical" -- Using Autocad or CNC systems.. probably out of scope.... using Sketch/Inkscape/Illustrator obviously in scope...
Comment: @Scott Questions about scale, projections, perspective. Using tools like autocad, illustrator, rulers, scales, flexible curves, french curves, protractors, vellum. How to best show measurements, angles, and labels. All sorts of stuff really.
Answer: Technical drawing should be mostly out of scope unless it deals with making a technical drawing into a illustration, some basic principles, layout of graphs,  producing technical drawings to print or orthographic drawing which may be a graphics designer skill also.
Please note one of my jobs is teaching drafting to very high end automatic CAE/simulation setups at the Aalto University School of Engineering. So im more than capable of answering these questions. I however think they clearly belong to Mechanical engineering SE that's under works. Tough mainly because engineering is a alien concept to most designer and may cause lot of confusion and contradictions.
EDIT
General rule of thumb would be that once you cross the line into why, and how for more complex concepts your out of scope. 3D cad would be out of scope because you can not avoid the why, how and what you intend. Hence symbolism and what the drafting means is defiitely out of scope.
PS: Technical drawing is (or has been since 1960s) being phased out from drawing so engineers do not draw as much as describe geometry mathematically.
Comment: Surfacing and tolerance marks, parametric and 3D CAD, analytic geometry projections, hatching and finishing rules cnc milling parh design etc
Comment: If you think that illustration, basic principles, producing technical drawings for print, or understanding various projections are all on topic.... then what aspects of Technical Drawing do you feel are out of scope?
Comment: I agree with all of that but hatching unless we're thinking of two different things. You're talking about hatch patterns? Why wouldn't those be on topic here?
Comment: If its a question of how to produce them in say illustrator yes but explanation fo what they mean may not be within topic or we fall into engineering pretty quickly.
Answer: Long ago, I did tech drawing in art school. On paper...
And I agree with Joojaa - technical drawings have certain standards, own language, terms and obey rules that are better found elsewhere. But if you mean "technical" drawings such as assembly instructions, IKEA-style, than I figure that is within scope.
But then that is illustrations, not really technical drawing. Technical drawings are - like botanic "illustration" (they are not really illustrations) - lightyears from graphic design. What I would like to see more of, however, is questions about illustrations as defined in the  illustration.


Find $\sin x$ and $\cos x$ knowing $\tan x$

Question: I know $\tan x=-2\sqrt2$. How to find $\sin x$ and $\cos x$ if $x\in[-\frac{\pi}{2},0]$? They probably would be $-\frac{2\sqrt2}{3}$ and $\frac{1}{3}$ respectively but I don't know how to prove it.
Answer: We know the signs.
We have $$\sin x = -2\sqrt2 \cos x$$ and
$$\sin^2 x+ \cos^2 x = 1$$
Substitute the first equation into the second, and you can solve for $\cos x$. Remember $\cos x>0$ in this quadrant. After that you should be able to recover $\sin x$ using the first equation.
Answer: Take $\sin x=y$ which means that $\cos x= \pm\sqrt{1-y^2}$ where the sign depends on the quadrant of interest. Now equate their ratio with $\tan x$ and solve. Again, you choose the appropriate value of $y$ depending on your coordinate of interest.
Answer: The given suggestions are good and simpler, as an alternative for a direct calculation recall that for $\theta\in(-\pi/2,\pi/2)$
$$y=\tan \theta \iff \theta=\arctan y$$
and therefore since in that case $x\in(-\pi/2,0)$ by $y=-2\sqrt2$ we can use that by composition formulas

$\sin x= \sin (\arctan y)=\frac{y}{\sqrt{1+y^2}}$
$\cos x= \cos (\arctan y)=\frac{1}{\sqrt{1+y^2}}$
Answer: Use the basic relations
$$\cos^2x=\frac1{1+\tan^2x},\enspace\text{whence }\quad \sin^2x=\tan^2x\cos^2x=\frac{\tan^2x}{1+\tan^2x}.$$
So $\sin x$ is known up to its sign. On $\bigl[-\frac\pi2,0\bigr]$, it is negative or $0$.


Can we say " the most similar passages"?

Question: A comparison of the most similar passages from this tradition could shed light, I hope, on the interpretation of the first Palladan monosyllabic substantive.
Comment: Clearly you *can say* (= *are able to say*) - but whether it makes sense is a separate issue! ;)  But the more important points are "comparison with what?", and "similar to what?"  I don't understand what your sentence is trying to say.  What are the passages similar to? .. to one another? or to something in another sentence which you haven't included?
Answer: Yes, as you can see from this Google ngram, the expression "most similar" has been rising in use since about 1750 in the written English language. So to speak of "most similar passages" is correct English usage, if that was your question.