Account migration from ROS answers to Robotics SE

Question: I am aware of the transition to use Robotics Stack Exchange from ROS Answers. I followed this post "Call for Action: ROS Answers Migration Account Association" after reading "ROS and Gazebo Answers Migration to Robotics Stack Exchange Process". I have a ROS Answers account where I made multiple contributions and also learned; I wanted to migrate this account to Robotics SE but the google form link has expired. I am unable to see the questions which I asked and answered on Robotics SE. What are steps I can take now to facilitate the migration of my account to Robotics SE?
Answer: I have seen several people be pointed at this ROS users migrated to Robotics Stack Exchange – how to link accounts? as an "official answer" - although I am not sure if it actually works.


Is it appropriate to discussed the proposed usability method in literature review or in methodology chapter?

Question: I need some clarification on where to put the proposed usability evaluation method in my thesis. Is it appropriate to discuss it in literature review chapter or in research methodology chapter of my thesis?
Comment: This may be a better question for academia.stackexchange.
Answer: That depends on your research question/s, but is nearly certain to be part of your research methodology.
Research method
If the evaluation is part of proving/disproving a hypothesis, or more commonly assessing the pros/cons of the resultant design in a thesis that aims to develop a system, then the choice of evaluation method (which you'll have to justify) is in effect part of your research methods.
If in your thesis you end up with design X, there are various methods you can employ to argue design decisions you've made and the overall 'success' of the end product. But if the thesis focuses on HCID, I doubt the proposal will get approved without evaluation being a key step.
Literature review
If your thesis was to devise a new evaluation method, then you would discuss other evaluation methods in your literature review, which would serve as background, critique and rationale to your own work.


Amplitude noise vs Phase noise

Question: I've been reading that Phase Noise dominates in frequencies close to the carrier, while Amplitude Noise is more dominant in higher offsets. Could someone explain this?
Comment: In relation to what sort of signal are you talking about?
Answer: This is kind of misleading. The blue line is the noise floor. Signals below the noise floor cannot be seen as peaks on the plot.
The carrier (if there is one) has a peak, and it falls off as you move away from the peak. A perfect sinusoid would be a straight vertical line. But in reality, there is variation in the frequency, and that causes the carrier to have a spread out shape.
So what you are calling phase noise is just part of the signal that is not at the center frequency. Basically, the statement that "phase noise dominates close to carrier" just means that the sloping sides of the peak are above the noise floor.
Phase noise is related to jitter or spectral purity. It isn't noise in the same sense as the noise floor.
Answer: Brownian or white noise is equal power per unit bandwidth which depends on spectal BW and becomes a variable noise floor of the spectrum analyser since the user controls the IF and video bandwidth.
Normally an oscillator suppress AM due to amplitude feedback unless there is coherent amplitude modulation and narrow band filtering. Since PM is the modulation of phase of the oscillator about centre, it is often shown with carrier rejected at the far left and upper side PM reducing to the right,
The dotted line is simply the actual curve between two asymptotic slopes.
Amplitude noise is the harmonics of the oscillator whether it is sine or square, so naturally far away off screen to the right.

Amplitude noise vs Phase noise


Can I use GSEA to look for enrichment in data that is grouped into sets but are not necessarily genes?

Question: I have yeast growth data in various experimental conditions that are classified by the strain type. Can I use the GSEA tool from the Broad Institute to test for enrichment of specific groups of strains within the total population (i.e. gene sets)? If not, would something like a hypergeomtric test be useful for this kind of analysis?
Answer: Yes, if you have a ranked list, you can use GSEA to calculate the enrichment of the strains along the ranked list.
Note that hypergeometric test is for count data, so you would test if there are more strains of one type that fit on certain conditions.
I would recommend this article comparing different enrichment methods to understand well what they do.


Does the unmodifiable wrapper for java collections make them thread safe?

Question: I need to make an ArrayList of ArrayLists thread safe. I also cannot have the client making changes to the collection. Will the unmodifiable wrapper make it thread safe or do I need two wrappers on the collection?
Answer: It depends. The wrapper will only prevent changes to the collection it wraps, not to the objects in the collection. If you have an ArrayList of ArrayLists, the global List as well as each of its element Lists need to be wrapped separately, and you may also have to do something for the contents of those lists. Finally, you have to make sure that the original list objects are not changed, since the wrapper only prevents changes through the wrapper reference, not to the original object.
You do NOT need the synchronized wrapper in this case.
Comment: I have learned so much since I posted this question. Just goes to prove that just because the answer is accepted and/or popular that it is correct. To many wrong answers an this site are accepted just because that they are popular. I changed the accepted answer to this one after I learned more.
Answer: On a related topic - I've seen several replies suggesting using synchronized collection in order to achieve thread safety.
Using synchronized version of a collection doesn't make it "thread safe" - although each operation (insert, count etc.) is protected by mutex when combining two operations there is no guarantee that they would execute atomically.
For example the following code is not thread safe (even with a synchronized queue):
if(queue.Count > 0)
{
   queue.Add(...);
}

Answer: The unmodifiable wrapper only prevents changes to the structure of the list that it applies to.  If this list contains other lists and you have threads trying to modify these nested lists, then you are not protected against concurrent modification risks.
Answer: From looking at the Collections source, it looks like Unmodifiable does not make it synchronized.
static class UnmodifiableSet<E> extends UnmodifiableCollection<E>
                 implements Set<E>, Serializable;

static class UnmodifiableCollection<E> implements Collection<E>, Serializable;

the synchronized class wrappers have a mutex object in them to do the synchronized parts, so looks like you need to use both to get both.  Or roll your own!
Answer: I believe that because the UnmodifiableList wrapper stores the ArrayList to a final field, any read methods on the wrapper will see the list as it was when the wrapper was constructed as long as the list isn't modified after the wrapper is created, and as long as the mutable ArrayLists inside the wrapper aren't modified (which the wrapper can't protect against).
Answer: It will be thread-safe if the unmodifiable view is safely published, and the modifiable original is never ever modified (including all objects recursively contained in the collection!) after publication of the unmodifiable view.
If you want to keep modifying the original, then you can either create a defensive copy of the object graph of your collection and return an unmodifiable view of that, or use an inherently thread-safe list to begin with, and return an unmodifiable view of that.
You cannot return an unmodifiableList(synchonizedList(theList)) if you still intend to access theList unsynchronized afterwards; if mutable state is shared between multiple threads, then all threads must synchronize on the same locks when they access that state.
Answer: An immutable object is by definition thread safe (assuming no-one retains references to the original collections), so synchronization is not necessary.
Wrapping the outer ArrayList using Collections.unmodifiableList()
prevents the client from changing its contents (and thus makes it thread
safe), but the inner ArrayLists are still mutable.
Wrapping the inner ArrayLists using Collections.unmodifiableList() too
prevents the client from changing their contents (and thus makes them
thread safe), which is what you need.
Let us know if this solution causes problems (overhead, memory usage etc);
other solutions may be applicable to your problem. :)
EDIT: Of course, if the lists are modified they are NOT thread safe. I assumed no further edits were to be made.
Comment: The wrapped collection is *not* immutable, however, as long as another Thread maintains a reference to the mutable version.  That other thread can modify the collection, and with synchronization, there is no guarantee that other threads will see the changes.
Comment: Eddie: You are of course right (except you meant "withOUT synchronization"?); I was writing code exposing read-only lists at the time and so implicitly (but probably incorrectly) assumed no further edits were to be made. Thanks!
Answer: This is neccessary if:

There is still a reference to the original modifiable list.
The list will possibly be accessed though an iterator.

If you intend to read from the ArrayList by index only you could assume this is thread-safe.
When in doubt, chose the synchronized wrapper.
Answer: Not sure if I understood what you are trying to do, but I'd say the answer in most cases is "No".
If you setup an ArrayList of ArrayList and both, the outer and inner lists can never be changed after creation (and during creation only one thread will have access to either inner and outer lists), they are probably thread safe by a wrapper (if both, outer and inner lists are wrapped in such a way that modifying them is impossible). All read-only operations on ArrayLists are most likely thread-safe. However, Sun does not guarantee them to be thread-safe (also not for read-only operations), so even though it might work right now, it could break in the future (if Sun creates some internal caching of data for quicker access for example).


Comparing two contingency tables of frequency data

Question: I have two 4x4 contingency tables for frequency data. They are based on the same type of sampling criteria of a number of discrete variables but for two condition (before and after). I would like to compare these statistically to see how much - or not - they differ.
A Chi square related test seems appropriate but normally this gives a result in comparison to the theoretical to calculate the statistic. So in other words I need to swap the theoretical for the second table. Of course it doesn't have to be a basic chi square test - any other appropriate test would be ok.
I have access to XLSTAT, Excel and SPSS. And would appreciate some help on this.
Comment: This *sounds* like a three-way table: rows, columns, and before/after.  Would that be the case?
Comment: Yes, you could look at it like that.
Comment: Of potential interest: https://stats.stackexchange.com/a/148174/247274
Comment: A possible duplicate ? https://stats.stackexchange.com/questions/146108/testing-for-similarity-on-count-data
Answer: Did you ever figure this out?  I am working on the same problem.  I can't find any references.  This is different from a traditional Chi-square test, in which you have one table (of arbitrary size) and you compare the observed frequencies to what would be expected under independence.  So it is an independence test on the two variables.
Let A,B be the two variables in the contingency table, and C be which table (here it has two levels).  Here you have two contingency tables (that are independent of each other), and (as I understand the problem), you want to know if the two tables have the same distribution.  That is, it's possible that in each table (conditional on the value of C), A and B are NOT INDEPENDENT (that is, a chi-square test would reject that hypothesis), but they way they are not independent is the same regardless of C.
I think here is how to do it: Let the first table (C=1) be the baseline.  Do a sort of chi-square test on the second (C=2), where each cell's expected count is not the value under independence, but rather what would be expected if the same relative frequency as in table 1 happened.  So it's sort of a test of differences of paired data, where the pairs are the cell frequencies.  But the chi-square element comes into play because in each table, the total count is fixed, so you have to reduce the degrees of freedom in the same way (Rows -1)*(columns -1) as you do in chi-square.
I found this reference online (http://web.ntpu.edu.tw/~cflin/Teach/Cate/06CateUEN05ThreeWayPPT.pdf) for 3-way contingency tables, which is what @whuber proposes.  This may work as well.  Page 23 (using his numbering) mentions complete independence of A,B,C.  I think you may want the joint independence of C (here representing the index of the table) on page 29.  This says that the frequencies (A,B), that is, the cell counts in each table, are independent of C (that is, which table they are in), which is another way of saying that whatever relationship holds between A,B, that is the same in each table.  I think it's similar to what I suggest above; where the expected values are y_{ij+} (that is the total cell count of A=i,B=j across the tables, multiplied by y_{++k} (the total count in each table), divided by n (the total in all tables).  Page 32 says this amounts to a chi-square test of a new variable that has values every combination of A,B, versus C, the index of the table.  I think the degrees of freedom would be (#A#B -1)*(#C-1), since for each table, you have #A#B combinations and the total in each table is fixed, so that's #A#B -1 dof.


Export JAR in Netbeans with source

Question: How can I export a .jar file with source (.java) in NetBeans?
Answer: As simple as:
      Right click your project  »  Properties  »  Build  »  Packaging

Verify that Exclude from Jar File filter does not include  *.java  files.
That's it!
Your generated jar  will include source code.
Comment: From now on there will be no doubt on which version is in production.
Answer: A JAR file is a Java Archive, and generally includes compiled .java files (classes) into a directory format based on packages.
Generally, you would want to provide your .java files (java source code) in a format other than a jar.
Netbeans provides the ability to export a Project from

File > Export Project > To ZIP.

This will export the netbeans project along with any source code.
By default, The jar file is generated when you build your project in Netbeans and can be found in your "dist" directory inside your netbeans project. The "Files" tab (Ctrl + 2) in netbeans shows you your project files. You can right click on the jar file and find it's exact location on your computer by selecting properties.
See this question for more information on exporting a jar from Netbeans: Export JAR with Netbeans

Export JAR in Netbeans with source


How to make arduino GPIO to operate at 3.3v instead of default 5v

Question: I am working on a project, I use arduino mega 2560 with system operating voltage of 5v, at the same time I have a Bluetooth module which operates at 3.3v is there any way to reduce my arduino output voltage without any external component such as resistor, ic etc
I saw the following statement in arduino website but couldn't understand,
"IOREF. This pin on the Arduino board provides the voltage reference with which the microcontroller operates. A properly configured shield can
read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs for working with the 5V or
3.3V."
Comment: See http://arduino.stackexchange.com/questions/132/what-are-the-aref-ioref-and-the-unlabeled-pin-next-to-ioref-on-the-uno-r3
Comment: I think the IOREF pin will just be at 5V in your case and a shield with a BT module would sense that and levelshift for you. But you use a separate module.
From 5V to 3.3 V you can indeed use resisors. But if you have any signals going from 3.3 to 5V (and I think you do you also want to receive data from the BT module) then you need a "levelshifter", something like: http://www.ebay.nl/itm/5V-auf-3-3V-IIC-I2C-Logic-Level-Konverter-Bidirektionale-Modul-fur-Arduino-Neu-/251752724158?pt=LH_DefaultDomain_77&hash=item3a9da1b6be  might do the job.
Answer: AVR 2560 output are not 3V3 tolerant (for input) and you cannot internally change voltage level (output) unless you reduce Vcc to 3V3 (which reduces max. crystal frequency). You need employ level shifters. I prefer 74LVC125, 74HCT125 ICs.
Comment: Thank you for the feed back, I guess I have to use a level shifter
Comment: +1 This is the best solution. I suggest avoiding level shifter chips that claim to automatically switch direction.


Why did Bobby Fischer play the Queen's Gambit as White vs. Spassky?

Question: Why did Bobby Fischer play the Queen's Gambit as White in many games in the 1972 World Championship match vs. Spassky, although he almost never played it in any other tournament or match game?
Comment: The real question is: why didn't Fischer play the Queen's Gambit before? It's a strategic opening with clear ideas, often leads to rook endgames and should be completely to his taste.
Answer: Spassky had an entire squad of Soviet grandmasters trying to find holes in Fischer's repertoire. So it made a lot of sense to surprise them. He also avoided the sharp King's Indian and went for the Nimzo instead.
There are other examples for this strategy. Peter Leko, a 1.e4 player, switched to 1.d4 for his match against Kramnik. Changing the black repertoire is even more common: Gelfands Gruenfeld and Sveshnikov against Anand, Kramniks Berlin against Kasparov ...
Answer: Another idea is that it was strategy at it's deepest.  He waited until the most important match of his career to use this part of his opening repertoire.  In "Fischer-Spassky, Reyjavik 1972" C.H.O'D Alexander writes of game six.  "This game was notable for two things.  First, Fischer played the Queen's Gambit for the first time in his life in a serious game; second, he played it to perfection, the game indeed casting doubt on Black's whole opening system."  In the game notes he describes it as a 'sensation'.  Talk about catching your opponent unawares.  And is there any better strategy than that?
Answer: Fischer was noted for his attacking play derived from Kingside openings. He had to figure that Spassky (and other Soviet masters) would analyze this play.
Therefore, he played variations, particularly queenside games, where he didn't have much of a "footprint," where people couldn't prepare as well.
In essence, he was "starting from scratch, and relying on pure skill.
Answer: You write "although" as if that were a reason not to do it, when it's the opposite. Imagine if he had done otherwise ... then someone could reasonably ask "Why did Fischer play the same opening lines he had played in all his other tournaments and match games, although that allowed Spassky's team to thoroughly prepare for them?"
Answer: Fischer knew the Soviets had analyzed every move in his opening rep and he knew his only chance of winning was to change things up. He played other openings that weren't typical like Alekhine's and the Nimzo-indian.
A lot of people (especially younger) don't really understand the cold war and don't understand how important chess was to the soviets. They devoted enormous resources to beating Fischer. Im sure they had rooms with hundreds of strong players analyzing Fischer's games day and night. There was an account in Brady's book about an adjournment that kind of confirms that.
Also, there's a strategy in matches. You don't want to just play the same opening over and over. Part of that strategy for Fischer was to get the analysts focused on other openings and not what he actually wanted to play.
Also, Fischer was criticized for playing a limited opening rep and I'm sure he was answering that criticism.
And, I'm sure in preparing for his title run, he looked at Spassky's games and found some positions he thought he could exploit.


Partition Function- Are the energies of the individual microstates, free energies?

Question: $$Z=\sum_i e^{-\beta E_i}$$
I am relatively new to statistical mechanics, and I am wondering if the individual energies ($E_i$) in the equation above are free energies associated with each microstate? If it is, would it be Gibb's Free Energy or Helmholtz's Free Energy?
Comment: It's not free energy, it's energy.
Answer: No, the $E_i$s are energies. In statistical mechanics it can be show (see for example here) that the Helmotz's free energy $F$ is related to the partition function of the system in the following way
$$
F = -kT\log Z
$$
and all other thermodynamic relations, e.g. that with the Gibbs's free energy, can be found starting from it.
Comment: Is it possible to obtain the free energy associated with a particular microstate, and not the entire ensemble?
Comment: @wanlei I'm not sure a possible definition on a single microstate would be meaningful, especially if I think at the relation between the free energy and the entropy of the system.


who should keep the cornering line

Question: In a car race, if 3 cars started the race and are approaching the first corner (Left corner) and almost the 3 cars are arriving the corner equal in distance and almost equal speed, is there any rule about who should keep the cornerning line?
The black car ended hitting the red.
Answer: Without question, if you are at least half-way alongside a car, the car on the inside has "the right" to claim the entry to the corner. In the example you gave, it sounds like the black car actively turned into the red car.
As an example, let's take the corner out of the equation for a moment; if one car actively turns into another car on a straight, then the car that turned would be deemed as the one that caused the accident and is therefore at fault.
The same principle applies mid corner - actively turning into another car causes an accident and is therefore bad.
Conversely, if red had failed to turn in (e.g. missing a braking point) this may have prevented black from turning in but black could still avoid that accident (showing down and/or tucking in behind red). I think the relevant point is that by turning in on red, black causes an accident that red could not avoid and should therefore be held accountable.
It becomes slightly more complicated on the exit of the corner. After the apex, cars will naturally drift to the outside of the turn therefore reducing available space. If two cars are literally neck-and-neck, there is a mutual responsibility to respect "racing room". MSA Blue Book regulation Q14.4.1 states that drivers

...should leave at least one cars width between his own car and the edge of the track...(deliberately) crowding a car beyond the edge of the track (is) strictly prohibited

Consequently yellow would be expected to give enough room for red to exit alongside, and red to give enough room for black to exit alongside (again, assuming they were ALL exactly level throughout the corner). However, if either car is less than halfway alongside then whether they are on the inside or the outside, the onus is the car behind to avoid the accident.
In this case, since we don't know where the collision occurred and the relative position of each car immediately prior and at the point of collision, one cannot say with certainty who was at fault, though it looks a lot like black turned in on red from the lines you've shown. To answer your specific question, notwithstanding the missing information, it is highly likely that the "right" to the corner falls to yellow, then red then black.

Despite embellishing my initial response and expanding on the difference between corner entry and exit, this answer could still be improved.
Answer: My answer is specific to Formula 1 but I suspect it's the same for other formulae.
In the example given, none of the 3 cars can keep the racing line as it would likely lead to an accident.  In Formula 1 you are penalised for "causing an avoidable accident".
All 3 cars are alongside each other heading into the first turn, they should all therefore ensure they allow each other "racing room".  The fact that one car is currently on the racing line is not so relevant as the race has just started.
Generally speaking the car on the racing line has "right of way" and can take the racing line but if another car is alongside the driver on the racing line cannot reasonably assume the other driver will make way, he cannot simply disappear into thin air so both drivers would need to give racing room.
The exit of the corner is a little different as the driver on the racing line can stick to this and the driver on the outside of him would have to give way, plenty of examples of this in F1, watch Hamilton vs Rosberg.
You'll need to search "Hamilton vs Rosberg Bahrain 2014" on Youtube or similar as the FIA remove the videos quite often due to copyright issues/Bernie not having enough money.
In summary the car that is ahead can claim the racing line but if alongside each other they need to give "racing room" to their competitors.
It's not easy to determine what constitutes being "alongside" the other car though which is why there are stewards to judge incidents and penalise drivers accordingly.

who should keep the cornering line


List of Shaiva sages mentioned in scriptures

Question: Which Sages are described in the scriptures(Vedas,Upanishads,Puranas) to be Shaivas (Devotees of Shiva)? Please provide a list of Shaiva sages as long as possible.
Answer: The Vamana Purana Gives us a list of four Primary Shaiva sects.
---- Vamana Purana 6.87 ----

It then Goes on to list various Eminent sages that have been affiliated with these Shaiva sampradayas.
Sage Vasistha's son, Rishi Sakti is stated to be A shaiva. Similarly, Bharadvaja Muni is also stated to be a Mahapasupata.
---- Vamana Purana 6.88 ----

Similarly, Sage Apastamba was affiliated to the Kalabadana Shaiva sect.
---- Vamana Purana 6.89 ----

The Famous Shaiva Acharya From Nath Sampradaya - Matsyendranatha is also mentioned in the Skanda Purana.
----- Skanda Purana, Nagar Khanda, Chapter 263----

43-44. In the meantime  a great fish, hitherto unknown rose up from
the centre of the Milk Ocean on the top of an aerial chariot. It had a
mass of refulgence. Making movements with its chest and arms (fins?)
it came near the presence (of Lord Śiva). He was without any egotism
or pride.

While making a hissing sound, Lord Maheśvara saw that fish and benumbed it through his refulgence. He then spoke these words:

"Who are you stationed will in the belly of a fish? A Deva, Yakṣa or man? How do you live within the body? O Lord, tell me". Matsya
said:

I have been hurled into the belly of a fish in the Milk Ocean by my mother at the instance of my father: "This boy is unworthy of my
family."

He was afraid of the destruction of the whole family. I was a child born in the Yoga (astronomical combination) named Gaṇḍānta.
"Such a child cannot perform domestic duties. It will be the destroyer
of its own family."

Thus I was cast off by my sorrowing mother. Though I am of the same family, I was seized by a fish. A great deal of time since then
elapsed.

Thanks to your nectar-like words, the great Jñānayoga became known to me. Though you are Amūrta (incorporeal), I know you entirely as
being corporeal as well.

O Lord of Devas, grant me permission to come out. O Lord, let me be seen by Bhavānī as Pitṛpa (Protector of Pitṛs?). Hara said:

You are a Brāhmaṇa. You are in the form of my son. You are worthy of being worshipped by this one who speaks. You have been benumbed, O
great fish. Come out quickly.

Thereupon, the fish that was undergoing suffering emerged headlong. He came out instantly with a distortion of his face.

He acquired beauty and intellect. His lustre now resembled that of the moon. Once stinking like, a fish, he now possessed divine
fragrance.

When the son bowed down, Umā took him on her lap. Hara who was extremely delighted gave him a name.

56-58. "This most excellent one among Yogins was born from the belly of a fish. Hence, he will become well-known in the world as
Matsyanātha.
He shall be endowed with human body which will never be split or cut.
He will master Jñānayoga. He shall be devoid of rivalry, Dvandvas
(mutually opposed pairs) and ambitions and hopes (Nirāśa). He will be
a server of Brāhmaṇas. He will be a living liberated soul in all the
fourteen worlds."

Rishi Dadhichi can also be counted as a Saiva for he directly states that he sees no diety above Shiva.

---- Mahabharata, Santi Parva chapter 284 (Gitapress)----
This is reiterated in Brahma Purana too.

Dadhīci said:
This is the warning I shall give you all. My lord has not been
invited. Just as I am sure that I do not see a deity above Śaṅkara
so also I am sure that this elaborate sacrifice of Dakṣa will not
attain completion.

---Brahma Purana Chapter 37---
Answer: Here is A List of Yogacharyas from the Linga Purana who were all devotees of Shiva and conversant with Pasupata Yoga.

In every Dvāpara age, there are Vyāsas in the same manner. The
following are the recurring disciples of these Yogeśvaras, each of
whom had four disciples.
37-51. They are:—(1) Śveta, (2) Śvetaśikhaṇḍin (3) Śvetāśva, (4)
Śvetalohita, (5) Dundubhi, (6) Śatarūpa, (7) Ṛcīka, (8) Ketumān, (9)
Viśoka, (10) Vikeśa, (11) Vipāśa, (12) Pāśanāśana, (13) Sumukha, (14)
Durmukha, (15) Durdama, (16) Duratikrama, (17) Sanaka, (18) Sananda,
(19) Sanātana, (20) Ṛbhu, (21) Sanat, (22) Sudāman, (23) Virajas, (24)
Śaṅkhapāda,
(25) Vairajas, (26) Megha, (27) Sārasvata, (28) Suvāhana, (29)
Meghavāha, (30) Kapila, (31) Āsuri, (32) Pañcaśikha, (33) Vālkala,
(34) Parāśara, (35) Garga, (36) Bhārgava (37) Aṅgiras, (38)
Balabandhu, (39) Nirāmitra, (40) Ketuśṛṅga (41) Lambodara, (42) Lamba,
(43) Lambākṣa, (44) Lambakeśaka, (45) Sarvajña, (46) Samabuddhi, (47)
Sādhya, (48) Sarva, (49) Sudhāman, (50) Kāśyapa, (51) Vāsiṣṭha, (52)
Virajas, (53) Atri, (54), Devasada, (55) Śravaṇa, (56) Śraviṣṭhaka,
(57) Kuṇi, (58) Kuṇibāhu, (59) Kuśarīra, (60) Kunetraka, (61) Kaśyapa,
(62) Uśanas, (63) Cyavana, (64) Bṛhaspati, (65) Utathya, (66)
Vāmadeva, (67) Mahāyoga, (68) Mahābala, (69) Vācaśravas, (70) Sudhīka,
(71) Śyāvāśva, (72) Yatīśvara, (73) Hiraṇyanābha, (74) Kauśalya, (75)
Logākṣi, (76), Kuthumi, (77) Sumantu, (78) Barbarī, (79) Kabandha,
(80) Kuśikandhara, (81) Plakṣa, (82) Dālbhyāyani, (83) Ketumān, (84)
Gopana, (85), Bhallāvin, (86) Madhupiṅga, (87) Śvetaketu, (88)
Taponidhi, (89) Uśika, (90) Bṛhadaśva, (91) Devala, (92) Kavi, (93)
Śālihotra, (94) Agniveśa, (95) Yuvanāśva, (96) Śaradvasu, (97)
Chagala, (98) Kuṇḍakarṇa, (99) Kumbha, (100) Pravāhaka, (101), Ulūka,
(102) Vidyuta, (103) Maṇḍūka, (104) Āśvalāyana, (105) Akṣapāda, (106)
Kumāra, (107) Ulūka, (108) Vatsa, (109) Kuśika, (110) Garbha, (111)
Mitra, (112) Kauruṣya. These noble souls are the disciples of the
yogins in all cycles of four yugas.
52-55. They are all devoid of impurities, almost identical with
Brahman, and engaged in the path of knowledge. They are devotees of
Paśupati, great Siddhas and have ashes smeared on their bodies. There
are hundreds and thousands of disciples and their disciples. They
attain the Pāśupata yoga and Rudra's world. All beings from Devas to
Piśācas are said to be Paśus. Since Lord Rudra is their overlord he is
called Paśupati.

Skanda Purana mentions a Shaiva sage, Vāmadeva.

अस्त्येको वामदेवाख्यः शिवयोगी महा तपाः ।। निर्द्वंद्वो निर्गुणः शांतो
निःसंगः समदर्शनः ।। ३ ।। आत्मारामो जितक्रोधो गृहदारविवर्जितः ।।
अतर्कितगतिर्मौनी संतुष्टो निष्प रिग्रहः ।। ४ ।। भस्मोद्धूलितसर्वांगो
जटामंडलमंडितः ।। वल्कलाजिनसंवीतो भिक्षामात्रपरिग्रहः ।। ५ ।। स एकदा
चरंल्लोके सर्वानुग्रहतत्परः ।। क्रौंचारण्यं महाघोरं प्रविवेश यदृच्छया
।। ६ ।।
There was a Śivayogin named Vāmadeva. He had performed great austerities. He was free from the mutually opposing pairs (like
pleasure-pain). He was free from the adverse effects of the Guṇas. He
was quiescent, free from contaminating contacts and impartial (in
viewing things and persons).
He took delight in his own soul. He had subdued anger. He was devoid of wives and household. His movements used to be
unpremeditated. He used to observe silence. He was contented. He had
no possessions of his own.
He used to apply ash all over his body. He was adorned with matted hair. He wore bark garments or deerskin. He used to accept only alms.

~ स्कन्दपुराणम्/खण्डः ३ (ब्रह्मखण्डः)/ब्रह्मोत्तर खण्डः/अध्यायः १५
Answer: As, a detailed answer is already given. Let me give an answer from advaitik point of view.
Rig-Veda 1:164:46.:

Truth (Bhagawan) is only One, wise and sages calls him by many, different and various names.

YajurVeda, Taittariya Samhita 1.8.6.:

'There is only one Rudra and no second.'

Svetasvatara Upanishad 3.1.:

Lord Rudra is the one, who is without second.

So, every one worships that One only.
Sri Shiv Mahimna Stotram.:

Just as different Rivers merge into the ocean, Similiarly various paths (of ultimate realization) arc enjoined by the three Vedas, by Sankhya, Yoga, Pashupata (Shaiva) doctrine and Vaishnava Shastras. People follow different paths, straight or crooked, according to their temperament, depending on which they consider best, or most appropriate--and reach(merge into) You (Shiva) alone. (7).

A great Sloka.:

"As pouring of water at the root of a tree nourishes all the branches, by pleasing sri Rudra, through Rudra japa (chanting of Sri Rudramhymn), all devatas are pleased. One attains Bhukti (enjoyments of life) and Mukti (freedom from the bondage of births-deaths cycle) by chanting Sri Rudram with devotion".)

Same is mentioned here also.
Rudra Hridayopanishad 1:14.:

This whole creation of Svarga, Martya and Patala Lokas is a big tree. Vishnu is the top portion (branches) of this tree. Brahma is the stem. The root is Lord Maheshwara".

Lord Shiva is root of Tree. So whenever water(Prayer/ Worship) is done to Branches or Steam(other deities) it actually goes to Root of Tree(Lord Shiva). Moreover there is pratyaksh PramAn (Physical Evidence) which supports the above Ved-Vakya. As Lord Shiva alone is the World tree and this World tree is also his abode.
Śvetāśvatara Upaniṣhad III:9.:

The whole universe is filled by the Purusha (Rudra), to whom there is nothing superior, from whom there is nothing different, than whom there is nothing either smaller or greater; who stands alone, motionless as a (world) tree, established in His own glory.

According to Nirvana Upanishad, how a yogi achieves Nirvana aka Moksha is given.:

The (worship of) gods named Vishnu, Brahma and a hundred others culminates (in Brahman). (Verse 29).

And Who is that Brahman after oneness with whom a yogi gets nirvana.:

Liberated while alive, as they are freed from denial of the highest (Brahman). The oneness with Siva is their sleep. (Verse 24-25).

Sri Madhusudana Saraswati in the his gUDhArtha dIpikA says.:

I am that Tattva, the Supreme Shiva alone,  in which (tattva) all these – Shaivas, Suryopasakas, Ganesha worshipers, Vaishnavas and Shakti – meditators are absorbed in.

And, the greatest witness of this Supreme Advaitik Truth is none other than Arjuna himself.
Mahabharata, Book 7, Section LXXXI.:

Sanjaya said, 'Then Partha, with a cheerful soul and joined hands and eyes expanded (in wonder), gazed at the god having the bull for his mark and who was the receptacle of every energy. And he beheld the offerings he made every night to Vasudeva lying by the side of the (Lotus feets of the) Three-eyed deity".

I hope this helps and clarifies all your queries. Prd..


What separates the various Clone Commando variants?

Question: In Star Wars, we see multiple elite Clone Commando variants. These include the ARC Troopers, the commando variant that Gregor and the Delta Squad belong to and the Bad Batch. Canonically, what separates these variants from each other in terms of origin, purpose, etc.?
Comment: Their training....
Answer: Disclaimer: A good chuck of this comes from the Legends books, so it may no longer be canon.
ARC stands for 'Advanced Recon Clone'. Despite their (usual) appearance in the animated series, ARC Troopers were clones specially trained for advanced recon in unfamiliar terrain, and stealth / guerilla operations. They may be comparable to US Army Rangers, in a sense.
Clone Commandos - these were actually nicknamed 'CC's in some novels. Clone commandos are uniquely trained and gifted, drawn from the exceptional clones during training. They are training for commando-type missions, such as sabotage, demolition, and usually work in small teams of Clone Commandos. They are also (on paper) the strongest clones, capable of destroying entire droid armies in just small groups. It should be noted that neither ARCs nor CCs are built from different templates.
'Bad Batch' - these aren't normal clones. Kamino mantains exceptional cloning standards, but they slip up from time to time. Usually it's a clone unwilling to follow commands, but occasionally it results in a clone with a physical defect such as Clone 99 from Clone Wars: Season 3. The Bad Batch is a team composed of clones with defects, however the defects enhanced their specialties (sniping, hacking, brute force, CQC). If you're wondering why Kamino doesn't do that for all the clones, it's because trying to deliberately induce beneficial defects into a cloning process would hit both ends of the spectrums, and the Kaminoans are trying for a uniform army.
Comment: Hi, welcome to SF&F.  This is a nicely detailed answer, but is there any chance you could find references to this information in canon sources?
Comment: The unfinished episodes that the Bad Batch appeared in, as with all *The Clone Wars* episodes are canon.
Comment: Definitely not for the Bad Batch, because those aren't currently canon. Good news - Clone Wars is being rebooted, so that'll help. That aside, honestly Wookiepedia or the Star Wars sites are you best bet to poke around.
Answer: Clone Commando is the variant
ARC Troopers are normal Clone Troopers who excelled and received further training as a result. They are CT clones, and part of the genetically identical clone batches that formed the rank and file of the Grand Army of the Republic (also CT clones).
Commandos are genetically diverse, even from each other, as a result of Kaminoan experiments. They are CC clones.
Clone Force 99 ("Bad Batch") and Gregor's squad ("Foxtrot Group") were  specific squads of Commandos, not variants of Commandos. They were still CC clones.
Comment: According to the link you posted, the Bad Batch was comprised of clones with beneficial mutations, as opposed to the standard commandos who were specifically bred.
Comment: "Commandos are genetically diverse, even from each other". Therefore, you would be able to mix and match Commandos. Each genetic variant of Cammando does not represent a different type of Commando. There is no such thing as a "standard" Commando.


RFC 1951 compression LZ77 re-hashing approach

Question: I have written a C# class to perform LZ77 compression ( per RFC 1951 ), to incorporate in my RFC 1951 deflate implementation ( posted on Jan 2 ).
The usual method (per RFC 1951) is to use a 3-byte hash to get started, then iterate through a chain of earlier 3-byte matches. However this can be slow if the chains become long. ZLib has heuristics (which I don't fully understand!) to shorten the search, RFC 1951 suggests "To avoid a worst-case situation, very long hash chains are arbitrarily truncated at a certain length, determined by a run-time parameter."
That all seems a little messy, so I decided to see if a "re-hashing" approach would work : suppose the string ABC is already recorded, and we encounter a new ABC, the new position of ABC will in future be used in preference to the old (position) for coding ABC  (as it's "closer") so we re-hash the old position as a 4-byte hash instead. If there is already a matching 4-byte entry, then the lesser position becomes a 5-byte hash, etc.
Example: given input string ABCABCDABC, the hash dictionary updates
as follows ( each section delimited by ';' corresponds to the input position advancing by one byte ):
0(ABC); 1(BCA); 2(CAB); 0(ABCA), 3(ABC); 4(BCD); 5(CDA); 6(DAB); 3(ABCD), 7(ABC);
Here's the code:
class Matcher
{
  public Matcher ( int n )
  {
    Hash = new Entry[ n * 5 ]; // A larger table reduces the number of hash collisions, but uses more memory.
  }

  private const int MinMatch = 3, MaxMatch = 258,  MaxDistance = 32768; // RFC 1951 limits.

  public int Match( byte [] input, int position, uint hash, out int matchDistance, bool look )
  // Record the specified input string starting at position for future matching, and (if look=true)
  // look for the longest prior match. hash is a function of MinMatch bytes of input starting at
  // position ( can simply be the concatenated bytes ).
  {
    int matchPosition = InsertLook( input, position, hash, MinMatch );
    matchDistance = position - matchPosition;
    if ( ! look || matchPosition < 0 || matchDistance > MaxDistance ) return 0;

    int match = MinMatch;
    int bestMatch = ExtraMatch( input, position, matchPosition, match );

    // Look for a match longer than MinMatch.
    while ( bestMatch < MaxMatch && position + bestMatch < input.Length )
    {
      hash += hash * 4 + input[position+match];
      match += 1;
      matchPosition = Look( input, position, hash, match );
      if ( matchPosition < 0 || position - matchPosition > MaxDistance ) break;
      int newMatch = ExtraMatch( input, position, matchPosition, match );
      if ( newMatch > bestMatch )
      {
        matchDistance = position - matchPosition;
        bestMatch = newMatch;
      }
    }
    return bestMatch;
  }

  private Entry [] Hash; // The Hash table used to find a matching string.

  private class Entry // Alternatively make Hash an array of positions and also store Length and Next in arrays.
  {
    public int Position, Length; // Position and Length of input substring.
    public Entry Next; // To handle hash collisions.
    public Entry( int position, int length, Entry next ){ Position = position; Length = length; Next = next; }
  }

  private int Look( byte[] input, int position, uint hash, int length )
  // Look in the hash table for a match of specified length.
  {
    uint hashindex = hash % (uint) Hash.Length;
    for ( Entry e = Hash[ hashindex ]; e != null; e = e.Next )
    {
      if ( e.Length == length && Equal( input, position, e.Position, length ) ) return e.Position;
    }
    return -1;
  }

  private int InsertLook( byte[] input, int position, uint hash, int length )
  // Look in the hash table for the specified string, and also insert the specified string into the table.
  // If there is a match with an existing string, it's position is returned, and the existing string is re-hashed.
  {
    uint hashindex = hash % (uint) Hash.Length;

    for ( Entry e = Hash[ hashindex ]; e != null; e = e.Next )
    {
      if ( e.Length == length && Equal( input, position, e.Position, length ) )
      {
        int result = e.Position;
        e.Position = position;
        hash += hash * 4 + input[ result + length ];
        Rehash( input, result, hash, length + 1 );
        return result;
      }
    }
    Hash[ hashindex ] = new Entry( position, length, Hash[ hashindex ] );
    return -1;
  }

  private void Rehash( byte[] input, int position, uint hash, int length )
  {
    while ( true )
    {
      uint hashIndex = hash % (uint) Hash.Length;
      Entry e = Hash[ hashIndex ];
      while ( true )
      {
        if ( e == null )
        {
          Hash[ hashIndex ] = new Entry( position, length, Hash[ hashIndex ] );
          return;
        }
        else if ( e.Length == length && Equal( input, position, e.Position, length ) )
        {
          int eposition = e.Position;
          if ( eposition < position ) // The smaller position is rehashed.
          {
            e.Position = position;
            hash += hash * 4 + input[ eposition + length ];
            position = eposition;
          }
          else
          {
            hash += hash * 4 + input[ position + length ];
          }
          length += 1;
          break;
        }
        e = e.Next;
      }
    }
  }

  private static int ExtraMatch( byte [] input, int p, int q, int match )
  {
    int limit = input.Length;
    if ( limit - p > MaxMatch ) limit = p + MaxMatch;
    while ( p + match < limit && input[ p + match ] == input[ q + match ] ) match += 1;
    return match;
  }

  private static bool Equal( byte [] input, int p, int q, int length )
  {
    for ( int i = 0; i < length; i+=1 ) if ( input[ p + i ] != input[ q + i ] ) return false;
    return true;
  }
}

ZLib (on default settings) seems to be faster ( although I have not tried to fully optimise my code yet), but at the expense of less compression ( since truncating the search means it doesn't always find the longest LZ77 match ).
For example, my code compresses the file FreeSans.ttf from 264,072 bytes to 146,542 bytes, the ZLib compressed length is 148,324 bytes.
Questions:
(1) What do you think of this approach compared to the 'standard' approach, are there any hidden issues I haven't foreseen?
(2) Re-hashing seems a fairly obvious and natural idea, have you seen it before?
(3) Would using arrays instead of the Entry record be a good idea?
(4) I am thinking of using two hash tables, "sliding" every 16kb of input, to reduce hash collisions when the input is more than 32kb long ( and also reduce memory usage), would that be a good idea?
(5) Any other suggestions?
(6) The algorithm as is performs poorly on long repeats ( for example 1,000 zeros ). How can I fix that? [ This question added later ]
Comment: In comparison to your last code I really like this one! The only two names that aren't so clear are the `p` & `q` in `ExtraMatch` and `Equal` ok, and maybe the `n` in `Matcher` ;-)
Comment: A simple advice with regards to how the is read is adding more blank lines in your code. Currently your code seem a little too dense. Adding a blank line before/after conditional and control statements.
Answer:
I apologize in advance that this answer does not contribute much to the actual functions of your code; However, I firmly believe that writing code that is easy for others to read/understand is an important element of feedback from any code review.

At first glance, I would note that there can be a little bit more adherence to C# Coding Conventions.
(Aside) I admit it is a bit of a discipline thing (think of setting a table for dinner... The fork and knife shouldn't be upside down with the handles faced away from the diner -- it's not functionally "wrong" but you'll get a weird face from people when they find out you were responsible -- it doesn't conform to conventions).
In particular here are a few bits that standout the most to me:
Exessive spacing.
Your "excessive" spacing (really just one too many)
makes the code a l i t t l e  h a r d e r  t o  r e a d.
For example:
public Matcher ( int n )
public int Match( byte [] input, int position, uint hash, out int matchDistance, bool look )

Should look more like this:
public Matcher(int n)
public int Match(byte[] input, int position, uint hash, out int matchDistance, bool look)

Proper case and underscore for your private fields
Here we have a private field called Hash
private Entry [] Hash;

Which according to naming conventions should be
private readonly Entry[] _hash; // note the underscore and lower case

Note: I have also added a readonly to it which according to your code is what you should do.
You could alternatively do a property, such as:
public Entry[] Hash { get; private set; } // note properties are capitalized

Note: Don't do this with your code "as-is", since your Hash object is currently a private one -- you will have an accessibility problem. I just added this as an example of a property declaration since I noticed you had none.
Validating arguments.
This is something that you may or may not require in every method as sometimes this can get a little out of hand. However, for the case of a constructor and key (usually every publicly exposed) methods, I will state that you MUST do it.
public Matcher(int n)
{
    // throw an error if passed zero or negative values
    if (n < 0) throw new ArgumentException("must be greater than zero", nameof(n));

    _hash = new Entry[n*5];
}

Hmmmm... smelly code.
I am not familiar with RFC 1951, so I hesitate to dive into the efficiencies or accuracy of your code. But asides from some of the coding convention related issues I noted earlier, there are a few sections that look like bad / smelly code (again, I cannot be certain about the results due to my lack of knowledge with RFC 1951).
Two infinite while loops.
Let's start here...
private void Rehash( byte[] input, int position, uint hash, int length )
{
    while ( true ) // <----!?
    {
        uint hashIndex = hash % (uint) Hash.Length;
        Entry e = Hash[ hashIndex ];

        while ( true )  // <----!?
        {
            ...

I'm sure others will tend to agree that this doesn't sit right. It's quite unusual to see a while(true) at all. To be blunt, it feels like a lazy design attempt, but the reason it stands out to me is because it is inside a method which name suggests a singular task / operation (Rehash). If the method name was something like RehashForeverAndEver then I would probably have glossed over this and just assumed the infinite loop was intended.
Use of public fields.
I'm looking at this private nested class Entry, that you have...
private class Entry
{
    public int Position, Length;
    public Entry Next;
    public Entry( int position, int length, Entry next )
    {
        Position = position;
        Length = length;
        Next = next;
    }
}

I generally hesitate when I see the use of public fields. Due to the -- let's call it -- stigma behind the use of them. It throws off some heavy code smell. I would carefully reconsider the design of this class.

I was about to note areas of possible optimizations with how you are handling the byte[] operations, but I'm going to hold off, as I think that this post is plenty long now. I encourage you to break down your code into small concise methods and re-post just the methods that you feel need code review (it would very likely yield you a more focused review and profitable feedback).
Comment: I would advice against omitting curly brackets in conditional statements. I guess it's personal preferences in the end, but I have seen subtle bugs being introduced (fortunately caught in code review) due to a developer adding line before e.g. an exception. As said, it's not a rule, but it does help keep consistency.
Comment: @Heslacher -- You're right. I am so used to seeing private fields being prefixed with an underscore in C# that I incorrectly made it appear like it was part of the official naming guideline. I hope these comments will serve as a footnote to my post.
Comment: Underscore-prefixing isn't mentioned anywhere in the naming guidelines. Nevertheless +1
Comment: I would suggest `Hash` still be readonly with `public Entry[] Hash { get; }`
Comment: @RickDavin - Technically, given his current code the `Entry` type is a private class nested within, so creating a property would not work. I would also argue that exposing the `Entry` class (take a look at it) has a bit of code smell and I wouldn't advise putting that out there in the wild.  --- I did attempt to note this in my answer, but maybe I should have just not put anything about property declarations in my answer at all?
Answer: To partially answer question (6), the Rehash function can be modified to start:
private void Rehash( byte[] input, int position, uint hash, int length )
{
  while ( true )
  {
    if ( length > MaxMatch ) return;

The logic is that since the limit on a match is MaxMatch (=258), there is no point hashing a string longer than that. This means it is now possible, albeit rather slow, to compress long repeat sequences ( which are quite common when compressing PDF images ).
I'm not very satisfied with this solution yet though, I think the algorithm could be modified to process long repeats efficiently and elegantly, but I haven't figured out how. Even with this fix, long repeats cause the processing to go much slower than normal - the outer loop of Rehash is executed nearly 258 times for each byte of input processed, when processing a long repeat.
Edit: I think skipping to the last MaxMatch bytes of a repeat sequence might work, as earlier potential matches will never be used ( again due to the MaxMatch limit ). I have not yet tried to code this.
Further Edit: After more investigation, my conclusion is that the re-hashing is not an effective approach. The cost appears to exceed any benefit, at least in the context of RFC 1951.
What seems to be more interesting is trying different block sizes, which seems to produce improved compression for relatively mimimal cost ( for example, for each block, starting with a small block size, and testing whether doubling the block size results in smaller output ).


What is the reason for forbidding liquids for cooling in drilling on cfrp/Al or cfrp/Ti stacks?

Question: I recently did some research on the effect of cooling on CFRP/Al7075 drilling.But I read somewhere that liquids are forbidden for cooling operations on these multi layer plates !!! , And I wanted to know is this true? Do I have to change the subject of my research?
Comment: So where did you read that?
Comment: Please add more information. At the least, add references to where you have read these restrictions. Also, you mention research. Unless liquid cooling is forbidden because things will explode, this sounds like it might be a good place to test the limits of what is "forbidden"
Comment: I think it might be the CFRP. I've heard of concerns about water penetrating the material at the edges where the fiber ends are exposed in other applications. In this case the concern might be the coolant getting in. Check for coolant recommendations on CFRP on its own.
Comment: @SolarMike hi. in this article (Influence of different cooling strategies on the process temperatures and chip transport quality in one-shot drilling CFRP/Al-stacks)
Comment: @hazzey hi. in this article (Influence of different cooling strategies on the process temperatures and chip transport quality in one-shot drilling CFRP/Al-stacks) and this Section ( In order to support chip transport and heat dissipation during
drilling, the use of cutting fluids is generally recommended.
However, for most stack machining operations settled in
aerospace applications, liquid cutting fluids are prohibited due
to quality and automation requirements. Although alternative,
non-liquid cooling strategies exist, these CFRP/Al-stacks are
usually drilled under dry conditions)
Comment: Please [edit] your question with the additional information instead of posting it in comments.
Comment: Link to paper in question: https://www.research-collection.ethz.ch/handle/20.500.11850/504626
Comment: It might be that the CFRP + metal, or CFRP + adhesive + metal stack is susceptible to galvanic corrosion, and the coolant is impractical to dry out of it after drilling ???
Answer: According to this article:
A Phased Approach to Optimized Robotic Assembly for the 777X
drilling multi-material composites does require some special trickery, especially when automated assembly is part of the process:

There were lessons learned relating to process
capabilities whereby technologies were added or modified to prevent
the need to return to hole locations for further processing. Additional
cutting lubricants and methods were specified to allow layer by layer
drilling optimization specifically targeted for one-up assembly.

The cooling/chip evacuation methods were varied during single hole drilling per current material layer of stack. The reason for this is explained on the document to be:

Critical for one-up assembly as the fastening immediately follows the
drilling process, composite stacks are drilled dry and metallic
substructure layers drilled with minimal air/oil mist. This keeps the prepared hole dry and clean. To keep the evacuation system clean from carbon build-up when drilling dry or with air/oil mist, a coolant jet was added downstream of the nose piece to enable the line to be
washed.

So each material in the stack requires its own specific method for cooling and "chip" evacuation (drilling CFRP does not produce chips as they are traditionally considered in machining, but anyway).
Other articles suggest that using liquid coolants when drilling CFRP results in less tool wear and better finish, but the reason not to use liquids when drilling CFRP (or layers of it in a stack) in this specific case seems to deal with the requirement that the hole must be both clean and dry before fasteners can be installed. Plastic composites are always a little porous to some extent and drilling will slightly break up the surface, further making it more permeable. Coolant residue in a joint sealed by a fastener would elevate the risk of corrosion in the joint.
Answer: The paper quoted is Open Access, and gives the reason in the opening paragraphs:

for most stack machining operations settled in aerospace applications, liquid cutting fluids are prohibited due to quality and automation requirements

They in turn cite

Rivero A, Aramendi G, Herranz S, de Lacalle LL (2006): An experimental investigation of the effect of coatings and cutting parameters on the dry drilling performance of aluminium alloys. The International Journal of Advanced Manufacturing Technology, 28(1-2): p. 1-11.

The abstract of this paper states that:

As a result of the need to automate assembly in the aircraft industry, along with economic and ecological reasons, industry and research institutions have been pushed to develop dry drilling for aluminium alloys to eliminate the need for cooling fluids.
Comment: I feel like since we've managed to have wet milling machines for a century, having a waterproof robot doesn't seem like it would be too hard.
Comment: @TigerGuy I too wonder what is meant by "automation requirements"? Maybe the gooey dust gets in the way of self indication?
Comment: I added quote from abstract of Rivero et al paper, but this still does not give a satisfactory answer to the question IMO. We must go deeper...


Can I brand my open-source application?

Question: Is it possible for the author to register a logo or the name of his/her application when it is open-source because it uses a gpl library (for example)? The application uses the library but it has its own features, that is it's not a modification of the library.
So everyone can see the source code, downloading an "anonymous" non-branded version from Sourceforge, but none can use the logo or the name and so the author can sell it from his/her web-site (for example) to non-expert users, only after payment.
Is he/she obliged to give directly the source code, or it is enough that there is the non-branded version available on Sourceforge or other official repository?
Comment: Related reading: http://en.wikipedia.org/wiki/Mozilla_Corporation_software_rebranded_by_the_Debian_project
Answer: This question, apart from the fact it's hardly related to programming, suffers from a major issue. Which country are you considering? In most of Europe in general, and in France in particular, your intellectual property is protected, and a logo, as it is an artwork, will be protected without any other step unless you expressly make it public domain.
However, other countries and regions may differ, and you would need a lawyer with expertise in global intellectual property to answer decisively.
Answer: Generally speaking, the way to protect a logo or a name of a product is to register it as a trademark.  The details of how you register a trademark, and the protections that this gives you will vary depending on your country.  Talk to an IP lawyer for more information ... or check with the agency of your government that is responsible for trademarks.
Open source licenses are based on copyright, and this is generally speaking orthogonal to trademarks and patents.  However, a genuine open source license would allow anyone to remove your branding / logos / etc, and distribute a no-name version or a version with their logo and branding.  (Some open source licenses require some kind of acknowledgement of the origins of the code.)
So basically, what you are wanting to do is possible from a legal perspective (IANAL, etc).
However, it is not clear that this will achieve what you want.  It will allow you to sell your branded version (subject to the conditions of any upstream licensing of course) but it won't prevent someone else from stripping out your brand, etc.  And the chances are that someone will do this ... assuming that your product is worthwhile in the first place.
So really, branding per se doesn't offer you any competitive edge with an open source product.  You should really be focusing on offering value for the customer's money in another area than old-style licensing fees.  For instance, try to make your money on offering support services, customizations, and things like that.  Or by getting sponsorship.
And once your brand has an association in the customer's mind with good value for money ... then the brand starts to have a value.
This is not to say that trademarks are not without value to you.  For a start, they can defend you against some opportunist scum making trouble by trademarking your product's name and using that as leverage to extract money.
Answer: If you are distributing binaries of a GPLed program YOU must make the source code available.  Pointing to a third party site is not enough.
To address the question of trademarks in GPLed code. If the code is GPL then you must distribute the same source (Trademarks and all) used to build the binary.
As an example see Red Hat Enterprise Linux, the source with trademarks is made available by Red Hat.  CentOS and Scientific Linux remove the trademarks when they repackage RHEL.
Comment: "Pointing to a third party site is not enough." I hardly think that all those projects on Sourceforge are in violation of GPL for using Sourceforge and not their own hosting.
Comment: Hmm I think they may have loosened this a bit in GPL3.  In any case if the third party no longer has the source or the correct version of the source you must make the source available. The other thing is that the author of the program is the only one who can enforce the GPL.  If they feel that pointing to sourceforge or github is sufficient then it is.  You will note that Redhat hosts the source for all of the packages it distributes.

Can I brand my open-source application?


If a personal loan was made in one state, and they now live in a different state, and you live in another state, which state do you file?

Question: I loaned a friend money. He then vanished. 18 years later I found him. He lives in a different state then where the loan was made. I also live in a different state. I know there are time limits, but are exceptions made when it is clear the person tried to hide from you. And if I can still file, which state would I file?
Comment: Probably better on Law.SE (but check their help pages first). According to [Statute of limitations: United States](https://en.wikipedia.org/wiki/Statute_of_limitations#United_States), **(a)** the time-limit has almost certainly expired, and **(b)** you could probably have filed a complaint with the court even if your friend was absent. After 18 years, I _suspect_ (but IANAL) there's not much you can do.
Comment: Can you clarify what you mean by "file?"
Comment: Sorry meant file with small claims court.
Comment: @dwizum Filing/creating the lawsuit. As in "_If the statute of limitations expires before a lawsuit is filed_" from the link I added.
Answer:
Q1: What are the time limits?

It depends on the state, and the type of agreement (oral, written, promissory note, open-ended). But according to TheBalance.com, it is usually between three and six years, and the highest is fifteen years. So in your case -- 18 years -- you are very likely going to be prevented from filing a suit in any state, and with any form of agreement.

Q2: Are exceptions made when it is clear the person tried to hide from you?

There are some exceptions that can pause the statute of limitations, but I don't see that any apply to you in this situation.

Discovery - the clock might not start running until you discover that you've been harmed. Presumably you knew that he stopped making payments at about the same time that he vanished, so any claim that you didn't discover the harm until later seems unlikely to get very far.
Absence - the clock can be paused if the defendant is unable to be served with notice of the complaint. This one is a possibility, but it seems to require that you at least attempted to serve him with some sort of legal notice of default.
Legal disability - if the plaintiff is a minor or has been declared mentally incapacitated, there may be additional time granted. If you think this one might apply in your situation, please edit your question to point us in that direction.
Other uncommon exceptions: military service, death, war, jail/prison. I don't see anything in the question that points to any of these.

These are discussed in more detail at this Lawyers.com page. That page focuses on personal injury cases, but the basic principals apply to other types of civil lawsuits.

Q3: If I can still file, in which state would I file?

Typically, you will file in Small Claims Court in the defendant's state. Per Nolo.com:

"If a defendant has no contact with your state, you'll generally have to sue in the state where the defendant lives or does business."

From another Nolo.com page:

"If you want to sue someone who lives in another state, you will have to sue in the state where the person lives, not in the state where you live."

However, you might be able to sue in the state where the contract was signed. Per RocketLawyer.com:

Contact the county clerk in the small claims court district closest to the residence or business of the person you are suing. If the defendant has no contact with your state, you may be able to sue in the location in your state where the contract was signed, but you generally have to sue in the state where the person you're suing lives or does business.

Because neither of you currently reside in the state where the loan was made, the part about "...sue in the location in your state where the contract was signed..." makes this option sound unlikely to bear fruit.


Does a working pocket watch have more matter than a broken pocket watch?

Question: Say I have two exactly identical pocket watches. Say one pocket watch works and the other does not (the broken one does not work because a gear broke). Does the working pocket watch have more mass than the broken pocket watch?
Comment: I think that would depend on why the broken one is broken. If it's broken because you removed a gear, then yeah, it has less mass. If it's broken because one of the gears cracked in half, then they'd have the same mass.
Comment: I think it would be better if you gave  your thoughts on it... otherwise it's an easily researched question, imo
Comment: @JohnKennedy Well the thing is that today is the first time I really decided to understand E=mc2, and in the process found out that Energy and Mass can convert/produce each other (mass-energy equivalence). but as I did more looking, I found that understanding E=mc2 was too hard without understanding what the true definition is of mass. I posted a question about it here about 2 hours ago. while trying to find out what it was, I came across and article that said that at very high speeds, special relativity postulates that energy becomes a significant additional source of mass.
Comment: Oh, you're worrying about relativistic effects. Ok in that case I think you might want to edit your post to make it more clear what you really want to know.
Comment: @JohnKennedy So I am just trying to get and understanding of all this stuff. I am 15 and maybe I am still too young to really get a grasp around all these concepts.
Comment: Only you know that :). But keep asking, for sure.  Put your comment, as Daniel Sank suggests, into your question, using the edit button below your question.
Comment: I won't modhammer this, but I think it is a duplicate of [Does contracted spring weigh more than stretched one?](https://physics.stackexchange.com/questions/252241/does-contracted-spring-weigh-more-than-stretched-one)
Comment: If one watch works and the other doesn't, then they clearly aren't identical.
Answer: I am assuming the pocket watches are the old fashioned kind that has a spring that needs to be wound up periodically.  I am also assuming that the "broken" watch simply means that the spring has not been wound up so it doesn't function.
In this case, yes, the "working" watch will have a very tiny amount of extras mass when compared to the broken watch. According to this answer on Physics Stackexchange, a watch spring could contain approximately 0.3 joules of energy.  By $m=E/c^2$, that means the wound up "working" watch would be only $3 \times 10^{-15} \ grams$ heavier than the "broken" watch.  This mass difference is equivalent to the mass of about 3 billion protons.  Obviously, this is far to small to be measured by any laboratory scale.
Answer: You are worrying about special relativity effects. These effects appear when objects are moving with very high velocities to each other.  For everyday objects like watches , Newtonian mechanics is enough to make sense of energy requirements.
In Newtonian mechanics mass is conserved, that is how the Archimedes principle works. So if your two watches are identical, and no pieces have been removed, it is only the kinetic and potential energy in the system that may be different. I will assume that just before breaking the batteries or the springs have the same potential energy. A working watch has kinetic energy in the gears, and potential energy in the spring that was wound, or in the battery if it is electric.
The working clock spends potential energy that goes into motion of gears etc, and then into friction, and then into infrared radiation , while the stopped one keeps the potential energy.Thus  it is the working clock that has less energy, even from the first second of breakage of the stopped one.
Special relativity does not enter into this problem.
Looking at the other answer you got, you must realize that it is the starting hypothesis that changes the answer. For a problem to be unique the boundary values have to be given, as changing them changes the answer.
Comment: @JohnKennedy Ok, I see.
Comment: How does the broken one still have potential energy? Sorry if it really obvious.
Comment: Depends on what breaks to cause the problem. If it's battery powered, and the battery shorts, your electrical  PE is gone. If it's a spring that breaks, your mechanical PE is gone.


Is there an end to the game "The Void"?

Question: I've put far too many hours into The Void and have not seemingly gotten very far.  I've read a couple reviews where the reviewers admitted that they have not played the game all the way though.  Is there a real end to this game, and a return to life?
Comment: I'm sure this is something to do with the game but you're worried about "returning to life" then I would suggest you step away from the TV for a little bit lol
Answer: I personally couldn't get very far with this game without applying this difficulty patch, and a walkthrough. Rest assured that there is an end to it, though.
Answer: To add to the accepted answer: yes, there are a number of different endings in fact. While they are all rather similar, they involve different characters. The conditions for the different endings are as follows:

Survive until the end of Cycle 35 and do not save a Sister.
Reach Turgor and draw Breakthrough on a sister (there is a slightly different ending for each sister).
Reach Turgor and draw breakthrough on the Nameless Sister's tree and then on the Nameless Sister. This requires a lot of colour and is the most difficult ending.

Is there an end to the game "The Void"?


Create a playlist of URLs in VLC

Question: I have a list to links of flv files (not youtube or anything like that.) The problem is that you can't embed them, you need to use a flv player. Instead, I would like to open them all in VLC as a playlist, but as far as I can see, you can only open them using 'network stream' one by one. Ideally, I'd like to take the list and copy/paste them somehow into VLC. Is this possible?
Answer: Put links into a plain text file separated by newlines and save as *.m3u. Then open it with vlc.
Comment: This is so awesome! Thank you
Answer: There are multiple ways of doing this
Using the GUI

Hit CTRL+L to open up the playlist window in VLC.
Right click in the playlist window and choose Advanced Open...
Click on the Network tab, enter the URL, and hit Enqueue
Repeat this for each of the URLs

Using the command line
Use this syntax:
vlc <URL 1> <URL 2> <URL 3> ...

Using an external tool
You can create an XSPF playlist using an external tool like this one. Then, just open the playlist with VLC.
Answer: You can use this open source project to generate your playlist : https://github.com/sybaris/PlayListGenerator
Regards,
Sybaris
Comment: Link only answer is useless, especially when it will be broken.
Comment: Hello, welcome to Super User! Please just note if you want to promote or recommend your own product/blog, there are some [guidelines in place](https://superuser.com/help/promotion) for doing so. Following them will help you avoid giving the impression that you're spamming. Could you please [edit] to explicitly state your affiliation? Thanks. (If you're not actually affiliated, it may be worth mentioning that as well.)

Create a playlist of URLs in VLC


What are the benefits of chatrooms for asking questions?

Question: What are the benefits of using a chatroom instead of asking a question directly on a Stack Exchange site?
Answer:
Sometimes, a question can be too broad or too opinion-based for the Stack Exchange Q&A sites. A simple example would be "I'm a Java developer, how do I get started with Python?" I'm not familiar with the culture of the Python chatroom on Stack Overflow, but they might be willing to help.
If you have trouble phrasing your question correctly, or generating a MCVE reprex, users in a chatroom might be able to help you interactively, in a better way than comments and/or downvotes on a poor question do.

Please don't forget to actually ask the question on the site if you think it has value for future visitors, even if you got the answer in chat already. The Q&A site is way more accessible and searchable than chat.

You can ping certain knowledgeable people in chat, if you're specifically interested in what they think about your question. I would only do this if I knew that person well and that they're open to be invited like this. It's not something you should do as a new user, and it's something I'd do in addition to posting the question. In general, you want as much visibility to your question as you can get, and Q&A is much more visible than chat.

But chat is mostly used for other things than Q&A, e.g. coordinated moderation, (as a side channel) for live events, or just to chill.
Answer: Chat's primarily a social space. You get the most out of it simply by hanging out, observing, and getting to know people.
It's not always the best place for asking questions. Rooms have very varying amounts of patience for such things.
In a chat room where people are familiar with me, and vice versa, I know some folks are subject matter experts. More importantly, I sometimes use the room to rubber duck problems that I know will be well-received, and workshop things that could be questions.
In the right chat room, and the right crowd, you often end up being able to work through issues. (This specific one was spectacular, and started with me complaining on chat that updating was borked, and it so happened someone on chat went "OOOH, can I take a look?") Knowing I'd post a question helped too ;).
In the right room, you can troubleshoot, step through problems, and so on.
What doesn't really work is the old IRC pattern of asking, waiting, asking again....
What works is knowing the room and knowing when and how to ask.
So... it's terrible, until you work out how to.
Answer: In simple words and from a pragmatic and selfish point of view, asking a question in a chatroom saves the asker from getting a ban for asking bad questions. A question asked in a chatroom will never get closed. There are no ads in chatrooms.
The following might fall in the category that might or might not be a benefit based on the circumstances of the specific question and the asker's mindset.
In a chatroom, the participation rules are different than in the sites and per-child-metas. I.E. some sites don't allow emojis in questions, in a chatroom emojis might be allowed.
A question asked in a chatroom will never get up, and downvotes will never be converted in a community wiki, and will never be protected or locked. It will never get suggested edits. It will never appear in the Hot Network Questions. A meta-question asked in a chatroom will never be featured or appear as a Hot Meta Question in the Community Bulletin. A question asked in the chatroom will never appear in the Community Digest, and will never appear in the Global Search results. A question asked in a chatroom will never be included in the email notifications and the questions and tags in RSS feeds.
I think that Google doesn't index questions asked in a chatroom. I have never gotten a result pointing to any Stack Exchange chatroom platform instances (SO, SE, Meta SE).
The following adds a factor: chat with someone.
When the asker has someone to chat with, an interlocutor, there are chances to have a dialogue about the question. The question might get an answer in a chat message but might get other kinds of replies. Sometimes, the replies might lead to something equivalent to a site's high-quality answer, and sometimes not.
I believe that a chatroom could be used to help askers having problems writing a question according to the site rules to write the question.
I have seen people posting things on sites and per-child-metas stuff that are not "questions", according to the site and per-child-rules, like broad help requests. I also believe that a chatroom could help people looking for help with issues related to the site and per-child-meta topics that can't be handled as a question according to the site rules or due to the Q&A platform limitations. On sites about using software applications, a chatroom might be helpful to guide a user looking for help with an issue requiring combining heuristic and trial-and-error approaches, implying the possibility of having a lot of back and forth, sometimes referred to as troubleshooting.
Related
Featured

Where to ask for general advice for young programmers?

Other

Web-based IRC for the Trilogy?
How to ask a good question if you don't know the subject very well
Where can I ask questions that I don't know how to frame well enough for Stack Exchange?
General programming language questions in chat.stackoverflow?

Resources

Do Trilogy Sites Need a "Third Place"?
Third Place Chat Beta Preview


How to unfasten electrical subpanel attached with ramset

Question: I'm getting ready to frame out a wall in my basement that has an electrical subpanel.  I would like to move the panel out an inch or so, so I can frame around it and it will be flush with the finished wall.  There is plenty of room and extra cable above so that I shouldn't need to rewire anything.  My original plan was to remove cover, frame around it, turn off power, unscrew panel and slide it forward, reattach to studs, replace cover, turn power back on.  But, the builders attached it with a ramset directly to the concrete!  So, does anyone have any ideas on how to get that thing removed without having to disconnect all of the wiring to get a prybar in there?  There might be enough clearance to get a sawsall blade behind the box and cut the nails from there, but I wouldn't bet on it.  Any other ideas would be much appreciated.
Comment: Seems like a LOT of work for the sake of an essentially meaningless move? Leave the panel recessed an inch into the (new) wall face and save the bother...maybe picture-frame it with some cutesy mitered lumber to make a prettier hole, if that matters to you.
Comment: @Ecnerwal he can't leave the panel recessed, actually, unless leaves the wall unframed for the entire 110.26(A) bounding box, otherwise the *wall itself* infringes on the panel's clear working space.
Comment: It wouldn't have been a lot of work if there were screws.  But, things being what they are I'm going to put in a call to my inspector and see if he'll pass it with it being inset an inch.  Can't see any real reason that'd make a difference since the code is intended to make sure an electrician has ready access and that inch isn't going to cause any extra access issues being in a wall doesn't cause already.
Comment: Not sure which answer to mark as "correct", since I actually just went with Ecnerwal's comment.  I went so far as to get some good metal bits to dry to drill out those nails, but when I was getting ready to do it, I thought "just a little bit of walk and I'm slicing wires" so I just framed around like a window to be covered with a hinged panel. Inspector said that's OK, so that seemed path of least resistance.
Answer: Powder-actuated gun nails are extremely hard. You don't want to have to cut them with a saw, and you probably won't have room anyway.
Get yourself an angle grinder with an abrasive wheel. Bracing your hands well against the box, carefully grind away just the heads of the nails. You should then be able to pull the box off the nail shafts.
Obviously, take all necessary precautions when working around electrical current, and use eye and ear protection.
Caveat: Be sure that you have enough length available on your primary conductors to make the move you have planned. You may also be required to install conduit behind the box, where the wires are exposed.
Comment: A dremel with a cutoff wheel might be easier. Make sure to clean out all the metal filings prior to reenergising.
Comment: You'd go through a good many cutoff wheels to get through those fat heads unless there's a gap underneath to get at the shaft. Still, not a bad idea, especially where space is tight.
Comment: If the wheel prevents access, you could also use a grinding cone/plug.
Comment: Since I already have a Dremel handy, I may give that a go if my inspector isn't keen on having it inset by an inch.  If inspector's OK with it, I may just leave it where it is.
Answer: You could drill around it with a 3/8 hole saw with the pilot bit removed, even a 1/4" might work. Don't push too hard on the washer so it doesn't come free. If it does come free drill a hole in it off to the side and insert a nail to stop it from turning. Dremil is expensive if you don't already have one and could take a while. A grinder is a little cumbersome working in a panel. All will work just adding some options.
Comment: It would be *stupendously* hard to start.  Been there tried that.
Comment: I like this idea, but I wasn't aware that hole saws were made so small. The only ones I've seen are diamond-dust, intended for tile.
Comment: Most of the quality holesaw bit sets only go down to 3/4 because of the arbour. I've got some unknown brand junky ones that go smaller. But even a 3/4 bit would do the trick, it'll just be harder to start without a pilot bit.
Comment: Not if it fit fairly snugly over the nail head. A 1/2" bit might be just the ticket.
Answer: There seems to be some different ideas between pros about how to do this, according to the following link from 2013.
https://cr4.globalspec.com/thread/83252/Best-Method-to-Remove-Shot-Fire-Nail
If you ignore the sub-conversation about using these nails in the first place:
At least one person suggests grinding them down, but there's also someone that says it won't work.
One poster suggests using a small prybar to pop the heads off or "simply" pull the nails out.
Another poster suggests drilling out the heads, which was my first thought, but another person says that won't work. Evidently the nails are case hardened to be able to penetrate the concrete.
I'd think a grinder would be your best bet, but if it doesn't work, try the drill option, with some really sharp bits. Leave the prybar for last, as that can shoot nail or concrete at high velocity any/everywhere.
As always, be safe and use the appropriate personal protective equipment (PPE).
Oh, and good luck, too! It sounds like you're going to need it.


Are corperate publications a good resource?

Question: The use of corporate resources tends to come up from time to time, as such, where do they stand with regards their use as a source? Should they be accepted as a good reference, anecdotal resource, or on a case by case basis depending upon what is being discussed?
Answer: First off, I think it really depends upon the time of information that is being sourced, for example, for factual items such as the memory limits for Windows, I tend to trust the MSDN Library that is curated by Microsoft likewise, I would also trust technical whitepapers to generally reliable although depending upon the topic I would likely want to see a secondary reference to backup the claims.
However, that said, for references where the company appears to have an agenda towards what is being said (e.g. tobacco companies being the canonical example), I would be disinclined to trust the source that is put fourth as it could advance their claims.
In the interest of full disclosure I should start by admitting that I might be slightly biased against corporate resources, but then again, it wasn't too long ago that they told us that smoking is good for you it might not be entirely unwarranted.
Comment: +1 for smoking doctors picture.
Answer: I would rephrase your question:

What do we do with sources with a Conflict of Interest (CoI) with their claims?

We should:

Evaluate (explicity, in the answer) the claim versus the CoI: how strong is this conflict? Does this make the source rubbish or is it irrelevant? Would the claiming party benefit at all from a lie/misconception?
Is there any corroborating (or disproving!) evidence elsewhere? Is this the only source available? If it's the only source then it's possibly, but not automatically important to mention it in an answer.
Is the fact that companies make such statements relevant? E.g. Shell states that their oil is better than Exxon. This is a strong answer to "Is Shell claiming that their oil is better?", but not so strong to "Is Shell oil better than Exxon?" or "Is Exxon oil better than Shell?". It is, however, possibly interesting if Exxon hasn't challenged Shell on this - not as strong as we would like, ideally, but at times it's as good as it gets!
Are there any other answers with stronger references? Then avoid.

Most of all, the community (which is made of experts in evaluating factual evidence!) should vote and evaluate such answers on a case by case basis.


How do I figure what height I need for my egress window wall?

Question: I have an egress window. I would like to know why they sent me a 46'' tall well and a 48'' window? I need to know how to figure meausurements and why.
Comment: Most of the windows I have seen sit higher than the well frame.
I have never installed one, I would call the Mfg to see if they made a mistake.
Answer: The minimum height of the window is specified in code, and so is fairly standard.  And is not typically influenced by the well dimensions.
The bottom of the window must be within a specific height above the basement floor.  The well has to go from that depth, to at least finished grade level.  So that's what determines the size of the well, not the window.
The code also states that if a well is deeper than a certain depth, a ladder or stairs must be included (to get out of the hole).  So I would assume the manufacturer made the well less than that height purposefully, so as not to have to include a ladder.
Measure from the basement floor, to the maximum code specified height of the bottom of the window. Then from there, to grade level.  If the second measurement is greater than 46", you'll need a deeper well.
Comment: The well usually will sit a few inches or more below the window.  We usually go with 6" below the window then fill in some gravel.  Maximum height of bottom of egress opening is 44" from the floor.  If the well sits about 6" below the bottom of the window and 2" above grade, the floor should be no more than 82" (6'-10") below grade.  You can play with the numbers.  You need a ladder when the well is deeper than 44" from grade in the well to top of well.  That is fill in the well 2" or more with gravel and you do not need a ladder.
Answer: To calculate the necessary height of your area wall, consider the drainage situation and the grade level. Typically a wall will be inset somewhat into the drainage medium, and should extend above grade a few inches (at the highest point in the case of side-sloped grades).
As you can see, the height of the window itself is largely irrelevant.


Use of an OFL font in a logotype

Question: Can I use a font licensed under the SIL OFL in a logo, and should I add a copyright notice then?
Comment: Its not a font file once you outline it.
Answer: From the FAQ:

Question: 1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines?
Answer: Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type.

I'm not sure what you are asking about in regards to copyright. FYI, logos aren't usually copyrighted, but instead registered as trademarks.
Answer: In the US typefaces can't be copyrighted (only the font file itself). So I don't think you have to.
Comment: Please provide a reference to your claim.

Use of an OFL font in a logotype


How to output a multiple rows csv?

Question: Now I parse paragraph text in some txt file with the code below:
def ParseFile(path,filename):

    content=open(path+filename).read()
    code=filename.split('.')[0]

    pattenstart = ''
    pattenend = ''

    for catlog in CATLOG:

        i = content.index(pattenstart)
        j = content.index(pattenend)

        info=content[i:j]

        yield (catlog,code,info)
        sys.stdout.write('.')

and the info is a multi-line text
now I want to output a csv file like:
code    info
***     ****
        ****
        ****
***     ****
        ****
        ****

and I use  some script to test,but only can out put a file like:
code    info
***     ****
***********
**********

and my test script is :
time1=time.time()

subfix='_ALL.csv'
d = defaultdict(list)
for path in [PATH1,PATH2]:
    print 'Parsing',path
    filenames = os.listdir(path)
    for filename in filenames:
        print 'Parsing',filename
        for item in ParseFile(path,filename):
            d[item[0]].append((item[1],item[2]))
        print

for k in d.keys():
    out_file=open(DESTFILEPATH+k+subfix,'w')
    for code,info in sorted(set(d[k])):
        out_file.write(code+'\t'+info+\n')
    out_file.close()
print 'Done in %0.1f seconds'%(time.time()-time1)

how to fix it?
Answer: Python has the csv module, which will let you do what you want much more easily, I suggest you give it a look.
E.g:
import csv
with open('somefile.csv', 'w') as file:
    output = csv.writer(file, delimiter='\t')
    output.writerows([
        ['code', 'info'],
        ['****', '****'],
        [None, '****'],
        [None, '****'],
        [None, '****'],
        ['****', '****'],
        [None, '****']
    ])

Which produces:
code    info
****    ****
        ****
        ****
        ****
****    ****
        ****

Edit:
If your data isn't in a suitable format for this, then you simply need to change it to fit:
import csv
from itertools import izip_longest
from itertools import chain

data = [("key", ["value", "value"]), ("key", ["value", "value"])]

with open('somefile.csv', 'w') as file:
    output = csv.writer(file, dialect='excel-tab')
    output.writerows(
        chain.from_iterable(
            izip_longest([key], values) for key, values in data
        )
    )

Which produces:
key     value
        value
key     value
        value

Comment: I have already use the csv module,but I can't output the format what I want.
Comment: You say that, you are clearly not using the ``csv`` module to write your file in the code you gave.
Comment: I think that is not the effect I want ,I want to import the csv file to a database ,so the code and the info should be in a same row.
Comment: @sword from your code, it looks like you want TSV rather than CSV, but look at how the answer here is using the csv module (for that matter, the CSV module also has an alternate, tab-delimited default format, which can be selected as a whole rather than only overriding the delimiter as is done here).
Comment: emmm...,I paste the code not my test csv module code,but I really test csv moudle,but  output the wrong text,so I just paste the code can output the txt file.
Comment: @Charles Duffy,thanks,I have already search stackoverflow,yes,I found some topic,I try to use that method to solve my problem,but I think isn't  similar problem .
Comment: @sword You are not being very clear, but I have given an updated answer based on what I think you are asking.
Comment: Thanks Lattyware,yes,I can't describe my problem very clear,I think my problem is a  problem with dict,maybe your answer just update is right,let me test.:)
Comment: @sword If you give all of the information - like what the data structure you want to write as CSV is, it would make this easier.
Comment: thanks,Lattyware.but I am a fresh in python,and my english is not very good,I can't explain very clear to you.maybe I can paste all my script and those data I want write as vsv to you.:)
Comment: @sword Just give an example of your data structure. Get the data in the format you have it in your script, and add it in as an example.
Comment: @Lattyware but the data is chinese,are you sure you want to look that?
Comment: @sword I'm not talking about the data itself, but the format you have it in in your python script. Is it a dict like ``{key: [value, value, ...], key: [value, value, ...], ...}``? Is it a list like ``[key, value, value, ..., key, value, value, ...]``? Is it a list of ``key, value, value, ...`` tuples? I'm talking about *data structure*.

How to output a multiple rows csv?


My Samsung Galaxy S 2 indicates it is charging but doesn't

Question: My Samsung Galaxy S 2 indicates charging but is not adding charge to the battery. I have changed my charger many times but the problem continues. What's the solution?
Answer: There might be a problem with your micro-USB connector i.e the place where you connect the charger to the phone. Some times the pins present there bend out of place and so this can happen.
Take your phone for a repair.


suppress stderr messages in a bash script

Question: Consider the following (slightly silly) script name 'test1.sh':
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep

When I run it, I get not only the output of the echo, but bash's reporting of the death of sleep on stderr:
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5:  3551 Terminated              sleep 10

In this case, I'd like to suppress the printout to stderr.  I know I can do it on the command line, as in:
$ ./test1.sh 2> /dev/null

... but is there a way to suppress it from within the script?   (I know I could wrap it in a second script and have the wrapper redirect it, but there must be something easier...)
Comment: @rahul: yes I did -- pkill isn't generating the message, bash is.
Comment: did you try adding the redirect 2> /dev/null after the pkill sleep ?
Comment: I used kill instead of pkill and do not get the stderr. strange..
Comment: @rahul: could it be a built in vs non-built in thing?  Did you try it with pkill as well?
Comment: yes, i believe it is. I get the same error with pkill, but not with kill. While using kill, i used the pid instead of the proc name.
Answer: You're right; pkill isn't generating the message, bash is.
You suggest that
$ ./test1.sh 2> /dev/null

is a possible solution.
As UVV points out, the equivalent action from within the script is
exec 2> /dev/null

This redirects the stderr for the script to /dev/null
from this statement until it is changed back.
Clumsy ways of changing it back include
exec 2> /dev/tty

which redirects stderr to the terminal.
This is probably (but not necessarily) where it was originally.
Or
exec 2>&1

which sets stderr to be the same as stdout, and is likely to be wrong.
A more reliable way is
exec 3>&2
exec 2> /dev/null
(do stuff where you don't want to see the stderr.)
exec 2>&3
which saves the original stderr in file descriptor 3, and later restores it.
Other ways to suppress just the announcement of the process death include
(sleep 10 & pkill sleep) 2> /dev/null

and
{ sleep 10 & pkill sleep;} 2> /dev/null

which change the stderr for only the grouped commands.
Comment: FWIW, I favor Scott's grouped command approach, i.e. `{ sleep 10 & pkill sleep;} 2> /dev/null`
Comment: Are there any dangers associated with saving `stdin` and `stderr` to new file descriptors, sending the original descriptors to `/dev/null` and then restoring them?
Comment: Well, I suppose that, if you ran a program that (unbeknownst to you) wrote to file descriptor 3 (or 4), that operation would fail under normal circumstances.  But the program could be written to ignore the failure and carry on without reporting it; then you'd never know.  But if your file descriptor 1 (or 2) was "parked" on file descriptor 3 (or 4), then that program would suddenly be writing to your script's stdout or stderr.  But that's a very contrived example, and still minimal danger.   Did you have something in mind?
Comment: Running `exec 2> /dev/null` appears to also disable local echo in Bash 5.x (no prompt and no characters printed on screen when typing.)
Answer: According to this you could do something like following:
#!/bin/bash
exec 2>/dev/null
ls -al test