If I purchase a ticket with an age condition, at which point should the condition be satisfied?

Question: I'm going on a trip, and different ages have different prices.
Should I use the age when I leave for the trip or come back from the trip?
The price is for plane flights.
Answer: In general the age you are when you fly is what counts AND that is both directions.
As an example, if you are looking at a youth rate, the airline will look at your age on both legs and the fare will be based on the higher rate.  ie if you fly out under a youth rate, but have a birthday and return as an "adult", then the entire airfare will be based on adult rates.
Same for infant fares, if your child turns 2 while traveling, the entire ticket will be at 2 year old fare, not infant fares.
While you could conceivably buy two one ways, one at each rate, the cost of one ways are considerably more than discounted round trips, so not really advantageous.
Comment: The "infant becoming a child" rule isn't set, some airlines (eg [British Airways](http://www.britishairways.com/en-gb/information/family-travel/planning-your-trip)) will happily sell you an infant price for a child which becomes 2 during the trip
Comment: As I said ... "in general".  You can find exceptions to most rules in travel.
Answer: I suspect that your age on the date of departure is the significant factor.  If your birthday is in the middle of the trip, it might be possible to purchase a ticket where the outbound leg is booked under your current age and the return leg is booked under your new age.  If that is not possible then the entire ticket will probably booked based on your age at the start of the trip.


Identifying array elements, rearranging them, and replacing them

Question: I am completing the CodingBat exercises for Java, and, having learnt from the answers to the previous one, I completed the one that follows:

Return a version of the given array where all the 10s have been removed. The remaining elements should shift left towards the start of the array as needed, and the empty spaces a the end of the array should be 0. So {1, 10, 10, 2} yields {1, 2, 0, 0}. You may modify and return the given array or make a new array.

Here is my code:
public int[] withoutTen(int[] nums) {

    int slow = 0;

    for (int fast = 0; fast < nums.length; fast++) {
        if (nums[fast] != 10) {
            nums[slow] = nums[fast];
            slow++;
        }
        if (fast == nums.length-1) {
            for (int i = fast; i >= slow; i--) {
                nums[i] = 0;
            }
        }
    }
    return nums;

}

Please bear in mind I am doing these without importing anything extra like java.util.Arrays etc., as, primarily, this is not accepted by the assessor and, secondarily, I want to get to grips with arrays without importing anything extra yet.
I was taking influence from the comments I received on the previous question, by using a fast and slow variable for looping through the array, and limiting the code to one main for loop, for the sake of making my code generally better and putting efficiency into practice.
How could this be optimised? Is it ok to begin another loop only for the circumstance of fast reaching the last element in the array? It feels like I am repeating myself by saying "if we get to the last element..." because we absolutely will do anyway.
I played around with setting fast outside the loops, so that the second for loop can begin after the first (as opposed to nesting it). At that point, fast would be set to the last value anyway from having completed the previous loop, but more and more values would be set outside the loops. Which way makes more sense?
Answer: It's extraordinarily confusing to have if (fast == nums.length - 1) as a conditional within a loop that continues while fast < nums.count returns true.  This is the last part of the loop, and it only executes on the last iteration of the loop... so why is it even in the loop at all?
A couple of comments in our code can help us out.  We have two distinct parts:

Shuffling the non-tens to the front.
Zero-ing out the tens.

So let's use comments to mark these in distinct blocks.  And, let's move the second part to its own loop.
And while we're at it, let's make the method more generic to replace any number with another given number.
public int[] replaceNum(int[] nums, int eliminationNum, int replaceNum) {
    int nextMoveIndex = 0;

    // shuffle non-elims to the front
    for (int i = 0; i < nums.length; ++i) {
        if (nums[i] != eliminationNum) {
            nums[nextMoveIndex++] = nums[i];
        }
    }

    // zero out the elimination number
    while (nextMoveIndex < nums.length) {
        nums[nextMoveIndex++] = replaceNum;
    }

    return nums;
}

Answer: First, I would give slow the same scope as fast - give them both loop scope:
for (int slow = 0, fast = 0; fast < nums.length; ++fast) {

Second, rather than creating a new variable i and iterating backwards, I would write my second loop like this:
for (; slow < nums.length; ++slow) {
    nums[slow] = 0;
}

Instead of creating a new variable int i = fast and iterating backward until it is equal to slow to set the remaining elements of the array to 0, I just start with the variable in slow and iterate until the end of the array is reached.  This will work because the outer loop has finished iterating anyway because once fast == nums.length - 1, we exit the outer loop.
Third, put spaces around your mathematical operator(s) to make it easy to read:
if (fast == nums.length - 1) {

Otherwise, I see nothing wrong with your code, you use reasonable variable names, you use braces around your ifs and loops, and you indent your code nicely.
Comment: I think I was simply focussing too much on *not* using two separate loops, but this makes far more sense. Thanks for your feedback
Answer: I think you did pretty good job on the algorithm here, as all array elements are checked and only nr-of-10 zeros are appended to the "good" numbers.
The one optimization I would add is to put the if code outside the first loop, so it is not repeated for all array numbers but run only one time after first loop is done. The if check itself is not needed anymore as condition is checked in for loop. In code it will look like below:
public int[] withoutTen(int[] nums) {
  int slow = 0;
  // put "good" numbers in array head
  for (int fast = 0; fast < nums.length; fast++) {
     if (nums[fast] != 10) {
       nums[slow] = nums[fast];
       slow++;
     }
  }

  // here we need to zero out array tail
  for (int i = slow; i < nums.length; i++) {
    nums[i] = 0;
  }
  return nums;
}

Here is DEMO
Answer: To me, the signature of the method and its name implies that it returns a new array.
public int[] withoutTen(int[] numbers)

If the intent is to modify the provided array I would rename it and make it return void.
public void removeTen(int[] numbers)

If we go ahead with the with the non-modifying approach we get a very simple pure function:
public int[] withoutTen(int[] numbers) {
    int[] result = new int[numbers.length];
    int resultIndex = 0;

    for(int number : numbers) {
        if(number != 10) {
            result[resultIndex++] = number;
        }
    }

    return result;
}

Answer: Here's my solution. I have two solutions, but the first one is better because it doesn't waste resources.
public int[] withoutTen(int[] nums) {
        //Create an ArrayList to add the iterations where ten is.
        ArrayList<Integer> tenPlaces = new ArrayList<Integer>();
        //Get the place where the tens
        //Create a return array to manipulate, set initally to nums.
        int[] ret = nums;
        for (int i = 0; i < ret.length; i++)
        {
          //If we find a number that is not a ten, we add it's place to the ArrayList
          if (ret[i] != 10)
          {
            tenPlaces.add(i);
          }
          //Otherwise, if it is ten, we change it to zero.
          else
          {
            ret[i] = 0;
          }
        }

        //Sort the return array by using the ArrayList.
        for (int i = 0; i < tenPlaces.size(); i++)
        {
          int temp = ret[i];
          ret[i] = ret[tenPlaces.get(i)];
          ret[tenPlaces.get(i)] = temp;
        }
        //Finally return ret;
        return ret;

        /*
        Other Solution
        int size = nums.length;
        int tenAmt = 0;
        ArrayList<Integer> foo = new ArrayList<Integer>();
        for (int i = 0; i < size; i++)
        {
          if (nums[i] == 10)
          {
            tenAmt++;
          }
          else
          {
            foo.add(nums[i]);
          }
        }
        int amtLeft = size - tenAmt + 1;
        for (int i = 0; i < amtLeft; i++)
        {
          foo.add(0);
        }
        int[] ret = new int[size];
        for (int i = 0; i < size; i++)
        {
          ret[i] = foo.get(i);
        }
        return ret;
        */
  }

Comment: The purpose of *Code Review* is not providing solutions. We review the code. The most important part is explanation of the changes. Please add a better explanaion on why your proposal is better.


Is "There were hundreds of students, not much of whom were girls" correct?

Question: Is the sentence " "There were hundreds of students, not much of whom were girls" correct?   Can we use much instead of many in these structure.
Comment: We use "many" with countable things, and girls are usually countable. We use "much" with non-countable things - "There was not much petrol left in the tank".
Answer: "Much" is a word used for non-countable items. These items include things like fluids or non-physical substances; an example would be milk. I cannot have 5 milks or 10 milks, I just have milk.
Since girls can be counted (you can have 1 girl or 100 girls), you should either use "not many" or "few". So, two possible ways of writing the sentence would be:

"There were hundreds of students, not many of whom were girls."
"There were hundreds of students, few of whom were girls."

I would personally prefer to use "few" in most cases.


Is there an up to date .net sdk or library?

Question: Some companies want to interact with prebuilt c# code. Is there a more high level interface than writing lots of p-invokes?
Comment: I suppose you've probably seen this one https://github.com/ajuna-network/SubstrateNetApi and are looking for something more up-to-date and refined? I'd like to see that too
Comment: Yes, there's also https://github.com/usetech-llc/polkadot_api_dotnet but both have not been updated in a while. I suspect upgrading to making the most use of the metadata might be non-trivial but extremely worthwhile.
Answer: Yes, there is a .NET library that is dynamically generated from your node's metadata. The current name is a little bit misleading as it is a generic toolchain that works for all substrate-based nodes and is not specific to a project.
Substrate C# Toolchain that generates a NET API and more https://github.com/ajuna-network/Ajuna.SDK
And has a lot of tutorials and was showcased at the Sub0 in Lisabon.
Ajuna sub0 Talk: Substrate .NET Toolchain & Unity
And can also be used for Unity or Maui
https://substrate.stackexchange.com/a/5565/707
Answer: AFAIK there is currently no "production-grade" .NET library which will dynamically generate API code from the chain metadata.
Fortunately there seems to be work happening on it. There is now Ajuna.NetApi (which is a fork/rewrite of SubstrateNetApi), and it focuses on generating API code from chain metadata. It seems to still be in development and documentation is scarce. I don't have any experience with any of these libraries so can't personally vouch for them.


Pancetta leaking into cheesecloth

Question: I cured my Mangalitsa pancetta for 7 days and it was stiff. Then I rolled it and it got very soft. I double covered it with cheesecloth and now it is leaking into the cheesecloth. Is this good, bad or indifferent. Right now it is in my basement which is very dry, 40%. I am upping the humidity to 65% (all I did was turn the dehumidifier up to 65% and the basement is doing the rest) and the temp is between 65F and 70F. (Right now I'm double checking the top temp because it was reading 75F as the top temp.) BTW, the Mangalitsa belly was very thick and I used prague #1 and prague #2. (I thought I might age the pancetta for longer but it looks like that's not a good idea.) What should I do? BTW, by accident I put 10X the amount of prague #2 and caught it 4 hours later. I washed off the cure and completely redo it with Prague #2 at the appropriate strength.
Answer: This is difficult to assess and provide a definitive solution for because you've got several conditions that are not ideal. As you point out, your temp is too high and your humidity is too low, for starters.  Given the 7 day cure, I would normally say you are ok from a safety perspective, however, I am concerned by the "leaking", but that may just be the nature of your product.  Given that you say this belly was rather "thick", 7 days may not have been enough, but hard to tell from here.  Firmness after the cure is what you are going for.
I guess, for starters, I would suggest unrolling and hanging as a flat piece (called tesa).  I find that I get more consistent results, faster, making pancetta tesa. In your case, this might also help with excess moisture. You really just want to hang until it loses about 30% of it's pre-hanging weight. For me at about 55F and 70% humidity, that that usually takes in the neighborhood of 2 to 3 weeks.

Pancetta leaking into cheesecloth


Fast evaluation of univariate KDE?

Question: I have a KDE obtained with a large sample ($n=10000$). Given that this is defined as the mean of the kernel evaluated at $n$ points, the evaluation of this kernel slows down my code (I need to evaluate it thousands of times). I was wondering if there is a trick to avoid taking the mean of the $n$ points every time I evaluate the KDE?
Comment: The naive approximation is formalized and justified by computing the KDE by means of an FFT. To do this, the sample has to be discretized. Since the FFT is so fast, even discretization into millions of bins is not normally an issue. At this point implementation details come to the fore and they suggest that additional information about your situation is essential for choosing a good algorithm. For instance, how do the samples vary from each other? Will they fall into known ranges (allowing bins to be precomputed)? How accurate and precise must the KDE be?  *Etc, etc.*
Comment: can you use an approximate (and random) solution?
Comment: @user603 Yes. Do you mean an approximation in a grid or something like that?
Comment: I have found a naive approximation of my KDE by evaluating a histogram with a large number of bins (500-1000 seem to work well provided my large sample size). So, the only thing I did was to evaluate a step function at every bin. Thanks.
Comment: If you use R there is a paper by Wickham on KDE that compares different packages: http://vita.had.co.nz/papers/density-estimation.pdf
Answer: In my opinion using a program which evaluates KDE using FFT is quite good choice. This is supported for example in R's density{stats} function or in some dedicated functions in ks package. As was noted before FFT is used a kind of discretization of data is needed (known here as binning, usually implemented as linear binning). But for n like 10000 or so the rounding effect can be totally neglected. KDE is then evaluated almost immediately.  You can test for example:
x <- rnorm(10000)
system.time({
  # bw can be one of the following: "nrd0", "nrd", "ucv", "bcv", "SJ-ste", "SJ-dpi"
  # note that some methods for finding the optimal bw are faster that others
  density(x, bw="nrd0")
})

library(ks)
system.time({
  # other bandwidth selectors: "hscv", "hlscv", "hpi",  "hns"
 kde(x, h=hpi(x))
})

Fast evaluation of univariate KDE?


Does the Angler NPC have spawn requirements?

Question: According to the Angler page on the official wiki, this NPC can be found sleeping in the sand of an Ocean biome. Are there any other specific requirements to find him, i.e. hard mode or the like? I searched both ocean biomes in my world, and I didn't run into this new character. Is encountering him, like most other things in this game, simply random?
Answer: Hardmode is not required. His appearance is random, and (as of 5/12/2014) there is a bug where if the beach part of the ocean biome is too small, he can appear out on the water's surface instead.
No additional prerequisites have been found. You do not even need an open house slot before he'll appear; mine appeared when all my housing was full.
Answer: No, the angler has no spawn requirements, but there are some glitches like spawning on water and two spawning at the same time.


System Properties; Linear, Causal, Time-Invariant, Stable?

Question: I know the answers of the below question but I dont know why, except linear, could you explain the rest? Small tick: correct, small tick with dash incorrect answer.
Comment: Have _you_ tried to understand what is the meaning of time-invariance, causality, stability, etc., and attempted to apply any of your knowledge to the systems under discussion? If so, how about _editing_ your question to include some of this work? (Don't bother answering this query as a comment: **edit** your question to include these responses)  -1 pending such edits.
Answer: Such questions have been asked here before, and the concepts are simple and important. Dilip Sarwate is right to ask you to add details as to where you get stuck, so we can give better answers (instead of just solving the problem for you).
I'll try to explain the basics in a clear way so that this answer may also be useful for other users, and to help you understand and solve the problem yourself. Assuming you understand linearity, let's move on to the other properties:

time-invariance: if $y[n]$ is the response to input $x[n]$, $y[n-m]$ must be the response to $x[n-m]$ for any (integer) $m$. By inspection, this is obviously the case for systems A, B, and D. System C can get slightly confusing for beginners, but just use the criterion to see that for $x[n-m]$ the output is $x[-n-m]$ which does not equal $y[n-m]=x[-(n-m)]=x[-n+m]$. So system C is NOT time-invariant. For system E a simple substitution of the summation index shows you that the system is indeed time-invariant.
causality: this is actually very simple. Just answer the question "does the output signal at any time depend on future values of the input signal?" If the answer is no, then the system is causal, otherwise it isn't. Systems A, B, and D only use the current input value to compute the output, so consequently they are all causal. System E uses the current and past input values, so it's also causal. Only system C is not causal because for negative values of $n$ the output depends on future values of the input.
stability: usually the concept of bounded-input-bounded-output (BIBO) stability is used, which means that if the input signal is bounded, i.e. $|x[n]|\le M$, then also the output signal is bounded, i.e. $|y[n]|\le N$, for some arbitrary positive constants $M$ and $N$. For systems A, B, C, and D this is obviously the case, because the output can never be unbounded for bounded $x[n]$ (assuming that the constants $A$ and $B$ are finite, of course). For system E that's different, because you have an infinite sum which needs to converge for the output to be finite. But for a bounded input signal you can always construct a case where the output is unbounded. Just choose a constant input signal with any finite value, and the sum will grow without bounds. Hence, system E is not BIBO stable.
Comment: Thank you very much, understood the terms very well but I didn't understand why System is non Causal. Could you elaborate that part please? Because the system just negates the sign, currently say we have input 9 it will come out as -9, will a future input, say 7 can change this -9? or how...
Comment: @Anarkie: System C doesn't change the sign of the signal but of the time index. So e.g., $y[3]=x[-3]$, which is no problem for causality. But $y[-3]=x[3]$ is a problem because at time $n=-3$ we need to know the future input value at time $n=+3$, i.e. 6 samples later.
Comment: Nice explanation and clearly understand these concepts. But i have a question about the part E stability. when we consider the summation on a finite interval and say 0 to 10. then the system E is stable?
Comment: @user17873: Yes, because then the output will always be bounded for a bounded input signal.


Is It Better to set KeepAlive to 1 second rather than turning it off all together?

Question: I've heard setting keepalive timeout at too high a number will diminish its value. So, to be on the safe side, and still somewhat benefit from it, can I set it to 1 second ?
Or will setting it to 1 second be equivalent to just leaving it OFF ?
Answer: Where'd you hear that?  The risk to having a high KeepAliveTimeout isn't to diminish its value; the risk is that you'll end up with a potential resource exhaustion condition on your web server from too many open keep-alive connections.
At a bare minimum, set the keep-alive timeout to the time it takes a client browser to fully load a typical page; disabling it or setting it too low will force extra reconnects, slowing your page load speeds (and on SSL pages, force extra CPU-intensive negotiations for each reconnect).
Answer: First of all, before you make any kind of changes, get familiar with the system internals. Install munin to monitor what your system does, how many connections, open sockets, apache processes etc. you have and make choices based on the real numbers/statistics.
KeepAlive's main purpose is to send several static files via HTTP 1.1 on the same connection. So if you disable or set KeepAlive too short the client has to make a connection for every css, js, jpg, whatever static file it wants from your server. Building up a connection takes time, so it is wise to set it to 300 seconds. Most browsers keep connections open from 120 to 300 seconds, also most of the SSL keys have the same 300 sec timeout.
If you experience excess resource usage, then lower it till you reach the value suits your and your clients needs.


Unit testing large data sets?

Question: What's the best way to unit test large data sets?  Some legacy code that I'm maintaining has structures of a hundred members or more; other parts of the code that we're working on create or analyze data sets of hundreds of samples.
The best approach I've found so far is to serialize the structures or data sets from disk, perform the operations under test, serialize the results to disk, then diff the files containing the serialized results against files containing expected results.  This isn't terribly fast, and it violates the "don't touch the disk" principle of unit testing.  However, the only alternative I can think of (writing code to initialize and test hundreds of members and data points) seems unbearably tedious.
Are there any better solutions?
Comment: If you're testing the data itself, I reckon you have to touch the disk.
Comment: If  you can fake the data, then you can create it in memory - but if it's the real data that you're wanting to test, then you'll have to read it in from disk.  I don't know what kind of data you are describing, but you could read it into a text file and compile it with your code, in memory, perhaps.
Answer: If what you are trying to achieve is, in fact, a unit test you should mock out the underlying data structures and simulate the data.  This technique gives you complete control over the inputs.  For example, each test you write may handle a single data point and you'll have a very concise set of tests for each condition.  There are several open source mocking frameworks out there, I personally recommend Rhino Mocks (http://ayende.com/projects/rhino-mocks/downloads.aspx) or NMock (http://www.nmock.org).
If it is not possible for you to mock out the data structures I recommend refactoring so you are able to :-)  Its worth it!  Or you may also want to try TypeMock (http://www.typemock.com/) which allows mocking of concrete classes.
If, however, if you're doing tests against large data sets you're really running functional tests not unit tests.  In which case loading data into a database or from disk is a typical operation. Rather than avoid it you should work on getting it running in parallel with the rest of your automated build process so the performance impact isn't holding any of your developers up.
Answer: This is still a viable approach. Although, I would classify this as a functional test, or just not a pure unit test. A good unit test would be to take a sampling of those records that gives to a good distribution of the edge cases you may encounter, and write those up. Then, you have your last "acceptance" or "functional" test with your bulk test on all the data.
I have use this approach when testing large amounts of data, and i find it works well enough because the small units are maintainable, and then I know that the bulk test works, and it's all automatic.
Answer:
The best approach I've found so far is to serialize the structures or data sets from disk, perform the operations under test, serialize the results to disk, then diff the files containing the serialized results against files containing expected results.

I've written code which uses the above technique except rather than serialising from disk in the test, I have converted serialised data to a byte array which the compiler can place into the executable for you.
For example, your serialised data can be converted into:
<code>unsigned char mySerialisedData[] = { 0xFF, 0xFF, 0xFF, 0xFF, ... };

test()
{
    MyStruct* s = (MyStruct*) mySerialisedData;

}
</code>
For a more verbose example (in C#) see this unit test. It shows an example of using some hardcoded serialised data as input to tests, testing assembly signing.

Unit testing large data sets?


List admins on Linux

Question: How do I list all users with admin rights on Linux? I checked file /etc/passwd/, but I don't know how can I figure out which account is privileged.
Comment: @Marc-B There may be more than one user with UID 0.
Comment: @scai: true, but that's not a supported use. all the "who does this uid belong to" functions only return a single user, the first one found in /etc/passwd.
Comment: There is only one privileged account - root. There may be people listed in the /etc/sudoers file who can GAIN root privileges, but root is the highlander - there can only be one.
Comment: One of the best answers(1): http://serverfault.com/a/208355/211551
Comment: One of the test answers(2): http://serverfault.com/a/208384/211551
Answer: First, there is root (UID=0), which is and always be the only true admin, or superuser.
However, other users may be given the ability to impersonate root, and in that way effectively become admins. This can be done with:

su: This command impersonates a user and opens a shell, but you need to know the target user's password. This allows anyone who knows root's password to become an administrator.
sudo: This command impersonates a user and executes a command, but you need to know the invoking user's password, and the invoking user must have sudo privileges. This allows anyone with sudo privileges to become an administrator.

On an Ubuntu system, the root account is generally disabled, which means root doesn't have a password and you can't log into that account, so su is not available. root can still be impersonated, however, which means the primary method of being an admin is through the sudo command.
To find out who generally has sudo privileges, you can view the sudoers file, which is located at /etc/sudoers. You might also want to look up the file format in the man pages. By default, Ubuntu has an admin group, and anyone in that group can use sudo. Other distributions might have a sudoers group or a sudo group or a staff group. grawity adds that most KDE and Gnome applications use polkit to manage authorization, which usually uses the wheel group for administrator privileges. OS X also uses the wheel group to give admin access to daemons and other system-level tasks, while the admin group is used to give administrator access to user accounts.
Beyond this, there are a myriad of "partial-admin" things that can be set up. Root is only an "admin" because it inherently bypasses security checks. If a user has specific permissions for a certain function, then they too are an "admin" over that area; For example, just as you are an admin over your home directory, you can make someone an admin over the webserver, or an admin over the video/audio outputs on the computer (Look up the video and audio groups, if I remember Ubuntu correctly).

To summarize, there's not exactly an easy way to get a "list of administrators". However, to quickly get most of them:

root, just because.
Anyone with sudo privileges, or in a group with sudo privileges. Usually anyone in the admin, wheel, staff, sudo, or sudoers groups, if they exist.
Of course, anyone that knows the password to the aforementioned accounts.
Comment: Worth mentioning is *polkit*, which manages authorization for practically all GNOME and KDE applications. Normally it uses `wheel` as the admin group, although Ubuntu may have changed it to `admin` [cannot check now].
Answer: You can use
less /etc/group

to look for the groups.
Answer: On Linux, special privileges are typically supplied through groups. E.g. people in the sudoers group may use sudo, people in the audio group may play audio, etc. Use the groups command to list the groups a user is in.
Answer: Using default settings, users that have the right to sudo belong to the group "wheel". Maybe this will lead you in the right direction?
Comment: Except in Ubuntu it's `admin`.
Answer: To actually find the admin for a group, you would look at the group- file. This file lists all the admins for each group listed. You can only view the contents of this file if you are an admin elevated through SUDO or root. The regular group file as others have mentioned will only list general memberships to such listed groups.
This is how Slackware or other Slackware distros work, but i do recall seeing other distros having these files.

List admins on Linux


Is there some logic in IC name prefixes?

Question: There are hundreds of prefixes in IC names, this page lists a number of them. For some it's easy to see that they refer to the manufacturer's name, like AD for Analog Devices or LT for Linear Technology. Others can be found with several manufacturers, often three letter prefixes: SAA, SAF, SDA, TCA and TDA, to name a few. I wonder if there's some logic in this, like T** being a specific group with subgroup TD*, etc. Is there a logical structure?
Comment: Sorry, youre just going to have to memorize all 7.3 billion chip names and what they do.
Answer: Manufacturers often do use their own prefix for original products, or may continue to use a prefix of a company or product line that was acquired.
As the number of IC available has continuously grown the complexity of the naming schemes have become less obvious, and more exceptions exist.
For example MAX- prefix typically refers to a Maxim IC, including the well-known MAX232 except MAX232 is also made by TI.
The NE5532 available from JRC, TI and On Semi, was originally designed by Signetics and continue to use the NE- prefix.
Other than business unit / company (original or acquired), the next most popular prefix convention would be series or technology based. Here I'm thinking of Op-Amps such as TL-, which are JFET or BiFET based op-amp technology AFAIK.
Of course there are nearly as many exceptions to the rule as the rule covers, so like life, it's messy.
Answer: Of course not! Obviously in some cases a subsidiary may start with the same first name but in general there is no logic to it.
Comment: Your certainty seems a bit odd to me. As if you were present when it was *decided* not to use a logical system...
Comment: Also, if there isn't any logic in it, why didn't they name them AAA001, AAA002, etc?
Comment: The sequence AAA001,AAA002 has a certain logic.  There is certainly no INDUSTRY WIDE naming convention.  Individual companies may have a convention while they survive.
Answer: I checked a number of TDA devices here and they all seem to be for audio/video applications. Most (not all) analog.
Answer: There really is a logic in it, but its determined by each manufacturer (unless it is a second source).
There are some organizations (JEDEC, EIA, PRO-ELECTRON)  who tried more or less successfully (I believe it more to the less side) to standardize this issue.
Anyway, in the  cited example (T and S-something) resembles a european standard managed by PRO-ELECTRON.
Further information see following link http://en.wikipedia.org/wiki/Pro_Electron
It is also helpful consult manufacturer's databooks (major ones are on-line).
Answer: There is some logic to the prefixes.  Whether it's usable or not is a different question entirely.  The problem is that it's only rarely standardized across manufacturers, only occasionally standardized across departments in one department, and only sometimes publicized.
About the best you can do is look up the datasheet and hope it includes information about what the various sections of the part number mean.  For instance, many microcontrollers have several options for peripheral sets, memory sizes, packages, temperature grades, etc., and you can specify these options by building a part number.  The prefix, however, usually has only one option.  I suppose you could construct a list, but I'm not aware of any standardized format or universal list.
Answer: IC's prefix is used to show their manufacturer's name.
Comment: In my OP I mentioned that certain IC names, including prefixes, are used by different manufacturers


How to restore copper hip roof

Question: Over my bay window is a copper roof. Unfortunately the roof above doesn't have gutters yet. Where the water drops on the hip roof it is discolored. What is the best way to get this looking good again?
Comment: What's your definition of "good", back to brown or merely uniform? The water drip seems to have caused erosion so depending on your definition of "good" you might be looking at a replacement.
Comment: @MonkeyZeus I would be happy with any improvement in the short term. It seems I need to get gutters added before any long term solution.
Comment: Any short term solution will be cut even shorted by the lack of gutters. Are you just trying to mask the issue in hopes of quickly selling the house? If not then your order of operations is confusing. You could look into self-etching spray paint primer and then spray paint it the color you desire.
Answer: Just wait a while longer and you'll get lovely verdigris green. The copper oxides actually help protect the roof. But depending on yout local atmosphereic conditions getting from brown/black to green can take quite a while.
Or hire someone to give it an acid treatment to accelerate the process. There might be DIY options there, I'm not sure.
If you polish and clearcoat you'll just be fighting the clearcoat peeling off for the rest of your life, or until you sell the house.
Comment: @isherwood Actually, it's less dependent on moisture (that affects the shade of green, but not whether it ends up green or brown) and much more dependent on the exact alloy. Without treatment to produce a specific patina or prevent formation, pure copper essentially always ends up with a pale green patina, while alloys will typically end up brown, black, or possibly even gold. Explicit treatment can produce any of those, plus a handful of other colors for some alloys.
Comment: I've owned the house 3 years. Not sure how long before that the copper was installed. I'm guessing about 8 years ago when they resided the front of the house. I would like to get it looking uniform. Will have to look into the acid wash. I don't think the clear coat method sounds desirable.
Comment: Talk to the installers. They may know how to acid-wash it for you to accelerate pagination. If not, you may be able to find someone else who does copper roofs and offers that service.
Comment: Non-uniformity is a feature of copper sheathing. If you treat this in any way, it may become more non-uniform. You may damage the paint on the siding or damage the windows. Be best to leave this alone.
Comment: I'm not so sure. The [local regional library](https://goo.gl/maps/QpyhNURyCaLzToxF8) has a significant amount of copper cladding and it has settled at the brown we see here after 15 years or so. I think green requires certain moisture conditions.
Comment: I do agree that time is the solution, though. Fix the gutter and go on with life.
Answer: Copper will develop natural protection and it is greenish color.
One would use sand paper (220 or higher) to bring back the shine.
Then one would use outdoor clear lack to protect the copper from developing the patina.

How to restore copper hip roof


How does the sudoers work?

Question: During an installation, as usual, we create our main user account, and then we can do sudo commands with it without problem.
Now, when I created another account, and I wanted to do sudo, it gave me error that the account is not in the sudoers file. In that file I found out that users in %admin and %sudo groups can gain root privileges. But my main account is not in neither one of those groups and I can do sudo with it without problem, but with the other account I can't.
Is there something besides sudoers that I should know about? Thanks
Answer: The admin and sudoer groups should give the user the access needed.  You will have to log the user out and back in again for the changes to take effect.  Have a look at these answers for some pretty good instructions:
How can I create an administrator user from the command line?
Comment: No, I already logged out and in. Read my question carefully. I am asking how does the system give one user administrative permissions even though he is not in the sudoers, nor in the group which is in sudoers
Answer: To answer the general question some programs use mechanisms that use polkit to screen for root privileges rather than using the /etc/sudoers approach. (For example, gparted, as I recall). The sudo command uses /etc/sudo and/etc/sudoers.d/* so be sure to check each file. LDAP can conceivably be used to source information, by the way.
My system is 12.04 and my sudo-capable accounts are in the sudo group. My pertinent polkit files are /etc/polkit-1/localauthority.conf.d/50-localauthority.conf and /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf. Yours may be different.

I assume you realize that if the sudoers file says %sudo that means user must be in the sudo group. I assume, but don't know, that a long lasting credential might persist after a policy (or group) change. I would think you would know if this had been done, however.
To pursue further I suggest that you post the contents of the /etc/sudoers and the files in /etc/sudoers.d/ and under the tree /etc/polkit-1/ and tell us what groups the two userids are added to. I don't believe there are any passwords or hashes in the files I'm mentioning.
Comment: To be pedantic, polkit does not dispense root privileges, rather, it confirms whether a user is authorised to perform an action. A system D-Bus service must already have root privileges.
Comment: @Flimm, I've edited to reword this section. Thanks for the comment.
Comment: Well, I had a look at the source code for `gparted-pkexec`, and discovered `pkexec`, which acts like `sudo`, but uses PolicyKit to check if the user has `org.freedesktop.policykit.exec` authorisation, or a specific authorisation for that specific binary. So PolicyKit may not dispense root privileges, but `pkexec` does! I learned something today!

How does the sudoers work?


Get altitude by longitude and latitude in Android

Question: Is there a quick and efficient way to get altitude (elevation) by longitude and latitude on the Android platform?
Answer: My approach is to use USGS Elevation Query Web Service:
private double getAltitude(Double longitude, Double latitude) {
    double result = Double.NaN;
    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    String url = "http://gisdata.usgs.gov/"
            + "xmlwebservices2/elevation_service.asmx/"
            + "getElevation?X_Value=" + String.valueOf(longitude)
            + "&Y_Value=" + String.valueOf(latitude)
            + "&Elevation_Units=METERS&Source_Layer=-1&Elevation_Only=true";
    HttpGet httpGet = new HttpGet(url);
    try {
        HttpResponse response = httpClient.execute(httpGet, localContext);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream instream = entity.getContent();
            int r = -1;
            StringBuffer respStr = new StringBuffer();
            while ((r = instream.read()) != -1)
                respStr.append((char) r);
            String tagOpen = "<double>";
            String tagClose = "</double>";
            if (respStr.indexOf(tagOpen) != -1) {
                int start = respStr.indexOf(tagOpen) + tagOpen.length();
                int end = respStr.indexOf(tagClose);
                String value = respStr.substring(start, end);
                result = Double.parseDouble(value);
            }
            instream.close();
        }
    } catch (ClientProtocolException e) {}
    catch (IOException e) {}
    return result;
}

And example of use (right in HelloMapView class):
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        linearLayout = (LinearLayout) findViewById(R.id.zoomview);
        mapView = (MapView) findViewById(R.id.mapview);
        mZoom = (ZoomControls) mapView.getZoomControls();
        linearLayout.addView(mZoom);
        mapView.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == 1) {
                    final GeoPoint p = mapView.getProjection().fromPixels(
                            (int) event.getX(), (int) event.getY());
                    final StringBuilder msg = new StringBuilder();
                    new Thread(new Runnable() {
                        public void run() {
                            final double lon = p.getLongitudeE6() / 1E6;
                            final double lat = p.getLatitudeE6() / 1E6;
                            final double alt = getAltitude(lon, lat);
                            msg.append("Lon: ");
                            msg.append(lon);
                            msg.append(" Lat: ");
                            msg.append(lat);
                            msg.append(" Alt: ");
                            msg.append(alt);
                        }
                    }).run();
                    Toast.makeText(getBaseContext(), msg, Toast.LENGTH_SHORT)
                            .show();
                }
                return false;
            }
        });
    }

Comment: To amplify on this: the reason you need to do something like that (use a service on the network) is twofold: one, the GPS isn't very good at altitude, vertical errors are around 150 ft at times, and two, any reasonably high-resolution world elevation model is enormous, much too big to install on the phone.

If you were doing this on your own server as part of a web app or GIS, you could instead download the elevation model (from NASA) and query it directly; faster, but uses a lot of storage.
Comment: Unless you guys are a lot taller than me, or drive in cars with ridiculous suspensions, altitude and elevation are virtually the same thing *in this context*.
Comment: To clarify even more: altitude is measured by a device, which could be flying on a plane, for example. Elevation refers to the ground and does not change. Of course, only elevation could be fetched from a database.
Comment: To clarify, this actually grabs the elevation and NOT the altitude of a lat/long point.
Comment: gisdata.usgs.gov webservice does not work anymore. It redirects to nationalmap.gov site. But I've found no rest service doing the same there.
Comment: ARLabs, I think this is the replacement webservice:
http://ned.usgs.gov/epqs/

eg. http://ned.usgs.gov/epqs/pqs.php?x=-95&y=38&units=Feet&output=xml
Comment: As somewhat GIS interested I find this very interesting
Answer: You can also use the Google Elevation API. The online documentation for it is located at:
https://developers.google.com/maps/documentation/elevation/
Please note the following from the above API page:

Usage Limits: Use of the Google
  Geocoding API is subject to a query
  limit of 2,500 geolocation requests
  per day. (User of Google Maps API
  Premier may perform up to 100,000
  requests per day.) This limit is
  enforced to prevent abuse and/or
  repurposing of the Geocoding API, and
  this limit may be changed in the
  future without notice. Additionally,
  we enforce a request rate limit to
  prevent abuse of the service. If you
  exceed the 24-hour limit or otherwise
  abuse the service, the Geocoding API
  may stop working for you temporarily.
  If you continue to exceed this limit,
  your access to the Geocoding API may
  be blocked. Note: the Geocoding API
  may only be used in conjunction with a
  Google map; geocoding results without
  displaying them on a map is
  prohibited. For complete details on
  allowed usage, consult the Maps API
  Terms of Service License Restrictions.

Altering Max Gontar's code above for the Google API gives the following, with the returned elevation given in feet:
private double getElevationFromGoogleMaps(double longitude, double latitude) {
        double result = Double.NaN;
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        String url = "http://maps.googleapis.com/maps/api/elevation/"
                + "xml?locations=" + String.valueOf(latitude)
                + "," + String.valueOf(longitude)
                + "&sensor=true";
        HttpGet httpGet = new HttpGet(url);
        try {
            HttpResponse response = httpClient.execute(httpGet, localContext);
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                InputStream instream = entity.getContent();
                int r = -1;
                StringBuffer respStr = new StringBuffer();
                while ((r = instream.read()) != -1)
                    respStr.append((char) r);
                String tagOpen = "<elevation>";
                String tagClose = "</elevation>";
                if (respStr.indexOf(tagOpen) != -1) {
                    int start = respStr.indexOf(tagOpen) + tagOpen.length();
                    int end = respStr.indexOf(tagClose);
                    String value = respStr.substring(start, end);
                    result = (double)(Double.parseDouble(value)*3.2808399); // convert from meters to feet
                }
                instream.close();
            }
        } catch (ClientProtocolException e) {}
        catch (IOException e) {}

        return result;
    }

Answer: It's important to first differentiate altitude from elevation.
Altitude is the distance from a point down to the local surface; whether that be land or water. This measurement is mainly used for aviation.
Altitude can be obtained by using the Location.getAltitude() function.
Elevation is the distance from the local surface to the sea level; much more often used, and often mistakenly referred to as altitude.
With that said, for the US, USGS has provided a newer HTTP POST and GET queries that can return XML or JSON values for elevation in either feet or meters. For worldwide elevation, you could use the Google Elevation API.
Answer: If u are using android device which has GPS Recever then there is a method getAltitude() by using that u can get the altitude by elevation.
Comment: Which object type is that method assigned to. You can't just give people half the cake.
Comment: You can use it in onLocationChanged(Location location){location.getAltitude()} but it always returns 0.0
Comment: Location object, when using Play Services's fused location API
Answer: Try this one that I`v built: https://algorithmia.com/algorithms/Gaploid/Elevation
here is example for Java:
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{\"lat\": \"50.2111\", \"lon\": \"18.1233\"}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://Gaploid/Elevation/0.3.0");
AlgoResponse result = algo.pipeJson(input);
System.out.println(result.asJson());

Answer: Google maps have the altitude, what you need is this code
altitude="";
var init = function() {
        var elevator = new google.maps.ElevationService;
        map.on('mousemove', function(event) {
            getLocationElevation(event.latlng, elevator);
            document.getElementsByClassName("altitudeClass")[0].innerHTML = "Altitude: "+ getAltitude();
            //console.debug(getAltitude());
        });
}

var getLocationElevation = function (location, elevator){
  // Initiate the location request
  elevator.getElevationForLocations({
    'locations': [location]
  }, function(results, status) {
    if (status === google.maps.ElevationStatus.OK) {
      // Retrieve the first result
      if (results[0]) {
        // Open the infowindow indicating the elevation at the clicked position.
        setAltitude(parseFloat(results[0].elevation).toFixed(2));
      } else {
        setAltitude('No results found');
      }
    } else {
      setAltitude('Elevation service failed due to: ' + status);
    }
  });
}
function setAltitude(a){
    altitude = a;
}
function getAltitude(){
    return altitude;
}

Comment: Google maps have the altitude, what you need is put this code
Comment: Also, the service is no more free.
Answer: The idea to use the Google Elevation API is good, but parsing XML using string functions is not. Also, HttpClient is deprecated now, as using insecure connections.
See here for a better solution:
https://github.com/M66B/BackPackTrackII/blob/master/app/src/main/java/eu/faircode/backpacktrack2/GoogleElevationApi.java


Connect downspout to PVC pipe?

Question: I want to drain an aluminum downspout into a 4" PVC pipe. How can I seal the space between the downspout and the pipe so that leaves and dirt do not fall into it?
Comment: There's a downspout adapter exactly for that.
Answer: There are plastic fittings with a rectangular opening on the downspout end and are round on the other end.
downspout to pvc pipe
Answer: Jim Stewart's answer covers the adapter, but let me suggest some bigger picture considerations.  If you're going into solid pipe, debris tends to wash through, and they're easy to snake out if debris collects inside.  Corrugated pipe tends to trap debris and form huge clogs that are difficult to get out.  I've had to abandon in place buried corrugated pipe that got clogged.  If corrugated pipe isn't buried, it's pretty ugly.  If you are going to bury the pipe and do a long run to somewhere far from your house, use solid pipe.
If you're just trying to get water a reasonable distance away from the foundation, there's a less visible alternative that doesn't require trenching: flattened extensions that hug the ground.  I switched to these after buried corrugated pipe had to be abandoned. Home Depot carries ones that look like this:

A flexible adapter slides over the downspout.  It can be stretched and angled as needed, and connects to flat extensions.  You can add as many extensions as you need (sold separately).
You can hide the extension under mulch, stones, or other landscaping cover.  However, the flat, corrugated shape does tend to catch debris, so I leave them accessible.  To clean them, you snap them apart and shake the debris out.  They're more expensive than either form of round pipe, but they work without being very visible.
My house has mulch landscaping beds around the foundation.  I use enough extension sections to get across the bed, or about 8' from the foundation. This is far enough, and isn't a mowing problem.

Connect downspout to PVC pipe?


Unable to redirect to the record created using Quick Action in lightning experience

Question: I created a quick action named 'Create Opp' on Account to create an Opportunity and launch it in lightning experience from the Account detail page. I am able to create the Opportunity record successfully. My requirement is to redirect to the created Opportunity page which is not happening. Is there any workaround to achieve this?
Answer: It appears this is still not a standard function for salesforce, but I found this work around.  You can drag and drop this lightning component to any lightning page your quick action is on and it will redirect to the newly created record. It uses the link from the default success toast message so be sure to leave the 'Success Message' field blank.
Hope it helps. Link and OP at the bottom
<code><aura:component implements="flexipage:availableForAllPageTypes">
    <aura:handler event="force:showToast" action="{!c.redirectToNewRecord}"/>
</aura:component>
</code>
<code>({
    redirectToNewRecord: function(component, event, helper) {
        var messageData = event.getParam('messageTemplateData');
        if (!$A.util.isEmpty(messageData)) {
            var executionComponent = messageData[1].executionComponent;
            if (!$A.util.isEmpty(executionComponent)) {
                var recordId = executionComponent.attributes.recordId;
                var navEvt = $A.get("e.force:navigateToSObject");
                navEvt.setParams({
                    "recordId": recordId,
                    "slideDevName": "related"
                });
                navEvt.fire();
            }
        }
    }
})
</code>
-Mateusz Otręba November 15, 2019
https://salesforceprofs.com/navigate-to-created-record/
Answer: @Pankaj I don't think you can do it by just a quick action.
All of the quick actions (including global ones too) will stay on same page.
If you really need the redirecting thing, you need to implement a custom lightning component and use that as Quick Action, you can read about it more here https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_using_lex_s1_config_action.htm
If it helps, Please mark this comment as best answer.
Comment: Thanks for your response Basant. Is there any workaround you can think of we can achieve this?
Comment: Hi Pankaj, as i mentioned in my comment that If you really need the redirecting thing, you need to implement a custom lightning component and use that as Quick Action, you can read about it more here https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_using_lex_s1_config_action.htm

If it helps, Please mark this comment as best answer.
Answer: This is currently not available.
I found the following Idea that asks for that.
https://success.salesforce.com/ideaView?id=0873A000000lFe8QAE


How to activate voice dictation on ipad 3?

Question: There is no option like that on the Keyboard option. How can I start it, I thought it was an inbuilt feature and reading other pages they have it. The iOS version is 7.1.2
Comment: I think by "dictation" he's referring to enabling the microphone button in the keyboard so that he can input text by speaking into the microphone... NOT "speak selection", which is having the ipad read text out loud for you.
Answer: This isn't a keyboard feature, it's an accessibility feature.
So go to Settings -> General -> Accessibility
Under vision you will see there is a button called Speak Selection, just press that and turn it on. When you select text you then have an option to let it read for you.
If this doesn't help, let us know, thanks. :)


Does each Buddha find a new path?

Question: I have a question that I find kind of interesting, and can't find an answer anywhere. Will the next Buddha find a new path, different from the middle way? Or will he rediscover the middle way once it's been forgotten. I think both are possible, but I'm not too sure.
Answer: Each Buddha rediscovers the same path and the same truth all over again, on his own.
You can find this narrated in the Pali Canon for Vipassi Buddha (SN 12.4), Sikhi Buddha (SN 12.5), Vessabhu Buddha (SN 12.6), Kakusandha Buddha (SN 12.7), Konagamana Buddha (SN 12.8), Kassapa Buddha (SN 12.9) and of course, Gotama Buddha (SN 12.10).
Furthermore, the Buddha foretold the coming of the future Buddha, Metteyya Buddha or Maitreya Buddha in DN 26 - to do the same.
Answer: When someone awakens (Buddh) he or she awakens to the Key Principle. This Principle is at the root of everything. This Principle is the Law of Nature. From this Principle everything else follows, good and bad. If you know the Principle, you can act accordingly and fare well. If you act otherwise, you create trouble.
When the Awakened awakens, he or she teaches the aspects of the Principle as well as the implications of the Principle. He or she teaches the different outcomes of Acting in accordance with -- or against -- the Principle.
To those who want to fare well, he or she teaches the practical means of mastering the Principle. Sentient beings of extremely high capacity only need the Principle itself explained - then they can see and do the rest by themselves. To sentient beings of low capacity he or she teaches basic Action in accordance with the Principle without trying to get them to understand the Principle itself.
Sentient beings of intermediate capacity need detailed step by step instructions on mastering the Principle. These step by step instructions can take many forms. In case of the previous Buddha they took the form of the Middle Way. Regardless of the exact form they take they are a gradual approach to mastering the Principle. They come out of the Principle, their essence is the Principle.
These gradual instructions can use an entirely different set of concepts, and their practical side may look vastly different because of a different lifestyle of the sentient beings at the time. They may not resemble the Middle Way at all, but their essence will be the same nevertheless.
It will always have: this is right, this is not right, this will get you in trouble, this will get you out of trouble, this is what you need to know, this is what you need to do, this is the coarse approximation of The Principle, this is the more refined, this is extremely refined, this is sublime, these are the pointers to the ultimate.
Answer: Walking towards emptiness we walk separately simply because there are different bodies, but:

MN121:13.1: Whatever ascetics and brahmins enter and remain in the pure, ultimate, supreme emptiness—whether in the past, future, or present—all of them enter and remain in this same pure, ultimate, supreme emptiness.

MN121:13.4: So, Ānanda, you should train like this: 'We will enter and remain in the pure, ultimate, supreme emptiness.'

MN121:13.5: That's how you should train."

Also, in MN81, the Buddha discusses his own experience with a previous Buddha.

MN81:5.1: "Once upon a time, Ānanda, there was a market town in this spot named Vebhaliṅga. It was successful
and prosperous and full of people.  And Kassapa, a blessed one, a perfected one, a fully awakened Buddha, lived supported by Vebhaliṅga.

All Noble Paths converge.
Answer: New Buddha will bring understanding to what has already been said. Majority of people are not interested in Dhamma because they fail to understand it and get lost in the myriad of books and ideas. Grasping the Dhamma is the most difficult thing to do and even more difficult is applying it in your daily life. New Buddha will do all that as the previous Buddhas did.
Buddha brings understanding like a master teacher. Buddha is the teacher of Gods.
Answer: In this world or any other world nature cannot change.  That is continuous changing. Within this changing world 4 noble truths prevails. But no one knows. Millions of years  this changing keep on.  As a result of this changing civilizations arises, exists and disappears. But this noble truths prevails nobody knows. People's age limit expanding 10 years 100,000. In between 80,000 to 100 "Bodhisathwa" birth may happen.  This is very rare occasion.  Millions trillions of years passes away without "Bodhisathwa".
Once  Bodhisathwa birth happens, he is the one understand this 4 truths and preaching to the world. All the buddha's preaching the same 4 noble truths. That is to understand the ultimate realities.
May Triple Gem Bless you

Does each Buddha find a new path?


Kitchen Refacing\New Counter top

Question: I would like to get some opinions from you folks of our kitchen refacing and new counter top install. We have had many issues with the project from week one. We went through an actual company in hopes to not end up where we have today. We were quoted 7 to 10 days for the complete project, beginning to end, we are now on week 6 of the project, it began on 9/9/19 and they just installed the last 2 doors and lazy susan door yesterday, 10/15/19. They mis-measured the lazy susan twice and the doors we were waiting on once as well. We have a very basic kitchen, L shaped, no island. I guess they hire subcontractors to come do the jobs, which is normal to me, not a problem. Well the one that was on our job showed up for the first few days then ghosted. We tried getting a hold of our project manager at their hq but she would never call us back and IF we were ever lucky enough to speak with her, she had an attitude and was not helpful in the least. I was also laughed at when I told them we were quoted 7 - 10 days for the project, saying that they would never say that and "these things take time". I have their company pamphlets confirming the original quoted timeline.
We called and asked for a new PM as well as for their inspector to come out and look at the job. Tier inspector told us the contractor did a really bad job and pointed out roughly 30, yes thirty, issues in his work. At this point the project was already going on 5 weeks. We wrote a list of our concerns and so did the inspector, then they sent 2 different guys out, "their best guys", to complete the job in one day.... well that ended up being 2 days and the lists were not gone through nor completed. We still have some open issues on the lists and these folks are looking for payment. There are also many issues with the counter top. First, they cut it into the wall. It was too long maybe and instead of taking it back to cut it down, they cut open the wall and put it in that way. It is a MESS!!!! They didn't even seal around it, they just left it open. The cabinet guys tried to fill it but it's ugly and sloppy. They also messed up the paint and damaged the wall in the process. Sorry this is so lengthy but it has been a looooong 6 weeks. Hopefully I can figure out how to upload these pictures to give you a visual but my question is, how should I go about the final payment with them? I am sure as hell not paying them the full price of $20,000 they quoted us. Any suggestions?
Comment: Did you check for references??
Comment: Which state, and do you know if they are licensed?
Comment: Hello, and welcome to Home Improvement. It's hard to read your question with that long swath of text; would you edit it to make it clearer? And, you should probably [take our tour](//diy.stackexchange.com/tour) so you'll know how best to participate here.
Answer: Do not pay these butchers one red cent. Immediately file a complaint with the state contractor licensing authority and ask them what the best next step should be.
Get a lawyer and file a preemptive lawsuit to prevent them from placing a lien on your home.
Comment: Jimmy, thank you! Wow, this is exactly the guidance we have been looking for. We have a lawyer lined up, filed with the BBB, contacted Channel 7 and filed with the Attorney General\Consumer Complaints dept. BUT we haven't gotten any guidance on what to do past filing these things. My husband is going to contact the State Licensing Authority and hopefully we can file the preemptive lawsuit. I really appreciate your response on this as they are at our house AGAIN this week to "finish the job to our satisfaction".
Comment: When really, it will never be satisfactory, we will always see the pain and hassle we went through every time we walk in the kitchen. It's just sad that we were trying to do something good and it has landed us here. Again, thank you so much for your response.

Kitchen Refacing\New Counter top


What happens if two possible paths interfere with each other but are different in their length?

Question: Can you explain what happens if two possible photon paths interfere with each other but are different in their length? When does the interference pattern appear? I suggest it happens after the time for passing through the longer path passed. Is this true? I am asking this question in the light of Wheeler delayed choice tought experiment when a photon passes on both sides of a galaxy and then interferes with itself on the semireflecting mirror at the detector on Earth.
Comment: Photons do not have a length.  The quote you provide is not a very good description of what is going on.  I'm not sure what he means by "length" He might mean "coherence length", or he might mean the length of a wavepacket.  A wavepacket is not a photon.   Don't use Kalivianski's answer as a source.
Comment: They will interfere as long as the path length difference is shorter than the coherence length.  I'm not sure what you mean by "after the time for passing through the longer path passed".
Comment: I checked this answer "There are cases when a photon cannot interfere with itself. Take an interferometer with two nearly equal paths and observe interference. As soon as a photon has a limited length itself, it can interfere with itself only if the path difference is inferior to its own length The trick is to have a superposition of waves at the same time. If wave trains of photons arrive without overlapping, there is no interference because there is no superposition" quote from Vladimir Kalitvianski here http://physics.stackexchange.com/questions/6234/does-a-photon-interfere-only-with-itself
Comment: there are many interferometer setups with different length of the two paths but there is still interference at detector. How to explain them from the notion of single photon interference?
Comment: You have to define very carefully what you mean by "a photon" (and you shouldn't be visualizing a little moving ball). At the naive level of the second quantization an excitation of the field is not confined in space (but has a precisely known wavenumber).
Answer: Think about it this way. If you had a radioactive atom it might decay and emit a photon.
And you don't know when. So there is a whole range of times for when a nearby photon detector might go off.
But there is also an issue of coherence. Which is a specific technical term, not a word people use for emotional purposes.
If you have a short coherence length then effectively after a short time the object has either decayed in that time or it hasn't. If you have a longer coherence length, then if the detectors are all far enough away then for that same time interval, it might not be the case that it decayed or didn't decay.
There are things you can do to increase the coherence, and usually it's about isolating something. Though there are limits to how much something can be isolated. For instance a spontaneous decay can sometimes be thought of as a decay stimulated by the quantum vacuum.
But don't expect that you can forget to isolate something and expect that later you can start to isolate it at the last minute and hope it can not decohere. That's not a good idea.

I don't understand very well what will happen if the path difference is significant but the coherence length is greater than the path difference.

You write as if there is some special length that is intrinsically significant. There are the lengths of the arms, the wavelengths, and the coherence length. If all of them were scaled up or down, would the physics really be different?

Does it mean that the interference from both path will produce an interference pattern

The interference pattern happens spatially. Some places will get hit more often than others when you repeat the experiment. And it will take some time from the creation of the emitter until a detector a ways away goes off.
It's not like you'll see some splotch and then see it turn into bands some time later. You see a hit or not every moment. And a pattern builds up over repeated experiments.
If you specifically want to see a correlation between the time a detector goes off and where the detector is then you have to deal not only with the emitter but the detector. You can't resolve a monochromatic beam into a perfect spot at a perfect time. If you start to focus better on when it arrives, you'll affect the wavelengths the detector reacts to, and no source is perfectly monochromatic at a fixed frequency. For instance if it is an atom decaying, there is a doppler shift from the motion of the atom and the motion and the location aren't unrelated. So the wavelength and the location of the atom are related. So the phase of the photon from different  motions of the atom matters.
The coherence matters. It might be good to step back and ask yourself what you want to learn, what you want to understand, and what you want to predict. The universe never promised to be simple, so if your goal was to hear a simple story, think carefully.
There are entire textbooks on quantum optics, and they are trying to make it as simple as it can be, they don't write them in a complicated to hide understanding from lay people. They just address the issues that matter for making precision experiments. And the emitter and the detector and their details and the coherence of the interaction all matter.
Comment: Thank you very much for the explanation! I don't understand very well what will happen if the path difference is significant but the coherence length is greater than the path difference. Does it mean that the interference from both path will produce an intereference pattern, even if that need great time uncertainity of the photon emission from the excited atom at the start of the setup?


FPGA ASIC vs Graphic Card

Question: I think ASIC is the way to go. I am just making sure. By now you can no longer profitably mine bitcoins with GPU right?
Comment: This must be a duplicate, no? Short answer: yes you're right.
Comment: Doesn't seem to be anything on that page about ASICS.  Probably we need to have a clear answer on this somewhere now that graphics cards are increasingly useless for mining.
Answer: At current prices you can actually still make a pretty decent profit mining on a GPU (try the Bitcoin mining calculator to see how much you'd be making with your card). But this situation may not last long... if BTC prices fall back to where they were a few weeks ago, the GPU profitability would be very endangered. Depending on how much you pay for electricity, whether you already own the cards or not, and the possibilities of you getting an ASIC/FPGA, you may still want to go the GPU route. But know that you may lose money (as in: never have the card pay for itself).
Comment: Less GPUs in the network. Less mining. Hash rate falls and in 2016 blocks the difficulty readjusts
Answer: The best long term answer is to link to a mining profitability calculator like this one from bitcoinx.
However, I think it is also important to distinguish operating costs from capital costs. At today's prices, for most miners, it is definitely profitable to operate their GPU based mining hardware. There is an electricity cost, of course, but modern GPUs certainly provide enough hashing power to justify that electricity.
The bigger question in everyone's minds right now is whether investing in new GPU hardware is worth it right now. The general conclusion is no, but that conclusion does require a few assumptions. The first assumption for GPU unprofitability is that the BTC exchange ratio doesn't continue to explode upwards. If we had a sustained $500/BTC exhange ratio, it doesn't take a lot of hash power to be profitable.
The second assumption for GPU unprofitability is that the difficulty factor is likely to increase. The graph I've linked shows the rapid rise in difficulty. If ASIC mining rigs start shipping in volume, and the BTC exchange rate stays high, then it is entirely possible that the Bitcoin difficulty could jump by an order of magnitude or more. And so investing in GPU hardware (which wouldn't even cover its operating costs at those difficulty levels) is considered unwise at this point.
So if your question is "is it worth it run my gaming machine as a Bitcoin mining rig while I'm not using it?" The answer is probably, use a profitability calculator to verify. On the other hand, if your question is "If I can't get my hands on ASIC rig right now, should I buy some GPUs specifically for mining?" the current consensus answer is no.
Answer: I still make $10 when it was at $230/btc.
Its profitable as long as it doesn't cost more than you make.
So first look at speed, if you only can make .0001btc a day (<100Mhash), you'll never make much of anything. If you can make 1btc a day you'll maybe sell it and make the exchange rate (<2-4Mhash). If you can make 10btc a day and sell it you can make the exchange rate times ten. But for all of these, if it cost more than .0001, 1, and 10 bitcoin respectively to do it. Well your loosing money.
Its not the hardware really (unless its super super super inefficient) its the speed at which you can mine.
Answer: By the time they are released, they won't be profitable anymore. The prices would likely drop to adjust to the number of ASIC miners in the network.

FPGA ASIC vs Graphic Card


How to keep Chrome bookmarks in-sync with Safari

Question: I use Chrome mostly and bookmark often. I would like these bookmarks automatically synched into Safari. Is this possible?s
Comment: I use BookMacster by Sheep Systems on my main Mac. I then turn on Google's sync and iCloud sync. Everything stays synced. All the time. Works flawlessly.
Comment: Possible duplicate: http://apple.stackexchange.com/a/153860/37413
Comment: Maybe try https://chrome.google.com/webstore/detail/icloud-bookmarks/fkepacicchenbjecpbpbclokcabebhah?hl=en
Comment: This isn't possible. Just pick one browser, that would be my advice.
Comment: Kent, I just want to say thanks for your suggestion of BookMacster. I've been looking for an alternative to Xmarks forever since it's been very buggy and essentially stopped working. BookMacster works great.
Answer: To clarify the previous answer.
Known issues with Xmarks+Chrome+Safari
I would like to add some remarks about Xmarks. The use of Xmarks for Safari and Chrome works mostly very well, but in some case, you can encounter conflicts issues.
Context
If you enable Chrome bookmarks synchronisation and if Xmarks plugin is in automatic sync mode (default setting), some conflicts can appear:

all your bookmarks folder will appear in double.
One will be empty, the other contains the bookmarks.

It can be boring to fix that kind of issue manually... Especially when you have a lot of bookmarks.
Hack/Solution
The only solution I have found is to:

Keep using Google Chrome synchronisation (bookmarks, plug-in and whatever you want).
Disable the automatic mode of Xmarks plugin (both on Safari and Chrome).
Then, each time you add a bookmark into safari or chrome think to overwrite Xmarks server with "upload" (see Xmarks advanced settings) and then, download the new bookmarks via "download". (the image below is an Xmarks for Safari screenshot - You have almost the same panel in Chrome Xmarks plugin).

Conclusion
Of course, that trick doesn't make your life easier and is impossible to use when you want to use Safari and Chrome in the same time (too many upload/download to do).
Comment: Xmarks is awful and still broken. I've switched to Bookmacster and it's working great
Comment: XMarks is closing up shop on 4/30/18 which is longer than I expected them to ever last.
Comment: Are those issues still present in the latest version?
Comment: I have no idea, I have stopped using Safari, however, I presume it's still the case.
Answer: The only really reliable way to sync between two browsers like Chrome and Safari is to export the bookmarks from the source browser, delete all of the bookmarks in the target browser, and then import. There isn't really a way to "sync" them, per se. This will at least allow you to keep your bookmarks updated, but that's about all you're going to get reliably.
Sadly, with XMarks gone as of 4/30/18, there is no longer a feasible multi-browser sync solution that actually works. Since all of the cross-browser sync extensions are faulty, this is really the only safe way on MacOS.
If you have a Windows host, the iCloud app actually does support sync with other local Windows browsers so if you happen to have a Windows VM or host about your can have it handle this, according to this article but I have not tried this yet.
In lieu a on-line sync tool that works and doesn't collide with Safari sync (which is needed for sync to IOS) it seems like the best approach would be to write a script to sync/merge/deduplicate bookmarks between the bookmarks settings of two or three different browsers. Gone are the days where bookmarks used to be saved in a single HTML file but it shouldn't be too hard to handle this as text without having to maintain a third-party database of bookmarks.
Answer: UPDATE: Unfortunately, Xmarks was shut down, so it is no longer an option.

You can use Xmarks to easily sync bookmarks between most desktop browsers, including Google Chrome and Safari.
iOS devices cannot directly sync their native Safari bookmarks with Xmarks, but if you set up Chrome and Safari on your Mac to sync with Xmarks, and turn on iCloud Safari syncing for both your Mac and your iOS device(s), then your iOS Safari bookmarks will be indirectly synced with the ones in Chrome on your Mac.
Comment: Be advised that i will occasionally duplicate your bookmarks, if the chrome native sync is enable, with normally is and it's very useful to keep your chrome on Android linked with chrome on desktop. I gave up on marks because of this. You may pay the premium feature to sync android also. That may work
Comment: is Xmarks dead? the link is...
Comment: Yes, Xmarks was shut down in May 2018. https://xmarksalternatives.com
Answer: Don't even bother installing iCloud bookmarks extension for Chrome. It works terribly and will screw up your bookmarks. The only solution I found is to use Xmarks, but it's imperfect, and I often check if Apple updated their Chrome extension to fix their issues. Xmarks works, but deleting bookmarks from Chrome doesn't work if you also have iCloud bookmark sync enabled. They will just pop back up sometime later. You may not need iCloud bookmark sync, but if you have an iOS device you do. The only way to delete a bookmark is to do it from OSX/iOS. You may have to do this several times.
Comment: Furthermore iCloud bookmarks extension only works for Windows OS and not if you want to use Chrome at macOS.


Testing for serialization across weblogic clustered environment

Question: Here's the scenario:
Currently we are working on running an application in a non-clustered environment.
But right now we need to have an existing application be able to be deployed in a clustered weblogic environment.
This is a JSF based application and contains many managed beans.
Now the problem is we do not have any clustered environment set up yet and is due to arrived in 3 weeks time.
In a weblogic cluster, I believe we are bound to encounter this problem
java.io.NotSerializableException:

My question is, is there a way to find out which among my existing classes would fail in a clustered environment without having it deployed in a clustered environment.
I am not sure if there is a way to test if all member variables of a class is serializable so that it wont fail in a clustered environment.
Answer: When using Mojarra, you can use the following context param to tell it to  always serialize the JSF state:
<context-param>
    <param-name>com.sun.faces.serializeServerState</param-name>
    <param-value>true</param-value>
</context-param>

(MyFaces equivalent is org.apache.myfaces.SERIALIZE_STATE_IN_SESSION, but this defaults to true already)
During testing, you'll get NotSerializableException on instances which are not been marked Serializable. Usually, it are the view and session scoped beans and all their properties which needs to be serializable.
Note that marking a property transient is not the right solution, it would remain null after deserialization (after restore view) which is just wrong. There are however certain cases where there is no other way (e.g. 3rd party API), in that case you'd better consider one of the following solutions:

Put property in a request scoped bean (you can always inject view/session scoped bean in there and delegate all form actions through it).
Lazily load the property. Example: Changing request to view scope results in java.io.NotSerializableException: javax.faces.model.ListDataModel
Wrap the class in a serializable class. Example: How to make persistent Cookies with a DefaultHttpClient in Android?

As to business services, as long as you're using EJB or CDI, there's no need to mark business classes serializable. They're been injected as serializable proxies anyway.


Is it possible to use the genitive with these expressions?

Question: Why don't we say "cat's food' but "cat food", is it because the owner is not a human? Can we say pets' food?
Comment: "Cat" in "cat food" is a _noun adjunct_: a noun used to modify another noun. For more, have a look at **[this answer](https://ell.stackexchange.com/a/110438/37009)**. Also, there is nothing wrong with using the apostrophe-s (which we call the _"Saxon genitive"_) to indicate possession by non-humans or even inanimate objects. _"The food's taste"_ is perfectly grammatiocal and acceptable.
Answer: We use "cat food" because it's not a genitive. "Cat" is a descriptor. It's the equivalent of "blue house" -  a house that is blue.
A can of "cat food" is a can of food for cats - generally, not a specific cat.
You can definitely say "cat's food" but you wouldn't use it to describe the food generally, you use it to describe it particularly. Here's an example.

My dog eats cat food.
My dog eats the cat's food.

These mean different things.  Version 1 means that I, for some reason, feed my dog cat food instead of dog food. Version 2 means that I have both a cat and a dog and the dog eats the food that's put out for the cat.


Categorisation of potential research?

Question: Every now and then, questions are bound (hopefully at least) to uncover things that could/should be researched. I was thinking about a potential tag (such as future-research or currently-unknown?) to categorise such questions, labelling them as currently unanswerable and maybe they will be valuable as input if visitors are looking for areas of knowledge to be uncovered. I just had the idea and was wondering if people would think it of any use :) I'm sure it wouldn't be very useful at the moment, but maybe in the future?
Comment: Well... if once or twice in a decade counts as rapidly changing, that applies to a lot of questions here... xD
Comment: There is a moderator notice that we can put on if it's warranted, see example on this question.  EDIT: However the wording of it has apparently changed dramatically since I last looked at it and it doesn't seem appropriate anymore <_<
Answer: This would be a meta-tag, and they are generally problematic, see this blog post for more information about meta tags.
Aside from that I think the decision whether something is worth investigating or not is very subjective. And the list of everything we don't know is probably too long to be useful.
This shouldn't stop you from compiling a list of interesting topics out of questions here, just tags aren't the right way to go about this.
Comment: Very nice blog post which immediately reminded me of [tag:homework] :) A tag was the best way I could think of; though the idea was something like half-closing the question and marking it as resolved even if, strictly, it's not (i.e. resolved by current knowledge).

Categorisation of potential research?


ArcGIS 10.1 crashes during connection with ArcSDE 10.2 in Oracle 11g database

Question: I have been having this issues of ArcGIS (ArcMap and ArcCatalog) crashing on me every time I try to connect to the databases. I have updated both client and server patches for Oracle as suggested by ESRI tech support but nothing has changed. I cannot even click on the Properties without getting ArcGIS to crash. I am using Windows 7 Enterprise SP1 64-bit OS. Has anyone encountered this and have solution for it?
Comment: Probably not.  Certainly not without ***exact*** Oracle version information.  Esri Tech Support is your best chance to find a solution.  GIS SE is not supposed to be a replacement for GIS vendor tech support.
Comment: What SP of Desktop 10.1?  In general, best practice is to update the clients *before* the servers.  Crashes are due to external DLL failure, so it would be necessary to specify which exact Oracle release the server is at, and which client you are using.
Comment: Thank you so much Vince. It's SP1. Is there a way to fix this?
Answer: Please upgrade your ArcMap / ArcGIS for Desktop to 10.2. ESRI has always, since version 8.0, the first release of ArcGIS, came out 17 years ago, clearly stated you need to upgrade your clients before you upgrade your geodatabase.
Look at it from another side, you don't expect Office '95 to be able to open your Office 365 documents, do you? So why do you expect ArcMap 10.1 to be able to access a 10.2 database?
Comment: In this particular case, 10.2 was originally going to be 10.1.2, so there is more compatibility.  If the Oracle DLLs are fataling 10.1, they might fatal 10.2.  Using 10.2.2 with the most recent Oracle patches is worth a try, but I expect it's not the ArcGIS, and instead something else.
Answer: A workaround for this problem is to perform the appropriate Oracle Critical Patch Update for your ArcGIS version https://support.esri.com/download/2143


Duplicates in contacts in iphone

Question: I am using icloud, but always sync my contacts using itunes. Still have a lot of duplicates. How do I get rid of the duplicates
Answer: On your Mac, open the Address Book and goto Card → Look for Duplicates.
You'll be prompted with something like this:

After merging the contacts in the Address Book you should choose to replace the contacts on the iPhone. This option can be found under the iPhone in the iTunes sidebar.
Answer: Best to not sync your contacts with iTunes and a cable if you're using Mobile me and/or iCloud. The duplicates are probably because you're looking at what's on your computer combined with what's on iCloud.
Once you choose to sync with iCloud turn off contacts and calendar sync through iTunes. This was true in the "old" Mobile Me days and it's still true with iCloud.
Comment: While this answer is, in essence true, this is not the only source of duplicate entries, and would most likely lead to 100% (or nearly so) duplication of the address book cards. I sync **on;y** through iCloud. No iTunes. No Google. Sometimes, for reasons I seldom understand, a handful of contacts are duplicated. I can't really say if this happens all at once, or if its a contact or two at a time, because I (assume) I'm not catching the duplication right after it happens.
Answer: Follow these official steps:

Make a copy of your contacts.
Open Contacts app.
From the Card menu, select Card > Look for Duplicates.
When asked, click Merge.
Repeat steps 2 and 3 until no duplicates are found.
Make another copy of your iCloud Contacts at Apple Support.

Source: If you see duplicate contacts after setting up iCloud Contacts.

If you see duplicates in Contacts on iCloud.com, visit Apple Support for help.
If you see duplicate contacts only on your computer and not on iCloud.com, follow the steps below.
If you see duplicates on your Windows PC, check these Microsoft articles for Outlook 2007, 2010, Outlook 2013 and 2016.
Answer: Your problem obviously comes from the fact that you use both iCloud and iTunes to sync your contacts.
There is a bit of a complicated solution but which works. First switch off your iCloud contact sync. Next, go to iTunes and set up a Gmail iPhone contact sync.
If you don't have a Gmail account, create one. Next, sync all of your iPhone contacts with your (new) Gmail account.
Finally, select "Find and merge duplicates" from your Gmail Contacts settings (by clicking on the "More" button).
Make sure you effectuate a sync between your Gmail contacts and your iPhone once again (via iTunes). All of your duplicate contacts are now gone (and whenever needed - merged).
Go to Gmail (from your web browser), and navigate to your Gmail contacts (all of your iPhone contacts should now live in your Gmail too).

Duplicates in contacts in iphone


Why doesn't the beta particle stay in the nucleus

Question: When a neutron splits into a proton and an electron during beta decay, why does the electron fly out? Should it not stay close to the oppositely charged protons?
Answer: Remember beta decay is a quantum phenomenon. A neutron is heavier than the proton and can decay into a proton and electron and an electron antineutrino. There is no classical attraction between a proton in the nucleus and an electron in the nucleus; a quantum mechanical  solution within the nuclear boundary conditions is not possible:
The electron has energy and momentum, the quantum mechanics solution  for a capture by a proton due to the coulomb potential , is the hydrogen atom. The hydrogen atom levels are in electron volts, the beta decay energy is in MeV, so the electron is too energetic to be captured in a hydrogen atom type of bound state, within the nucleus. The electron with its mev/c momentum leaves the nuclear region.
Answer: It doesn't always have to fly away. Basically you are talking about electron capture.
Electron capture is sometimes included as a type of beta decay, because the nuclear process, mediated by the weak force, is the same. In electrons capture, an inner atomic electron is captured by a proton in the same nucleus, transforming the proton into a neutron, and a neutrino is released.
Now to your question, in case an electron is released outside the nucleus, why does it fly away.

The Q value is defined as the total energy released in a given nuclear decay. In beta decay, Q is therefore also the sum of the kinetic energies of the emitted beta particle, neutrino, and recoiling nucleus. (Because of the large mass of the nucleus compared to that of the beta particle and neutrino, the kinetic energy of the recoiling nucleus can generally be neglected.) Beta particles can therefore be emitted with any kinetic energy ranging from 0 to Q.[1] A typical Q is around 1 MeV, but can range from a few keV to a few tens of MeV.

So there are two reasons why the electron flies away:
1.Since the rest mass of the electron is 511 keV, the most energetic beta particles are ultrarelativistic, with speeds very close to the speed of light.
2.the energy balance of the remaining nucleus is much more stable after the beta decay, hence the decay happens, because exactly there was an unbalance of stability (unstable nucleus), that becomes more stable. Would the electron be captured in this case by another nucleon, the whole nucleus would not reach complete (or maximum possible) stability again.

Why doesn’t the beta particle stay in the nucleus


Can I make a font out of *.png files?

Question: I'm making an font, but, I'm not fluent in making SVG images, I know some photo editors can do this, but the way I draw, it doesn't seem like it can be coded in SVG. Please help. I'm using Photopea.
Comment: I'm sorry, but this question is way too broad. Are you familiar with the difference between *raster* (pixel) and *vector* graphics? In short: Unless you are making a *pixel font* which is deliberately pixelated, you can't make a font in a raster editor like Photopea. If you want the font to appear sharp like other fonts you have installed on your computer, it has to be drawn in vector from scratch. It's not a matter of just "converting".
Comment: Welcome to GD.SE! What is "Photopea"? Do you have a link to it?
Answer: About making font from PNG images: It's possible. PNGs are raster (=bitmap) images and there exists bitmap fonts and their editors. There are even web services which generate fonts from bitmap images but they require the images as strictly scaled and placed into a given frame.
Photopea is a finely implemented free (but shows ads) web service which resembles Photoshop and replicates a respectable part of Photoshop's  bitmap and vector image functionalities (but not CMYK colors, it's RGB only).  You can well draw there your font letter shapes and export them as PNGs assuming you use a service which converts them to a computer font. Photopea itself doesn't make fonts.
Computer fonts are most often based on vector shapes. Unfortunately, when making vector shapes, Photopea is approximately as limited as Photoshop. You can export vector shape layers as SVG. You can draw them for ex. with the Pen (=the Bezier curve drawing tool) but the editing and drawing tools are poor when compared to proper vector drawing programs (=Illustrator, Inkscape, Affinity Designer, CorelDraw....)
A suggestion: Get Inkscape. It's free and SVG is its native file format. Path drawing and editing tools are much more advanced that what you find in Photopea (or Photoshop or other programs which shine with raster images).
Inkscape can convert (=trace automatically) high resolution and high contrast PNGs or pasted raster images (see the Example) to vectors very well - as well as many high cost programs (like Illustrator).
Inkscape has a simple font editor. It creates font files from your vector shapes. Unfortunately they are SVG fonts only. They are not widely supported, but at least they work in Inkscape.
Vector shapes created in Inkscape can be used in more advanced font editors which accept SVG. You can paste drawn shapes from Inkscape directly for ex. to Birdfont. Pasting works to both directions.
A warning: Prepare to fight a few days to pass Inkscape's steep learning curve of how to draw and edit vector paths. After it you can actually start to utilize the program and draw something.
An example.
This is drawn in Photopea with a solid brush:

The red color is is selected with the magic wand and pasted to an empty drawing in Inkscape. It's there a raster image object. It's selected to be the next item which will be traced to vector:

The shape is traced by applying Path > Trace Bitmap. Tracing is done in the simplest mode (=black and white, default settings). The bitmap image is below the tracing result, but it's still there.

The painted area has become a vector shape with black fill color and no edge stroke. There can be a stroke due the program settings, but it must be removed for next steps.
The tracing result can be used in a font. The A was pasted to Birdfont:

Actually it's pasted to the glyph box A of an new empty font. The box of A was opened for creating the new A from scratch. The next image is taken from the font overview. My own A is the only actual glyph in the font. Other letters are only the names of the empty glyph boxes

Nothing worth telling at home, I guess. Painting solid and steady shapes by using a mouse is difficult. Even a beginner would get much better results by drawing the shape with the Bezier curve tool (=the Pen) in Inkscape or in the font editor.
Another warning: It was an empty font. It would be as easy to replace glyphs of an existing font, but the makers of commercial fonts have strictly prohibited it and that's done for a good reason. Some makers of free fonts allow creating modified versions as long as the original and its creator are mentioned and the name is changed.

Can I make a font out of *.png files?


Stack up on each other or stack on one another

Question: My girlfriend and I saw a meme on Instagram of a house surrounded by treadmills titled "How to survive the Zombie apocalypse". After seeing it, my girlfriend said "I don't think this would work; they would all stack on one another", and then she asked me whether "they would stack on one another" is correct, and I couldn't answer her question because I got confused myself, being a non-native speaker. I would've said "they would all stack up on top of each other" but I'm not sure....
Answer:
They would all stack on top of one another

Nothing you or your girlfriend said is necessarily wrong, but the most idiomatic way to say it would be the above.


how to replace flat file created by a export data wizard on a schedule task with server agent

Question: i already create a SSIS package on SSMS and scheduled in Server Agent, it create succesfully my '.csv' file but i want to overwrite the file every night when the scheduled job start again.
Comment: Have you tried it?
Answer: In your SSIS package, in the Flat File Destination, make sure the box Overwrite data in the file is checked. When the package runs each night, the file will be overwritten with new data.
Answer: Use a File System Task in your Control Flow.

The File System task performs operations on files and directories in
  the file system. For example, by using the File System task, a package
  can create, move, or delete directories and files. You can also use
  the File System task to set attributes on files and directories. For
  example, the File System task can make files hidden or read-only.