Why is Christopher Marlowe considered an atheist?

Question: My question is, that how could it be possible for Marlowe to deny the existence of God while at the same time, produce such a masterpiece like Dr. Faustus whose topics are God, Lucifer, angels, virtue and sin, Heaven and hell and most of all, the conclusion itself. If this is the work of Marlowe, then why is he called an atheist?
Comment: Do you think being an atheist prevents one from writing fiction that involves religion? Why would it? It is fiction after all.
Comment: Also, "write fiction for the sake of criticism, and one has to be an atheist for that," doesn't follow any more than your initial premise that to write *Dr. Faustus* requires theism. The faithful can (and, to my mind, *should*) explore, question, and critique their faith. The Bible is certainly full of characters critical of God—Abraham notably has an ethical debate with God *and wins*, that is, he convinces God that God's stated course of action would be immoral. There are, of course, ways to square that with an omniscient and benevolent God, but the process of doing so is still critical.
Comment: You use the present tense ("is" instead of "was") for your question. Can you cite any modern examples of scholars who claim that Marlowe was an atheist?
Comment: @Muru One can also write fiction for the sake of criticism, and one has to be an atheist for that. But my point is, that considering the play's evangelistic nature and the conclusion that it has, the intent of the writer is quite clear. If we do an auto biographical analysis of the play, then Marlowe doesn't stay an atheist anymore.
Comment: I thought his play _Tamburlaine the Great_ earned Marlowe that reputation for atheism. (It did provoke Robert Greene to comment upon that play with similar words.) Nevertheless, sometimes Marlowe was too smart for his own good.
Answer: TLDR:
1 - Marlow was not an atheist in the modern sense.
2- Dr Faustus is not as clearly religious as it first appears
Let's start by pointing out that "atheism" doesn't necessarily stop an author from writing about theism. Umberto Eco, for example, is a professed atheist yet is the author of The Name of the Rose, a novel set in a medieval monastery which examines many themes in religion and belief. There is no particular problem, therefore, in reconciling the religious elements in Dr. Faustus with having been written by an atheist.
That said, the question of Marlowe's atheism is not a straightforward one. Not least because the definition of "atheism" used in the Elizabethan era is not the same as the one used today.
Elizabeth's father, Henry VIII had founded the church of England and made himself the head of that church. Therefore, to be an atheist in England was literally equivalent to treason: in denying God, you are denying the monarch's divine right to rule. By Elizabeth's time, this was even more problematic because her succession to the throne was dependent on the legality of Henry's divorce from Katherine of Aragon, which he was only able to push through as the head of his own church. So, by the time of Marlowe, the term "atheist" had acquired a wider subtext equivalent to "anarchist" in modern usage.
For example, Marlowe is often counted among the "School of Night", a loose group of critical thinkers including Sir Walter Raleigh. These men were often referred to as atheists in their era but a modern examination of their writing and behaviour suggests they are more what we would today call religious dissenters or perhaps agnostics. People who doubted the literal truth of the Bible and its interpretation and practices as laid down by the Church of England not, necessarily, people who denied the existence of God outright.
Take Raleigh as an example. In his book "The History of the World" he wrote:

For the rest; I do also account it not the meanest, but an impiety
monstrous, to confound God and Nature; be it but in terms. ....  It is God that commandeth all: it is Nature that
is obedient to all: it is God that doth good unto all, knowing and
loving the good He doth: It is Nature, that secondarily doth also
good, but it neither knoweth nor loveth the good it doth.

In other words, God is good and lord over all nature. Does that sound like the writing of someone who rejects the existence of God? Raleigh was also known as an aider and supporter of puritan priests. Rather, Raleigh was someone who saw the value of rational thinking and was prepared to use that thinking to challenge the orthodox dogma of the church and - by extension - the state.
So, having established that "atheism" in the 16th century had a much wider meaning than it does today, let's return to Marlowe. Much of the evidence we have of his atheism rests on the charge of a single informer, Richard Baines. Baines was a spy, whose work was to ferret out Catholic sympathisers in protestant England. His continued employment was, to some extent, thus dependent on him finding such sympathisers. He is the only direct source we have for Marlowe's atheism which, in itself, seems a valid reason to question whether Marlowe was, in fact, an atheist.
If we presume that Baines was telling the truth, here are some of the things he claims Marlowe to have written:

Christ was a bastard and his mother dishonest
the woman of Samaria and her sister were whores and that Christ knew them dishonestly
St John the Evangelist was bedfellow to Christ and leaned always in his bosom ... that he used him as the sinners of Sodom

Looking at these statements in the light of how Elizabethans defined "atheism" it seems likely, then, that Marlowe was an "atheist" in the same way Raleigh was: someone who doubted the literal truth of scripture rather than doubted God outright. Nothing in these statements or any of the other 14 items Baines laid against Marlowe suggests an absolute rejection of God.
In fact, if we look at Dr. Faustus, it is arguable that the play itself is espousing this kind of "atheism", which rejects dogma but not Christianity as a whole. The ending of the play falls in with the dominant Christian concept of heaven and hell, suggesting a broad acceptance of scripture. But as for the details, take the following lines from the play:

Within this circle is Jehovah's name/ Forward and backward anagrammatized;/ The abbreviated names of holy saints.
How! Bell, book, and candle, book and bell, / Anon you shall hear a hog grunt, a calf bleat, and an ass bray, / Because it is St. Peter's holy day

In both these cases, Faustus can be seen as critiquing organised religion. In the first instance, he is subverting the value placed on the holy name of Jehovah. In the second he is comparing the liturgies of religious rituals with animal noises.
Later in the play, the Pope's men urge God to curse Faustus for his behaviour, chanting in Latin. But nothing happens. This pokes fun at the idea that God can be invoked through religious ritual. It can also, of course, be read as suggesting that God does not exist. By the end of the play, all we can be certain of, in a religious sense, is that the devil exists. In which case we could argue that the play is, in fact, wholly atheist: rejecting God and using Satan merely as a plot device.
References:
Boas, Frederick Samuel (1940). Christopher Marlowe: a biographical and critical study. Oxford: Clarendon Press.
Kocher, Paul H. (1940). Marlowe's Atheist Lecture. The Journal of English and Germanic Philology.
Webb, Susanne S (1969). Raleigh, Hariot, and Atheism in Elizabethan and Early Stuart England. Albion: A Quarterly Journal Concerned with British Studies.
Comment: My take on that is slightly different and a tad dialectic too. The tragedy of Dr. Faustus is undeniably an auto biography since the character of Dr. Faustus is arguably the most adjacent to Marlow's own personality. a bulk of Faustus' attributes are the reflection of the traits Marlow himself possessed . Moreover, the beginning of the play has a direct link with the early days of Marlow's life.


What would the geological effects of erosion due to extreme megafauna be like on large timescales?

Question: Whenever I see fictional biospheres with massive or otherwise extreme megafauna capable of significant short-term erosion (such as toppling large rock formations, leveling mountains, digging huge burrows, things that would otherwise take "natural" geological processes hundreds, thousands, or even millions of years to accomplish) I always wonder what the actual long-term effects something like that would have on an environment. If you had a biosphere on Earth or an Earth-like planet containing huge, possibly kaiju-sized animals that regularly level or otherwise alter geological formations that take geological time scales to form in the first place, what would that planet look like after hundreds, thousands, or millions of years? Would they simply level everything into a flat, evenly eroded plain? How would that affect the biosphere in turn?
Comment: Hello and welcome! I can't answer your question but I do know that these things can be notoriously hard to predict. See this for example: https://www.scientificamerican.com/article/salmon-spawning-may-move-mountains/. When even relatively small aquatic animals can have such an outsize effect on the overall landscape, any effect you come up with will probably be plausible enough for most readers.
Answer: Fauna and megafauna tend to live within the landscape. For serious erosion, look to rain. The steep slopes on the north side of the Hawaiian Islands are due to rain. Ice in the form of glaciers carve canyons. Rain cuts everything down to size. Floods do outsized erosion as the flood water move a lot of grit. In essence, floods can be like sandpaper on a huge scale. (See the scablands of eastern Washington state to see what repeated floods can do to an area.)
Fauna make paths, eat vegetation so that the rain can erode faster, build piles of calcium from their shells and bones (future limestone), but don't have impact much more than their bodies. Once the vegetation is eaten, they move on and don't come back till the plants grow back.
Answer: Hard to predict.
Weak set of observations
How many results are the cause of species activities over geologic time? This is unknown and hard to know.
The primary action, is often is not recorded in geological record. Only the secondary and beyond affects are preserved. Teasing out causation vs correlation is difficult in present day events, never mind with only sketchy snapshots provided in the geologic record.
Some known erosion alterations by flora/fauna:

Great oxidation event that is believed to be leading cause of snowball earth.
Appearance of animals that could burrow into sea sediments below the microbial mats forever changed how sediments were preserved.
Beavers are known to have significant impact on environments where they live, slowing water flow rates  which would tend to decrease erosion rates.

Megafauna
For megafauna on land, they only can exist in areas with large amounts of flora to support large fauna biomass. That is, places that tend have mega fauna are going to be places with lots of erosion resisting flora.
So activities that change the flora will be the ones that  have highest odds of causing changes to erosion patterns.
But lack of data will make it hard to find which is cause which is correlation. Such as in South America there were large burrows excavated by mega-fauna how much did these effect erosion? I don't believe that has been considered. So how much erosion did or did not happen is not known.
Kaiju sized
Implies ocean based and unable to live on land. For Kaiju to be on land implies magic.
Magic combined with lack of knowledge of erosion caused by fauna means unknowns compounding on unknowns.
Answer: My Answer:
Much the same as it does now. Why?
Toppling rock formations and pushing over trees is one thing, but actually levelling even a small hill is a major engineering feat that requires a lot of time, effort and energy.
You might get some distortion in the ground like natural trails forming, but otherwise the general landscape would be much the same.
The second reason is 'what's the point'? Why would a megafauna creature knock something over? Most of the time there's no need for them - they would just move around or over it.
This notion that it's going to be like Godzilla levelling Tokyo just doesn't make any sense - you might have specific instances like during hunting or during a mating season where fights and/or mating displays might result in a bit of damage to the landscape - but otherwise - they would just go about their business.


Why are my Lightroom-exported images very small, like 300-400 KB?

Question: My RAW files are 25 MB, but when I process them in Lightroom and export them, they become only 300-400 KB, which is not acceptable by shutter stock and other image selling platforms.
Comment: Something is wrong with your export settings. Please, put a screen capture of them.
Comment: I wouldn't call 300-400KB small... and why do you think because it's no longer 25MB it's bad.. I would highly doubt image selling platforms have a min file size validation...
Comment: Did you crop the image?
Comment: 1600x2400 is only 3.8 megapixels. The original raw is probably 24MP. Don't resize the output.
Answer:
Why image's are very small like 300-400kb after export from Lightroom?

Judging by your screenshot, it's because you're resizing them and exporting them as a JPEG file. Those 25MB files you have are probably RAW files straight from the camera.
Comment: @AtulAgarawal What's the problem? Do you want to export to a format that doesn't use lossy compression? Choose a format like PNG. Do you want to keep the full resolution of the image? Uncheck *Resize to fit*. The fact that your files are smaller when you export them isn't a problem in itself; if you're unhappy with the exported files for some reason, then look to change that aspect of the files when you export them.
Comment: That's all I know, what's the solution.
Answer: You have the Resize to Fit option checked in the Image Sizing section. This is going to resize the image, making it smaller. If your RAW file is 25MB, it must be about 20mp, or approximately 5790px in width, and you have the limit of 2400px set.
If you're exporting for stock photo, I'm guessing you want full size, so just uncheck the Resize to Fit option.
Comment: This is the better answer. Too bad the other is selected.


For magento 2.3.4, what is the best option to adopt PayPal Payments Pro (or) PayPal Payments Advanced

Question: For my US customer which is the best option to adopt? PayPal Payments Pro or PayPal Payments Advanced?
Answer: Here is a good comparison of the two: https://jilt.com/blog/paypal-comparison-which-paypal-service/
In terms of PCI, with PayPal Advanced, the customer is actually inputting their card details on a PayPal hosted page embedded in your site, so it lessens your PCI requirements.
If you look at the pricing at: https://www.paypal.com/webapps/mpp/paypal-payments-advanced
you'll see the bigest difference is with Pro, you get a virtual terminal to run card numbers manually, whereas with Advanced, you do not. Advanced is not a full featured gateway service like Pro. If you don't need a virtual terminal, Advanced is the way to go for simpler PCI requirements.


Can I transfer profile created on 32-bit FireFox to 64-bit FireFox?

Question: I used to use 32-bit Windows, so I currently use 32-bit FireFox.
Can the profile be transferred to the 64-bit version?
Answer: Since Firefox places the profile information in your user profile, this is entirely independent of bit-ness. So your profile should work just fine.
Answer: to easily backup/restore FF profiles you could use MozBackup...
http://www.mozbackup.org/


Algorithms for SMS spam detection

Question: Which among KNN, Logistic and Naive Bayes would yield best results for SMS spam
detection? Is there any other efficient approach worth exploring.
I am planning to make a python application for SMS spam detection.
Any suggestions or resources would be great.
Answer: It totally depends on what sort of feature engineering you use. Except for the case of KNN which is useless. Naive Bayes will work well with Bag of Words and TF-IDF while Logistic regression will perform well on all including Word2Vec.
Comment: Could you give me some insight into feature engineering. Any resources. What it seems to me is that you have to decide the features of an SMS. I am not sure if there are any existing data sets like that. Also I am unable to think of any good features apart from the SMS itself or SMS containing a specific word
Comment: are there any existing libraries or github repo which does SMS spam detection?
Comment: Although you are new but try to get your head around this - https://huggingface.co/transformers/custom_datasets.html. This is almost State of the Art for Sequence Classification. OR just google it, look on youtube. you will find tons of tutorails. Upvote if it helped.

Algorithms for SMS spam detection


Magento2.4: Is it Okay to upgrade magento from 2.4.3 to 2.4.4 in ubuntu 22.04?

Question: I want to upgrade Magento from 2.4.3 to 2.4.4 and also want to upgrade ubuntu from 20 to 22.04, should I update or not, people are getting some issues on upgrade, is there any idea how to solve those basic issues which occur in the upgrade.
Answer: Yes, if you are good at fixing bugs and resolving issues during upgrades, you should update and also have a backup of your projects in case they cause any issues.
So far I only encounter a rtrim() error which was due to a missing PHP library,
other than that no issues
There are no bugs that can't be fixed and no issues which can't be resolved.

sudo php bin/magento php7.4-mcrypt
Answer: Yes, you can update both easily.
For magento , there are no major issue after 2.4.3 to 2.4.4, and no need to rtrim() error for php , you can easily add library from php official site.
https://github.com/magento/magento2/search?q=MAGNETO+2.4.4&type=issues
For storage increase memory_limit in php and give space for magento in storage.


If using a double weapon do you get multiple attacks?

Question: If you don't have multiple attacks from your BAB but you have a double weapon like a quarterstaff, do you get multiple attacks if you take a full-round action or do you still need the bonus from the BAB for that to be valid?
Answer: Yes, a creature that wields a double weapon and that takes the full attack action can make 1 extra attack
Even if a creature lacks the feat Two-weapon Fighting and the creature's base attack bonus is less than +6, when wielding a double weapon and taking the full attack action the creature can make 1 additional attack. That's because according to the Combat Section on Double Weapons...

You can use a double weapon to make an extra attack with the off-hand end of the weapon as if you were fighting with two weapons. The penalties apply as if the off-hand end of the weapon was a light weapons. [sic]

But without the feat Two-weapon Fighting or similar ability the standard penalties for two-weapon fighting apply: a −4 penalty on the attack roll with the first attack with either head of the double weapon, and a −8 penalty on the attack roll for the second attack with the other head of the double weapon.
So while a creature untrained in the art of two-weapon fighting could make that extra attack, it probably shouldn't unless circumstances are really stacked in its favor.
Comment: Anonymous User: Absent the feat Two-weapon Fighting, the penalty for fighting with two weapons (when the off-hand weapon's a light weapon) *or* for fighting with a double weapon (while using it as a double weapon) is, in fact and for-reals, −4 for the first attack and −8 for the second. However, if the wielder possesses the feat Two-weapon Fighting, the −4 and the −8 penalties are reduced to −2 each. Again, it says exactly that on the linked table. (Also, editing an answer to dispute it is really bad form.)


launchd disk writes

Question: Using activity monitor, I've noticed that launchd with pid 1 is using a lot of disk writes: after about 8 hours of light use, it's done ~2GB bytes written. Is it normal behavior? If not, how shall I troubleshoot this issue? I'm on the latest version if Yosemite, MacBook Pro 13" retina. Thanks!
Answer: Don't fix things which ain't broken. As long as you don't experience performance or stability issues, you usually don't need to worry about particular processes.
My Mac hasn't been rebooted since two weeks, launchd has written 46 GB so far.
Comment: @egwenesedai define your SSD lifespan and define much :)
Comment: Thanks! On a side note, will this affect ssd write lifespan much?
Comment: @bmike I was thinking about ~5 years but realized you might be sarcastic :-) no need to worry on a modern ssd right?
Comment: @egwenesedai I was totally serious. I love data / SSD wear patterns, ways to manage replacement risk, etc... Start a new thread if you have a question on this :-) http://apple.stackexchange.com/questions/13884/, http://apple.stackexchange.com/questions/71750/ and http://apple.stackexchange.com/questions/18328/ could use some new answers if you have a new question

launchd disk writes


C# Encrypt Text Output

Question: I have created a few little programs that export data to a text file using StreamWriter and then I read them back in using StreamReader. This works great and does what I need it to do but I was wondering if there was a way that I could save this information without the user being able to access or modify it either intentionally or unintentionally. An example of something I would have in a text file would be if a checkbox was ticked, when you tick it it outputs "Ticked" to a text file, when the program is re - opened I know what state the form was in when it was closed. I obviously don't want to keep using text files. Does anyone have any ideas on how I can easily store this information without the user being able to modify it? Thank you very much.
Answer: The simplest way is to Base-64 encode/decode this text. This is not secure, but will prevent a casual user from modifying the data.
static public string EncodeTo64(string toEncode)
{
  byte[] toEncodeAsBytes
        = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
  string returnValue
        = System.Convert.ToBase64String(toEncodeAsBytes);
  return returnValue;
}

static public string DecodeFrom64(string encodedData)
{
  byte[] encodedDataAsBytes
      = System.Convert.FromBase64String(encodedData);
  string returnValue =
     System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
  return returnValue;
}

EDIT: Real encryption
#region Encryption

        string passPhrase = "Pasword";        // can be any string
        string saltValue = "sALtValue";        // can be any string
        string hashAlgorithm = "SHA1";             // can be "MD5"
        int passwordIterations = 7;                  // can be any number
        string initVector = "~1B2c3D4e5F6g7H8"; // must be 16 bytes
        int keySize = 256;                // can be 192 or 128

        private string Encrypt(string data)
        {
            byte[] bytes = Encoding.ASCII.GetBytes(this.initVector);
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.saltValue);
            byte[] buffer = Encoding.UTF8.GetBytes(data);
            byte[] rgbKey = new PasswordDeriveBytes(this.passPhrase, rgbSalt, this.hashAlgorithm, this.passwordIterations).GetBytes(this.keySize / 8);
            RijndaelManaged managed = new RijndaelManaged();
            managed.Mode = CipherMode.CBC;
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);
            MemoryStream stream = new MemoryStream();
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);
            stream2.Write(buffer, 0, buffer.Length);
            stream2.FlushFinalBlock();
            byte[] inArray = stream.ToArray();
            stream.Close();
            stream2.Close();
            return Convert.ToBase64String(inArray);
        }

        private string Decrypt(string data)
        {
            byte[] bytes = Encoding.ASCII.GetBytes(this.initVector);
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.saltValue);
            byte[] buffer = Convert.FromBase64String(data);
            byte[] rgbKey = new PasswordDeriveBytes(this.passPhrase, rgbSalt, this.hashAlgorithm, this.passwordIterations).GetBytes(this.keySize / 8);
            RijndaelManaged managed = new RijndaelManaged();
            managed.Mode = CipherMode.CBC;
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);
            MemoryStream stream = new MemoryStream(buffer);
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);
            byte[] buffer5 = new byte[buffer.Length];
            int count = stream2.Read(buffer5, 0, buffer5.Length);
            stream.Close();
            stream2.Close();
            return Encoding.UTF8.GetString(buffer5, 0, count);
        }
        #endregion

Comment: Thanks. I will use the Base-64 encode/decode for this as it sounds as though it will achieve what I need to do. Could I read a file with this - static public string DecodeFrom64(string pathoffile) using the path of the file as the argument rather than a variable? I am used to using StreamReader so wondered if this would apply?
Comment: Also if I were to use the above mentioned method where would I specify the location of the file and what extension would I use?
Comment: You can modify the methods to read from a file. The actual methods which do the encoding/decoding for base64 work on array of bytes. Those are just sample code on how to do it from a string.
In general, I keep "helper" methods like these in its own Utility class which then can be called from anywhere in the program.

You can use this:
System.IO.StreamReader myFile = new System.IO.StreamReader("c:\\test.txt");
string myString = myFile.ReadToEnd();
and
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt");
file.WriteLine(lines);
file.Close();
Comment: Bali, as @Leon mentioned, base-64 encoding isn't secure. If you use one of the methods mentioned in this post, use the encryption one.
Comment: I know this is old, but your Encrypt() method keeps popping up an error for me on `byte[] rgbKey` saying that the "**object reference is not set to an instance of an object**".
Comment: I downvoted because using a Base64 string will almost double the file size. This answer is not a proper solution.
Answer: You should call ProtectedData.Protect to encrypt the data using a per-user key.
Note that it wouldn't be very hard for a skilled user to decrypt and modify the data.
Anything that your program does on the user's machine can be done by the user too.
Answer: You can add a checksum or hash to the file - if the file contents doesn't agree with the checksum, you know it was tampered with.
If it is important that users can't read the contents of the file, you can encrypt it.
I don't believe you can make a file that can't be tampered with (a savvy user could use a hex editor and change it, for example) - the best you can do is detect such tampering.
Comment: You can't even detect such tampering.  The user can add the same checksum.
Comment: Thanks for the suggetions, my priority is that the data isn't stored in plain text, like when you open a DLL or EXE in notepad, it is all scrambled and un readable (I know this is because of the way it is complied but you get what I mean - just so the user isn't tempted to break anything just because they can read it) thanks.
Comment: If I encrypted the text would it not show in plain text or not be accessible? I take it the app would still be able to read this though? Do you have some sample code to show me how to encrypt something? Thanks very much
Comment: @Bali C - encrypting means that it can't be read without being decrypted first. I suggest you look through the MSDN pages for the [System.Security.Cryptography](http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx) namespace. The topic is large and any "simple" example will be misleading.
Answer: You can use the Ionic zip libraries to zip those text files. If necessary you could also use features of Ionic zip like password protection and encryption. And you'll still be able to open the file (with zipping applications like, for example, 7zip) manually yourself using the same settings you used to create it in the first place.
Comment: Because the user can still open it with any ZIP program.
Comment: not if there's a decent password on it, and choosing a non-zip extension for the file prevents quite some average users from trying
Comment: True, although the user can decompile the program and find the password.
Comment: but that's an altogether different issue.. that depends on how well you protect the password within your own application, or wherever it is stored
Comment: anyway, if a user starts decompiling a program to look for passwords it is probably a somewhat expert user. the question wasn't specific on the level of required protection nor on the expert level of the users so it may not even be necessary to take this kind of protection into account.
Answer: If a program can access the information, a user usually can too. However you can produce data the user will not immediately understand.
I would start by creating a class that holds all state information you want to save, isolating the problem. Coincidentally, the BinaryFormatter class will then allow you to easily save and load this class to/from a file. I don't know if it's results are "unreadable enough" - if not, apply Base64 encoding like Leon mentioned.
Answer: While you could base64 encode or even fully encrypt your configuration data (with SHA1 or MD5) as already suggested, I think good practice would be to work with the framework classes dealing with configuration data (Configuration under the System.Configuration namespace) and it's built in ability to encrypt data (via the ProtectSection method of the ConfigurationSection class).
First of all you should declare and initialize an instance:
using System.Configuration;
...
static void Main(string[] args)
    {
        Configuration config;

        config = ConfigurationManager.OpenExeConfiguration(/*path to config file*/); //Use ConfigurationManager.OpenMachineConfiguration(/*path to config file*/) when opening machine configuration
...

After that you need to define a custom configuration section that defines your configuration (msdn example)
Once you've done that you just need to initialize an instance of your custom configuration section and add it to the configuration file using this code:
isTicked = config.Sections.Add("isTicked", customSection);

To encrypt the section you just added use this code (with further examples in both VB.NET and C# found here):
config.Sections["isTicked"].SectionInformation.ProtectSection("protection provider");

The "DPAPIProtectedConfigurationProvider" and "RSAProtectedConfigurationProvider" are built in by default.
Once you want to decrypt the section use this code:
config.Sections["isTicked"].SectionInformation.UnprotectSection();

To stress a point - encryption and decryption both take effect only after you save the configuration file
To save the file, use the code:
config.Save(); //config.SaveAs("string") is also available

Further information about the relevant classes and methods can be found in the msdn, starting with the Configuration class page linked above.
Answer: Try this code to encrypt and decrypt your text!
It is quite easy and strong I think...
public static class Crypto
{
    private static readonly byte[] IVa = new byte[] { 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x11, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 };

    public static string Encrypt(this string text, string salt)
    {
        try
        {
            using (Aes aes = new AesManaged())
            {
                Rfc2898DeriveBytes deriveBytes = new Rfc2898DeriveBytes(Encoding.UTF8.GetString(IVa, 0, IVa.Length), Encoding.UTF8.GetBytes(salt));
                aes.Key = deriveBytes.GetBytes(128 / 8);
                aes.IV = aes.Key;
                using (MemoryStream encryptionStream = new MemoryStream())
                {
                    using (CryptoStream encrypt = new CryptoStream(encryptionStream, aes.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        byte[] cleanText = Encoding.UTF8.GetBytes(text);
                        System.Diagnostics.Debug.WriteLine(String.Concat("Before encryption text data size: ", text.Length.ToString()));
                        System.Diagnostics.Debug.WriteLine(String.Concat("Before encryption byte data size: ", cleanText.Length.ToString()));
                        encrypt.Write(cleanText, 0, cleanText.Length);
                        encrypt.FlushFinalBlock();
                    }

                    byte[] encryptedData = encryptionStream.ToArray();
                    string encryptedText = Convert.ToBase64String(encryptedData);

                    System.Diagnostics.Debug.WriteLine(String.Concat("Encrypted text data size: ", encryptedText.Length.ToString()));
                    System.Diagnostics.Debug.WriteLine(String.Concat("Encrypted byte data size: ", encryptedData.Length.ToString()));

                    return encryptedText;
                }
            }
        }
        catch(Exception e)
        {
            return String.Empty;
        }
    }

    public static string Decrypt(this string text, string salt)
    {
        try
        {
            using (Aes aes = new AesManaged())
            {
                Rfc2898DeriveBytes deriveBytes = new Rfc2898DeriveBytes(Encoding.UTF8.GetString(IVa, 0, IVa.Length), Encoding.UTF8.GetBytes(salt));
                aes.Key = deriveBytes.GetBytes(128 / 8);
                aes.IV = aes.Key;

                using (MemoryStream decryptionStream = new MemoryStream())
                {
                    using (CryptoStream decrypt = new CryptoStream(decryptionStream, aes.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        byte[] encryptedData = Convert.FromBase64String(text);

                        System.Diagnostics.Debug.WriteLine(String.Concat("Encrypted text data size: ", text.Length.ToString()));
                        System.Diagnostics.Debug.WriteLine(String.Concat("Encrypted byte data size: ", encryptedData.Length.ToString()));

                        decrypt.Write(encryptedData, 0, encryptedData.Length);
                        decrypt.Flush();
                    }

                    byte[] decryptedData = decryptionStream.ToArray();
                    string decryptedText = Encoding.UTF8.GetString(decryptedData, 0, decryptedData.Length);

                    System.Diagnostics.Debug.WriteLine(String.Concat("After decryption text data size: ", decryptedText.Length.ToString()));
                    System.Diagnostics.Debug.WriteLine(String.Concat("After decryption byte data size: ", decryptedData.Length.ToString()));

                    return decryptedText;
                }
            }
        }
        catch(Exception e)
        {
            return String.Empty;
        }
    }
}

Comment: good code, sad one needs to hard code the IVa as this would make it reversible, decompile the code and the key is there.
Answer: Just to add another implementation of Leon's answer, and following the
Microsoft docs
Here a class example that encrypts and decrypts strings
    public static class EncryptionExample
{

    #region internal consts

    internal const string passPhrase = "pass";
    internal const string saltValue = "salt";
    internal const string hashAlgorithm = "MD5";
    internal const int passwordIterations = 3;             // can be any number
    internal const string initVector = "0123456789abcdf"; // must be 16 bytes
    internal const int keySize = 64;                      // can be 192 or 256

    #endregion

    #region public static Methods

    public static string Encrypt(string data)
    {
        string res = string.Empty;
        try
        {
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);
            byte[] rgbSalt = Encoding.ASCII.GetBytes(saltValue);
            byte[] buffer = Encoding.UTF8.GetBytes(data);
            byte[] rgbKey = new PasswordDeriveBytes(passPhrase, rgbSalt, hashAlgorithm, passwordIterations).GetBytes(keySize / 8);
            RijndaelManaged managed = new RijndaelManaged();
            managed.Mode = CipherMode.CBC;
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);

            byte[] inArray = null;
            using (MemoryStream msEncrypt = new MemoryStream())
            {
                using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, transform, CryptoStreamMode.Write))
                {
                    csEncrypt.Write(buffer, 0, buffer.Length);
                    csEncrypt.FlushFinalBlock();
                    inArray = msEncrypt.ToArray();
                    res = Convert.ToBase64String(inArray);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Encrypt " + ex);
        }

        return res;
    }

    public static string Decrypt(string data)
    {
        string res = string.Empty;
        try
        {
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);
            byte[] rgbSalt = Encoding.ASCII.GetBytes(saltValue);
            byte[] buffer = Convert.FromBase64String(data);
            byte[] rgbKey = new PasswordDeriveBytes(passPhrase, rgbSalt, hashAlgorithm, passwordIterations).GetBytes(keySize / 8);
            RijndaelManaged managed = new RijndaelManaged();
            managed.Mode = CipherMode.CBC;
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);

            using (MemoryStream msEncrypt = new MemoryStream(buffer))
            {
                using (CryptoStream csDecrypt = new CryptoStream(msEncrypt, transform, CryptoStreamMode.Read))
                {
                    using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                    {
                        res = srDecrypt.ReadToEnd();
                    }
                }
            }
        }
        catch (Exception ex)
        {
           Console.WriteLine("Decrypt " + ex);
        }

        return res;
    }
}

By the way, here is the "salt value" definition that I had googled to find out what it was.
Salt value
If an attacker does not know the password, and is trying to guess it with a brute-force attack, then every password he tries has to be tried with each salt value. So, for a one-bit salt (0 or 1), this makes the encryption twice as hard to break in this way.
Answer: Preventing unintentional string modification can be done using a checksum, as pointed in this answer.
However, it's quite easy to generate such a checksum, as they are not that many widely used algorithms.
Thus that doesn't protect you against intentional modification.
To prevent that, people use digital signatures. That allows anyone to verify your data hasn't be tampered, but only you (the owner of the private secret) can generate the signature.
Here is an example in C#.
However, as others pointed out, you need to embed your private key somewhere in your binary, and a (not so) skilled programmer will be able to retrieve it, even if you obfuscate your .net dll or you make that in a separate native process.
That would be enough for most concerns though.
If you are really concerned by security, then you need to move on the cloud, and execute the code on a machine you own.

C# Encrypt Text Output


Why do we need JavaFX though we have Swing?

Question: Swing is good in many ways, then why do we need JavaFX?
Comment: The same reason why we have silverlight even though there is Flash!!

Both are there. What can we do?

This is not a programmming related question until you rephrase it to something like "what are the differences between....."
Comment: Except that Silverlight and Flash don't come from the same company, whereas JavaFX and Swing do come from the same!
Answer: There is both a technology part of JavaFX that will help design UIs, and a language part that will make writing UIs easier.
The JavaFX technology brings a 2d scenegraph and video capabilities. Afaik these will also be made available generally to java. They are good advancements for creating client side application with fancy and interactive graphical UIs. The 2d scenegraph should make it possible to create more graphic heavy applications that are still responsive.
The JavaFX language is a much better way off creating UIs programatically. Java Swing code can get very verbose, while the same JavaFX code will be smaller and easier to maintain. Closure support makes creating event handlers easier. Declerative assignment of settings makes configuration of elements easier. Native list syntax makes adding components easier.
Please note that I haven't really written any JavaFX, but I have read code and paid attention to what's going on. I recommend trying it yourself to find out what's cooking.
Comment: I am not sure that "fancy GUIs" is what business enterprises need. In my company we develop enterprise apps (in various technologies, Java/Swing is one of them) and I don't see how we would develop equvalent apps with JavaFX.
Comment: "Swing code can get very terse": I don't think "terse" is the word you want there--just the opposite, in fact. Verbose, maybe? Or bloated?
Comment: Verbose was what I meant. English is my 2nd language, I am permitted to have some tismakes :)
Answer: I think Staale's answer is a good start but I would add...
Use JavaFX if
1) If you're interested in developing the application for mobile or TV (note this has yet to be released)
2) If you're working with a graphic designer who is creating the appearance of the application in photoshop and you want to be able to import their look directly.
3) If making the GUI filthy rich is important to you.  (so if you want a panel to fade in or out, or slide upon demand)
Use Swing if
1) You're creating an application mainly for the desktop.
2) Performance matters and you know what you are doing (so if you're writing an IDE, Swing would be a better choice)
3) You're looking for a RPC (rich client platform) to build upon.
Answer: It is the same reason why we have Java, C++, C#, Python, Perl, Ruby...  although we already have C.


How do I start a cold gas heater?

Question: The gas heater pilot light has been out for a couple of days, and I believe there is a safety mechanism that detects this, and shuts off the gas. Now, when I move the slider to the pilot light position and press the valve button, I don't hear any gas coming out. Is there anything I need to do to
Answer: You may not be able to hear the gas for the pilot light, it doesn't take much. Get a long match or lighter that can reach the pilot light and try to ignite it while holding down the valve button. That button overrides the thermocouple that will automatically shutoff the gas when it cools down. You need to hold the button long enough to heat the thermocouple back up while the flame is burning (30-60 seconds is usually good). Once the flame stays lit without holding the button, you can close the water heater back up and adjust the tank thermostat back to your normal temperature.
Comment: Isn't it depressing when you hire someone to fix a problem like this, and their solution is to blow on it? Thanks for the follow up @alekop.
Comment: Thanks, I tried that. I held the button down for up to two minutes, while holding a lighter right up against the nozzle. The pilot never lit up. Checked the gas shutoff lever, it's in the open position. The fact that the pilot light went out in the first place makes me suspect there may be something wrong with the thermal coupling. I've seen gas technicians test the thermal coupling using a volt meter. I'll do some research, and try that next.
Comment: @alekop Something is broken, but I'm guessing that it isn't the thermocouple in this case. If that was faulty, the pilot light would light but go out when you released the button. You may have a blockage in the gas line or maybe a flue temperature sensor has gone bad.
Comment: Yup, you were right! It was a blocked nozzle. The gas technician removed the pilot light nozzle, and when he pressed the button gas started flowing. He cleared it out by blowing on it, put it back, and that fixed it.

How do I start a cold gas heater?


ROS2 colcon build fails with ModuleNotFoundError for Python dependency in virtual environment

Question: When trying to build my ROS2 project, I get a ModuleNotFoundError when compiling one of the C modules, due to a missing dependency called em:
% colcon build --cmake-clean-cache
Starting >>> r1_messages
--- stderr: r1_messages
CMake Error at /Users/mryall/src/mawson/ros2-iron-build/install/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:57 (message):

  execute_process(/opt/homebrew/Frameworks/Python.framework/Versions/3.12/bin/python3.12
  -m rosidl_adapter --package-name r1_messages --arguments-file
  /Users/mryall/src/mawson/r1-ros/build/r1_messages/rosidl_adapter__arguments__r1_messages.json
  --output-dir
  /Users/mryall/src/mawson/r1-ros/build/r1_messages/rosidl_adapter/r1_messages
  --output-file
  /Users/mryall/src/mawson/r1-ros/build/r1_messages/rosidl_adapter/r1_messages.idls)
  returned error code 1:

  Traceback (most recent call last):

    File "<frozen runpy>", line 198, in _run_module_as_main
    File "<frozen runpy>", line 88, in _run_code
    File "/Users/mryall/src/mawson/ros2-iron-build/install/lib/python3.11/site-packages/rosidl_adapter/__main__.py", line 19, in <module>
      sys.exit(main())
               ^^^^^^
    File "/Users/mryall/src/mawson/ros2-iron-build/install/lib/python3.11/site-packages/rosidl_adapter/main.py", line 53, in main
      abs_idl_file = convert_to_idl(
                     ^^^^^^^^^^^^^^^
    File "/Users/mryall/src/mawson/ros2-iron-build/install/lib/python3.11/site-packages/rosidl_adapter/__init__.py", line 18, in convert_to_idl
      from rosidl_adapter.msg import convert_msg_to_idl
    File "/Users/mryall/src/mawson/ros2-iron-build/install/lib/python3.11/site-packages/rosidl_adapter/msg/__init__.py", line 16, in <module>
      from rosidl_adapter.resource import expand_template
    File "/Users/mryall/src/mawson/ros2-iron-build/install/lib/python3.11/site-packages/rosidl_adapter/resource/__init__.py", line 19, in <module>
      import em

  ModuleNotFoundError: No module named 'em'

Call Stack (most recent call first):
  /Users/mryall/src/mawson/ros2-iron-build/install/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:132 (rosidl_adapt_interfaces)
  CMakeLists.txt:14 (rosidl_generate_interfaces)

---
Failed   <<< r1_messages [4.13s, exited with code 1]

My ROS2 installation was built with a Python virtual environment, which I have activated. But even though the virtual-env is activated and all the required libraries are installed with pip, the ROS modules built with CMake don't seem to be able to find it.
I tried to check that the em library was installed. Running pip install empy confirms that it is already installed:
% pip install empy
Requirement already satisfied: empy in /Users/mryall/src/mawson/ros2-iron/iron_venv/lib/python3.11/site-packages (3.3.4)

Answer: CMake modules in ROS2 do not automatically pick up the virtual environment used by the shell which calls colcon. (This is apparently an intentional decision by the ROS2 maintainers, who don't seem to understand the purpose or operation of virtual environments very well.)
You can fix this by asking colcon to pass the Python3_EXECUTABLE parameter to CMake, using the $VIRTUAL_ENV environment variable from your shell with the active virtualenv:
% colcon build --cmake-args -DPython3_EXECUTABLE="$VIRTUAL_ENV/bin/python"

Fortunately, once the right binary is known, Python is smart enough to find the libraries which are installed in the virtualenv.
This enables C++/CMake modules in your ROS2 code to find all their Python dependencies.


How to control a solenoid using the Raspberry Pi

Question: I am in developing process of creating/ designing a device that will launch a projectile remotely. The solenoid is being used to open the valve and allow the projectile to be shot. To remotely trigger this I plan to use infrared since I found a receiver laying around and my phone has uses infrared as well. I have an IR receiver however it connects via 3.5mm.Is it worth it to use this one I have now or get a different receiver. How does one go about include am IR receiver and/or a solenoid valve to a project involving the Raspberry Pi.
Comment: Have a look through the [Magpi](https://www.raspberrypi.org/magpi/) magazine to get some ideas.
Comment: IR receivers are cheap (~$2) and easy to attach (3 pins) and use, if you do some basic searching online...
Answer: I can give you some pointers, but not a full answer as that would be me designing this solution for you - you need to do some more basic research as what you are asking is very common technology solved in thousands of blog posts, instructables.com articles and more (I know because I recently added an IR receiver to my rPi for Media Center purposes).
First of all, let me assuming you want the phone to be the controller, and the rPi to be attached to the projectile launcher (you're not spelling this out in your question - maybe you could edit it in).

Go look at IR receivers online. Adafruit sells one, so does Radioshack (in the remaining locations they have in the US, you just have to browse through their component racks yourself as their personnel is totally clueless). If you're not from North America, there are tons of hobbyist electronics stores in Europe and Asia that sell these, either in store or online. Adafruit also has a short tutorial on how to wire it up, just forget about all the LIRC setup they mention.
Most IR receivers have three pins - a ground pin, a VCC pin (you need a 3V3 source) and an output pin which contains the received information. Just wire those up to GND, 3V3 and one of the GPIO pins.
I don't know your solenoid, but it will likely have a VCC input and a signal input, as well as a ground. If the VCC is 3V3 and the current requirement is very small (<100mA) you can connect to the rPi's 3V3 pin. If the VCC is 5V and the current requirement is 0.5A or less, you can use the rPi's 5V pin. If the VCC or the current requirement is not within those specs, you need to look for articles on how to use a relay with an rPi (thousands abound, just google).
Now, using a library like RPi.GPIO, you can read the incoming signals from your IR receiver GPIO pin, do your logic and then send the right signal to your Solenoid. Again, boatloads of documentation on this at uncle Google.

Good luck.
Comment: @niko one tip for number 3 add uln2803 to your search (assuming you don't connect it directly to the GPIO pins. This chip is very easy to work with and you will find lots of Pi specific resources. You may also want to look over the stuff at http://learn.adafruit.com they have a whole section on the Pi including IR, and the darlington chip (ULN2803) mentioned above.


How to tell your team you are quitting?

Question: What is the best way to tell your team that you are quitting? If I am on a current project and nobody knows that I am leaving, what is the best way to tell them this? My boss already knows.
Comment: Have you spoke to your boss about this? Some workplaces prefer you not to tell them, and for them to tell them instead.
Answer: The best way to tell your team you're quitting is to work with your supervisor, HR or manager to iron out a transition plan. Don't worry about telling your immediate team right away. Focus on helping the management group get their ducks in a row so that clients and coworkers both continue to have confidence in you and the company. You may feel like you're keeping a secret from your coworkers, but really, in the long run, you're helping them out.
Once everything is secured, ask your supervisor for her recommendation. Ideally, you would make the announcement together.
Just today, someone in my office did it The Wrong Way. He went from person to person spreading the news in hushed tones that he found a new job. It  made things terribly awkward. If he had gone about it the suggested way, management would have set the wheels in motion so that he could continue to be productive while they found a replacement. Eventually, when the time was right, they would have let the entire office know.
Answer: How you leave a company can leave an impression that is more important to how you are remembered by management, almost even more than you performed.  Nowadays, people tend to remember the last meetings more. Following the steps below can be ideal:
1 - Inform management first, well in advance, giving them enough time to find a replacement and initiate a transition process.
2 – Be cooperative enough to help with any specific things they will like you help out with. It could be some unique skills you possess that you could pass on or some tools you have been using that you could share. This will really be highly appreciated.
3 – Discuss when it is ideal to inform your team and how to go about it. Different managers have different approaches. So it is important not to let the cat out of the bag in a way that doesn't suit them. You do not want to serve your notice period, help the transition and end up messing it up with a simple awkward announcement.
4 - Based on agreement with management, inform your team members...AND continue to be productive.
While all this is going on ensure that you do not act in a way that de-motivates other team members. You have to be professional. Even if you have friends, remember the relationship is between you and the company and not you, the company and/or other colleagues / friends within it.
If you follow these simple steps, not only will you help the company prepare for a transition but also will you leave a good mark, even if you were an average employee.
Thanks, Spencer.
Answer: My preferred way would be to tell my boss first, then privately tell those people that I work most closely with, allowing a chance to explain some of the reasons for my choice.
After those that would be most effected by the decision already know (maybe 1/4 to 1/3 of the team) I would mention it in a daily stand-up meeting. I would speak positively about how I will help in the transition, and make sure to express gratitude for the opportunity to work with the current team.
And be brief.
The reason I prefer to leak the information slowly is to take away the emotional impact of a "big reveal."
Comment: Hey Eric, would you be able to explain *why* you would take this approach and not some other? This will help future readers decide whether or not this is the right approach for them.
Answer: Break the news to your co-workers about your new job during non-work time, such as during a lunch hour or a coffee break. Don't spend your current employer's time discussing your new job. Refrain from long winded stories with co-workers about your job search, the interview process and any other details about your new job, except during a time when you're not obligated to be working.
Don't go round telling everyone that you are leaving... only with co-workers you believe will be happy for you. If you have relationships with co-workers that are strained acquaintances or below, refrain from bragging to them about your new job. If they are unhappy where they currently are then it may make matters worse if you brag about leaving the company.
Personally I would rather tell co-workers about my new job in person. Don't send an e-mail using company equipment, time and a work e-mail address to share your personal news. You need to keep in mind that there may be some questions about how you found the job, why you want to leave the company, how much you're going to be earning and other details that you may not feel comfortable to discuss. Refrain from sharing too many details about your new job. It's best to simply  let your co-workers know that you will be leaving and then on your resignation day, exchange information with people with whom you want to maintain friendships with after your departure.

How to tell your team you are quitting?


What is the best substitute font for Calibri within Microsoft Office?

Question: I have read that there are a number of issues with the MS designed and default font Calibri. For instance, what is a Calibri replacement that will not change size when opened in say Pages, Docs, or Adobe. Or simply what is a solid sans-serif font that is more universal across apps.
Does this make sense?
Comment: The issue with changing type is often **not** due to Calibri... it's due to Microsoft in general. MS merely assumes all its files will *always* be used with its own apps and makes no effort to assist any transfer to any other app. Any replacement for Calibri most likely won't help and is a more a matter of preference, not technical issues.
Answer: The standard answer would be Carlito, a free metrically compatible font matching the character widths of Calibri. Google made it by modifying another typeface, Lato. Covers the standard four weights of Regular, Italic, Bold, Bold Italic. You'd need to manually switch documents over to it in those apps, though, they wouldn't automatically substitute to it. LibreOffice does the substitution automatically apparently.
As it sounds like you're on a Mac, Arial, Trebuchet and Verdana are fonts installed both on Windows and on Mac. All have very reliable, very extensive character sets.


Why did Peter, James and John (all three) appear to Joseph Smith?

Question: Why did Peter, James and John, (all three) appear to Joseph
Smith?
Comment: Are you asking, why did all three appear to Joseph Smith instead of just one of them appearing?
Comment: Welcome to Christianity.SE! Please be sure to take our [tour](https://christianity.stackexchange.com/tour/), and find out [how we are different from other sites](https://christianity.meta.stackexchange.com/questions/1808/how-we-are-different-than-other-sites). You've asked an interesting, well scoped question. Congratulations! I hope you get good answers.
Answer: If I understand your question to be why did all three need to appear to Joseph Smith then there is no precise answer out there that I can find, but there are several closely related answers.
The simple answer as to why they appeared to Joseph Smith can be found in D&C 27:12

And also with Peter, and James, and John, whom I have sent unto you, by whom I have ordained you and confirmed you to be apostles, and especial witnesses of my name, and bear the keys of your ministry and of the same things which I revealed unto them;

Why all three and not just one. Part of it may be because all three are recognized as prominent apostles during Christ's ministry. Having just one or two would lead to questions like why didn't all three appear to him. And from 2 Cor 13:1

This is the third time I am coming to you. In the mouth of two or three witnesses shall every word be established.

Also, the LDS believe that Jesus Christ, Moses, and Elias gave the keys to Peter, James, and John on the Mount of Transfiguration; so they (Peter, James, and John) are following the same pattern as they did anciently by having three members confer the keys. 1
The exact reasoning for having 3 apostles/prophets confer is not stated but 3 is a symbolic number for completeness or the Godhead (and the Priesthood is the power and authority of God and that power given to man to act in His name). 2
For more on Priesthood keys see this article that has select teachings by various LDS prophets/leaders.
1 http://scriptures.byu.edu/tpjs/STPJS.pdf pg 158
2 '3' sybmol meaning https://bible.org/question/what-significance-numbers-scripture and http://www.biblestudy.org/bibleref/meaning-of-numbers-in-bible/3.html and https://christianity.stackexchange.com/a/3944/22319


Rails 3 correctly using dynamic columns

Question: I have a user model that has a joined column which I am trying to reference as an additional_column when calling the views/user/_showcase.html.erb partial
For the complete back story see Rails 3 noob questions using partials correctly as I was asked to split the questions into two posts.
views/users/_showcase.html.erb
<img src="<%= user.avatar_url(32) %>" />
<%= user.username%>
<% additional_columns.each do |column| %>
    <%= user[column]%>
<% end %>

Here is how I implemented the computed column on my user model
class User < ActiveRecord::Base

  include ActionView::Helpers::DateHelper

  ... snip ...

  # Get the last 10 users who made Karmunity accounts
  scope :get_newest_users , order("created_at desc").limit(10);

  # Get 10 users with the highest karma score
  scope :get_highest_rated_user, order("karma_score desc").limit(10);

  scope :avatar_url
  scope :joined

  # get the dated they joined in time ago format
  def joined
    time_ago_in_words(self.created_at)
  end

  # Get the gravatar image url
  def avatar_url (size=nil)

    query_string = '';

    unless size.nil?
      query_string = 's=' + size.to_s
    end

    "http://www.gravatar.com/avatar/" + Digest::MD5.hexdigest(self.email.strip.downcase) + "?#{query_string}"
  end
end

However, when I execute this code, user.avatar_url, and if I manually type user.joined it works fine but the dynamic column (I'm assuming it behaves like user[:joined]) returns an empty string. I'm sure that I'm doing something dumb here but I don't know how to dynamically get computed/formatted model values.
For the sake of completeness, this is my call to the partial
<%= render :partial => 'users/showcase', :locals => { :id => 'newest_users', :title => 'Newest Users', :users => @newest_users, :additional_columns => [:affiliation,:joined]} %>

I'd appreciate any direction as this is my first rails app and I'm not really sure what kind of questions I should be asking.
Thanks!
Answer: so I stumbled on a solution, but i have no idea if this is a good implementation
<% users.each do |user| %>

        <img src="<%= user.avatar_url(32) %>" />
        <%= user.username%>
        <% additional_columns.each do |column| %>
            <%= user.send(column)%>
        <% end %>

<% end %>

Rails 3 correctly using dynamic columns


Are resources limited?

Question: Upon discovering Vertical Shaft and its resident Larian, I've immediately set to work feeding the Phyta to the Larian for nutritious compost. After a while, however, the Phyta stopped reproducing - the "eggs" they laid upon eating a seed simply disappeared instead of hatching into a new Phyta. This made me wonder: are the resources limited in some way? Is it possible to run out of a type of item/creature? What are the limiting factors? Do they regenerate after a time?
Answer: Creatures
Phyta and Cycots will stop reproducing once Biomass Level 5 has been reached. When this happens, they will continue to eat seeds, but their eggs will just "dissolve" rather than hatch into a creature.
This is to prevent overpopulation, but if the Biomass Level goes down to 4 or less, the creatures will immediately start populating again until level 5 has been reached. Other than that, those species should continue to populate so long as they are kept "well fed" with seeds.
Plants
Seeds are only limited so far as there can only be a certain amount (usually 2 or 3) laying around in a level or sitting in your inventory. Once these seeds have been destroyed, eaten by creatures, or planted, the old plant will start producing more seeds again.
This means that seeds are "virtually infinite"; so long as you don't destroy every single plant in the game, you should be able to return to old places and continue to refill your inventory with seeds once you run out.
(I have not tested if it is possible to completely destroy a species of either plant or animal, or if the game prevents you from doing so)
Compost
As compost is created from creatures, and both creatures and the seeds to breed them with are infinite, compost is an infinite resource as well.
Comment: Destroying plants shouldn't be necessary; compost is created when a Larian eats a _creature_, not plant (see the link provided).
Comment: And new creatures won't breed unless biomass falls below 5, which means I need to decrease biomass level by destroying plants.
Comment: Ah, I see. For some reason, the level "Larian Gauntlet" does not use a Biomass Level despite having creatures and plants in it. I'm still not sure what the "overpopulation rules" in that area are, but I have been able to breed a massive swarm of Phyta in that area, and is the perfect place to farm compost.
Comment: Sounds like I'll need to start destroying plants if I want more compost. Shame.
Comment: Nice, I'll keep that in mind.

Are resources limited?


How many presenters should be used in Model View Presenter with Winforms with tabs?

Question: I have a form with tabs related to a business entity - e.g. a Person has biographical data, address data, etc.  Each tab handles input/editing of a category of Person data, and each tab can be saved independently.  Should one presenter be used for all tabs, or one presenter per tab?  There may also be a main tab, which can navigate to the other tabs (based on category of data selected).
Answer: In my opinion the logical thing happening here is that you are working with the data of a single person. It is incidental to the presenter whether the UI i.e. view is using tabs, a spreadsheet, or a unified list of entry controls.
The view should have the responsibility of of switching between tabs, sending data from the presenter, and placing the data the presenter gives it in the correct places.
The presenter takes the data the view sends it and does whatever validation is needed and stores it. It is also responsible for updated the view when new data received.
This way if the tab interface doesn't work then it is easy to switch by having the new UI implement the view interface.
If it is important to updates only one tab then the presenter can be design with the concepts of categories. As part of the logic of the presenter it tell the view to update only one category of data.
On a unified entry form this will manifest as only one section of the form updating. On the tabbed form that you mentioned in your original post, this will result in one tab updating.
It is important to strike a balance between the number of classes and their functionality. To few and they are doing to many things that will be hard to separate in the future maintenance. Too many and it will become confusing as to their relationship again complicating future maintenance.
Answer: I create one presenter per view.  If each tab is a separate view, then each tab would have it's own presenter.


How difficult will the level 49 team rocket leader challenge be?

Question: How optimized will your team have to be to beat a team rocket leader with all under 1500cp pokemon?  I barely beat them with a standard team.
Comment: This is also very closely related: [What are the best counters to shadow Lapras / Sierra in Pokemon GO?](https://gaming.stackexchange.com/q/372798/124566)
Comment: To anybody who might VTC: While this may seem off-topic because the level increase isn't released yet, this is on-topic because the OP is asking about something that is currently doable in-game
Comment: I am asking now so I  know how much effort I need to put into building this team so that I am prepared for when I need to do it
Comment: The level increase is released now, at least for some select level 40 Aus players
Answer: While any answer really depends on what a Team Go Rocket leader's team is and that changes every month or so, searching YouTube with the phrase "Pokemon Go team rocket leader under 1500 CP" yields dozens of results. You could also try searching for "Pokemon Go Rocket leader lowest CP challenge" to find videos of players beating Team Go Rocket leaders with Pokemon well below the required CP.
It looks like it will require a couple matches to serve as recon, you will need to know exactly what team you are facing in order to keep the advantage while using low CP Pokemon, but you don't use up radars when you lose and the basic rules of fighting Team Go Rocket leaders still apply.

Make sure you have Pokemon that will resist the leader's fast moves. Because you have two shields, you can negate most of the damage from enemy charge moves but will have to tank fast move damage. Resistance will be key.
Start with a Pokemon that has a super effective fast move and a low energy cost charge move. This will allow you to burn the leader's shield quickly before they can use their charge attacks against you. Anything requiring less than 50 energy should work fine, I often use a Machamp with Counter/Rock Slide, or a Rhyperior with Mud Slap/Superpower.
Try to find common weaknesses between the first and second Pokemon, or the second and third Pokemon. This will allow you to maximize the advantage of extra energy after you knock out an opponent.
If your Pokemon have charge moves that lower their own stats, such as Wild Charge, Superpower, or Overheat, try to store multiple charge moves and fire them all together. You can then switch to a different Pokemon to minimize the time your Pokemon spend with a debuff. This is especially true for moves that lower your own defense, because most Pokemon will take too much damage after their stats are lowered.
Comment: This => *will require a couple matches to serve as recon*. On many occasions, even battling them with stronger Pokemon, sometimes require a few tries to know which Pokemon they are using to exploit type advantages


Are there plans for a web Interface for Ubuntu Software Centre

Question: Most Operating Systems that have a "App Store" native application also have a Web version of their app store where applications can be added to a wish list, purchased and/or downloaded. I think it would be a good idea for Ubuntu Software Centre to also have a Web version.
Since its not a good idea to download .debs, it could be done in such a way that downloads cannot be done if you are not running Ubuntu. This should not be too difficult to implement using the "apt:" link parameter.
Sites such as http://getdeb.net already utilize the apt: link in a web store like service. Is this already in the works or are there plans to do it in the future? If no, why not?
Comment: I think this is one of those edge cases where people dont really feel a need to do this kind of an interface.  WHat's the general benefit to the users by having a web interface?
Comment: agreed, what exactly would be the point since the software centre already exists, it makes any need for a web version pointless no?
Comment: I'm thinking more along the lines of when Ubuntu becomes more than just a Desktop/Server Linux OS. The more ubiquitous it becomes, the more I think such a feature would be a must have
Answer: You can find such an interface at http://apps.ubuntu.com.
It's at an early stage right now, so if you can suggest ways
of improving it, or want to help out with the changes then
you can join the mailing list to discuss it.
Comment: Great find! Now I have another bookmark to add.
Comment: didn't know about this before. needs some work UI wise though
Answer: I don't see anything special that will add value to current interface. USC is there to make new users comfortable. What you have just explained will complicate the matter and defeat the very purpose for USC. BTW apt: protocol have got its use especially in tutorials where user need to install packages.
If you still think the idea is still big one then propose it in ubuntu brainstorm
UPDATE:
As James have pointed out, there is http://apps.ubuntu.com which does exactly what you asked for. You can suggest changes for UI or even changes to wording (I don't think department is the best word for example but am fine since I use only apt)


How does Google track users in Incognito mode?

Question: There is a lawsuit claiming Google tracks users in private browsing mode. How exactly is Google achieving this?
Comment: This article explains the issue pretty well: https://www.businessinsider.com/google-sued-for-tracking-users-in-incognito-mode-2020-6?IR=T In Chrome's incognito windows, scripts like Google Analytics still work and send your browsing behavior to Google. Some users apparently are complaining (and suing Google) because that was unexpected. The warning says your activity might still be visible to "websites you visit", but that actually includes every third party service loaded by the site (for example Google Analytics)
Comment: I just checked, apparently Firefox blocks Google Analytics while in private mode, so not every private or incognito mode works the same. Chrome's incognito mode seems to be what some users are complaining about (and want to sue Google for).
Answer: There is a common misunderstanding of what "Private Browsing" or "Incognito Mode" actually does.
There is no anonymity or tracking protection provided. What these modes do is block persistence of information across sessions, preventing permanent storage of cookies or history after the browser has been closed.
Within a given browser session, meaning from start to stop, Incognito and similar works exactly the same (caveat) as a normal browsing session. The difference is that local storage is blocked so all of the session information is gone upon browser termination.
Some browsers (Firefox) proactively block writing to local storage in private mode. Some browsers (IE as of 2 years ago) wrote to local storage but cleared local storage upon start up.
Caveat:
Because protected browsing may not allow HTML5 local storage, many sites now complain about protected browsing. Some sites, like Netflix, will not work at all without the ability to write local storage.
Comment: I wanted to write a similar answer, but after investigating a bit more I realized that today private/incognito modes have implemented more advanced features. The complaint seems to be that Chrome's incognito mode does not block Google Analytics. However, Firefox actually does block it in its private mode (along with some other trackers).
Answer: Google is able to track users as they browse from site to site - even if the user is using Google Chrome in incognito mode - if the sites that the user visits have Google's services installed, such as Google Analytics, Google Ad Manager, etc.
This is similar to how Facebook is able to track users as the move from site to site - even if the user is using a browser in incognito mode (or private mode), and even if the user is not a Facebook user - if the sites have the Facebook 'Like Button' installed.  See How does Facebook track your browsing without third party cookies? for more information.
Also, see https://threatpost.com/google-faces-privacy-lawsuit-over-tracking-users-in-incognito-mode/156269/, which explains:

The lawsuit, filed in the federal court in San Jose, California, alleges that Google compiles user data through Google Analytics, Google Ad Manager and other applications and website plug-ins, including smartphone apps, regardless of whether users click on Google-supported ads, according to a report in Reuters.


Why does supplying energy makes an electron go away from the nucleus?

Question: My question is: the energy of electron is considered to be negative, so when the energy is supplied though  photons the energy of an electron increases (tends toward positive direction) and they get away from the nucleus. Does it mean that it behaves like a proton as it gets away from the nucleus (as proton has a positive charge) or its attraction  becomes less? And why via the action of applying energy does it not become attractive to the nucleus?
Comment: " the energy of electron is considered to be negative" Where did you get this idea? It doesn't make sense.
Comment: Are you stating this about a bound electron in an atom?
Answer: The nucleus is positively charged so it attracts electrons. This means that in the point of view of the electron, the nucleus is in a valley and the electron on the mountains surrounding it. If you give him more energy that means it goes higher in the mountains, so further away from the nucleus.
I hope this image of mountain and valley helps!
Your misconception comes from the negative charge of the electron. Since it is attracted by positive charge it has less energy when it is at a higher electrical potential -> don't mess up the electrical potential and the potential energy, there is a minus sign for the electron.
To be really clear: if we have an electrical potential $U(x)$ then this means that an electron has the potential energy $E_{pot}(x) = -e \cdot U(x)$ with $e$ being the elementar charge.
Comment: (Part 1) Even without thinking about quantum mechanics, if you give more speed to a planet, it will go further away from its orbit. So is an electron just orbiting around the proton? Not exactly, if this was the case, it would have to orbit super fast and would emit gamma rays. There is another phenomenon which is the Pauli exclusion principle, which makes particles like electron don't want to be concentrated too near from a single place (it's a bit more complicated than that) The math is not quite easy, so either you have to take a course about quantum mechanics or just accept it.
Comment: (Part 3) When the electron absorbs energy, it will get more kinetic energy AND more potential energy (the same for a planet orbiting around the sun).
Comment: what i really want to know is WHY electon goes away..why not it attraction become more strong...***is it because when energy is supplied to it.. its kinetic energy suddenly increases and it goes to the next state where it is converted into potential energy and for the sake of stability gets back to original state and release energy as photon**   or it means that energy and strength of electric field has a relation, when we give energy to electron it becomes less attractive(electricforcechanged) and hence its getsawayfrom the nucleus but that energy get exhausted and gets back releasing photon
Comment: which one is correct ?
Comment: (Part 2) If you do the math, you will also realise than only some energies are allowed for the electron and some in between are not, so when you supply energy to an electron there is a certain probability that it stays with the same energy (it doesn't absorb the photon) and a certain probability than it absorbs it and goes in a higher energy state. The same phenomenon happens in the other direction, when the electron has not the lowest possible energy, there is a certain probability that it goes back in a state with less energy.
Comment: (Part 4) Just think a bit more about the fact that "the electron is less attracted" means that "the electron has more potential energy " and it should become clear. (valley and mountains)
Comment: Electrons do not have  potential energy, nor do protons. SYSTEMS of two or more charged particles have electrical potential energy. Potential energy is part of the energy of a system, not any one part. Adding a charge to a system of charges will change the potential energy of the system, but no single charge possesses the potential energy.
Answer: There may be some misconceptions about the idea of energy and force at play here. I offer this answer as conceptual alternative that focuses on the idea of "systems".
Energy is a property of a system and its configuration (a collection of parameters that describe the system, also called degrees of freedom). Flow of energy between systems and subsystems corresponds to changes of their configurations.
Individual particles in a system does not have energy (assuming they are stable and unchanging in the context of the system). A collection of particles that interact with each other and move relative to each other do have energy. They have a configuration.
Classically (QM changes these slightly due to e.g. the uncertainty principle):

An isolated stable electron does not have (usable) energy.
An isolated stable proton does not have (usable) energy.
But, an electron and a proton that interact with each other forms a system.
The system has an energy level that corresponds to its current configuration.
The system is free to transition between configurations that share the same energy level (if there is a "same energy" path to the new configuration).
The system can interact with another system to do (positive/negative) work on the other system. This will cause a change of configuration in both systems.

The laws of nature govern how work applied to the system causes a change in configuration. Work is done by using forces.
Like the "valley and mountains" analogy Nicolas Schmid stated, in your quantum mechanical system, the electron-proton system is at a high potential energy configuration (state) when the electron is "far away", and it is in a low energy state when the electron is "close" to the proton. An easy way to see this is because you must do work on the system to move the electron away from the proton. An outside system must supply the energy.
If the electron-proton system starts out in a high energy state, in order to reach a low energy state, it needs to give away energy somehow. It can do this by doing work on the electromagnetic field, that is, by emitting photons.
For all we care, these photons can be stored in the electromagnetic field, or the system can be brought in contact with another system so that these photons can do work on the other system via electromagnetic interaction. It doesn't matter.
Similarly, if the electron-proton system is in its lowest energy state, then in order to reach a higher energy state (moving the electron "farther away") we must do work on the system. This can be done photons doing work on the system (the electron "absorbing" the photons) which will allow the system to change its state to a higher energy one.
The idea of "systems" and "subsystems" that can interact and do work on each other is a powerful concept.
P.S. "Work" is the transfer of energy between systems. I have also not mentioned "Heat", the closely related cousin of "Work", but it can be applied to the argument too.


How to decide on how much marginal variance to remove off of a bivariate distribution based on samples

Question: I am given a bivariate distribution for X and Y and then the marginal distribution for Y. The only metrics I know for these are their mean and variances (Expected value and Variance of bivariate distribution and again for the marginal). But I also have a drawn sample from each distribution. I ultimately want to find the variance of the marginal distribution for X and I know that the marginal mean of X equals the mean of the bivariate distribution of X and Y. Each distribution sample has 2 numbers. So each record consists of a pair of an actual number and an expected number (e.g. 25 samples of actual and expected numbers from the bivariate distribution and 25 samples of actual and expected numbers from the marginal Y). So therefore you can calculate an error for each sample record. Given this information, I want to come up with a best way to estimate the variance of X. Can someone advise?
Comment: Do you know if $X$ and $Y$ are independent random variables?
Comment: X and Y are definitely not independent.
Comment: Do you have the functions $f(Y)$ and $f(X,Y)$?
Comment: I don't know the entire distribution for Y and (X,Y). I just know their means and variances. Further we have a drawn sample from each of the Y and (X,Y) distributions and for each draw I get an expected drawn number and the actual drawn number. Only other information I know is that the mean of (X,Y) = mean of X.
Comment: I understand I can calculate sample standard deviations for the Y and (X,Y) distribution. How can I arrive to an estimate of the variance of X with this information?
Answer: You cannot sample an observation from $f(X,Y)$ and get one number. You sample an observation from $f(X,Y)$ and you should get something like $(x_1,y_1)$. As such, you should have a list of data points from $X$.
I would suggest calculating the sample standard deviation of your $X$ data given that you know $E[X]$ and have a sample of data points from $X$. You can calculate $s_X$ and then note that $s^2_X$ is the sample variance of $X$.
It is also an identity that $Var[X]=E[X^2]-E[X]^2$. You know what $E[X]$ is from the problem and you can empirically estimate $E[X^2]$ by squaring all of your $X$ data and calculating the sample mean of that.
These are two methods that should get you to estimate the variance. If they seem pretty close, then you're probably in the ballpark.
What my other thought would be is that, analytically, $f(X)=\int_{-\infty}^{\infty}\frac{f(x,y)}{f(y)}dy$. I don't know how you could analyze this without knowing your functions $f$ and your sample size seems too small to estimate density functions.


How can I connect to a LAN server?

Question: My sister and I are trying to play Minecraft together, but no matter what we try, we can't get it to work. We've had this problem numerous times in the past, and it's always stopped us from playing together, unless on servers like Hypixel. We've spent the last two hours trying to fix this and reading/watching tutorials, but nothing has helped. When I try to connect, I have to do direct connect because it will not show the world automatically, despite us playing on the same IP and same version. It gives me the error message io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information. I've tried turning off the firewall, but that doesn't do anything. What should I do?
Comment: Possible duplicate of [How to solve the "io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information" error on Minecraft?](https://gaming.stackexchange.com/questions/316791/how-to-solve-the-io-netty-channel-abstractchannelannotatedconnectexception-co)
Comment: Are you on the same WiFi?
Comment: Yeah, we're on the same wifi.
Comment: The term LAN server is unclear. Are you talking about a dedicated server or a singleplayer world?
Answer: The best way is Hamachi.
Download Hamachi on your PC, Register in the app. Then create a new Network (With any name and password). Tell the name and password to your sister, so that she can join. After she did it, she must copy your IP address (it is shown in Hamachi).
Then you just enter your world and open it to LAN. Tell your sister the PORT, which is shown in the chat.
She will have to go to Multiplayer/Direct Connect  and paste the IP and PORT together.
Here is the example of how it should look like:
188.8.131.52:57436
Answer: You can try putting the local IP of the host computer into Direct Connect in Multiplayer.
To find your local IP, there are two different ways:
On Windows, press the Windows button, usually next to alt or control. Then type cmd and you should see Command Prompt show up. Open that up and you should see a black rectangle with the directory in it.
Type ipconfig into it.
Look for something like:
IPv4 Address.. 192.168.0.295
or something similar. Write that IP down.
When you start a LAN world in Minecraft, you might see something like this in chat:
LAN world started on port 12345
12345, meaning a 5 digit code.
Now that you have the IP and port, you can connect to the world.
On the visitor computer, go to Direct Connect in multiplayer, and type the IP and port seperated by a colon. Like this:
192.168.0.295:12345.
Click Connect and you should join the world!
Now for Mac, it's a pretty similar process.
To find your IP address:

Click on the WiFi menu button in your Mac's menu bar.
Then select Network Preferences.

Select your network.
Then click on the Advanced button.

Next, click the TCP/IP tab.
Your computer's IP address will be a series of numbers next to IPv4 Address.

And then put the IP and port next to each other seperated by a colon.
192.168.1.295:12345.
And that's it!
I hope this helped and have a nice day!

How can I connect to a LAN server?


Multi-Directional Rack and Pinion Drive - Vehicle Motion Using Helical Wheels

Question: I have a vehicle with 4 wheels. Say I replace the wheels with large helical gears (pinions). If I set the vehicle on linear helical racks, it should be able to travel in one dimension. Say I replace the racks with a similarly toothed ground surface, could the vehicle travel in 2 dimensions (without rotating the body of the vehical)? I think it would be possible with opposing front and rear wheel drives. It should operate like a "screw" in the second dimension. Would the ideal helix angle be 45 degrees (to support movement in both directions)? How will speed, Torque, and service life be affected?
Answer: No, it cannot work as you are imagining. Such a vehicle can roll to the left or right under its own power, and it could be pushed diagonally along the grooves by an external force, but it can't "screw itself" up and down. All four wheels must always turn in the same direction.
You should study omnidirectional and holonomic drive systems.

Actually, after giving it some thought, you could have two sets of grooves in the surface at right angles to each other. If one pair of wheels meshed with one set of grooves, and the other pair mated with the other grooves, then you could get the kind of motion you're thinking of. But friction would be a huge issue for up-and-down motion.
Answer: Is this theoretical.  If so I will bow out, but if not, Airtrax Sidewinder Forklift already does this.  See the video.  https://www.youtube.com/watch?v=vAiwLRGsNrE
techtooler
Comment: This isn't the same situation as the question is asking about. Being able to move sideways is different than using helical wheels on helical racks.


Aerodynamic noise created by cooling fan

Question: What is the reason behind the noise created by fan blades while moving? Some paper says that it is because of the Kármán vortex street but it can be formed in static bodies only. Most of the researchers settle on tip vortices and vortex shedding but the main part is that how do vortices make the noise. How does turbulence in flow result in noise?
Comment: _How does turbulence in flow result in noise?_  Total guess on my part, but turbulence causes pressure differences and pressure differences are detected by the ear as noise.  Wikipedia says a Kármán vortex street is responsible for the vibration of a car antenna at certain speeds, and that is no more a static body than a fan blade.   Is it really as straightforward as that? It's not my field....so am I being naive here?
Comment: Thank you for your response . Can you tell me more quite functioning of our ear towards pressure difference.Besides it,  it would be quite generous of you if you forward this question to someone who is specialized in this field.
Answer: Acid Jazz is quite right. Generally any instability in air medium can result in sound waves radiation. Vortices causes local pressure instabilities and the medium is "able to propagate the image of it" (well, the Wave equation).
Kármán vortex street is nice (and most of all solvable!) example of vortex shedding. But in certain domain of the Reynolds number the shedding can occur anyway.
If you are interested in quantitative approach, start e.g. with the Lighthill's equation:
$$
\Box p = \rho_0\frac{\partial^2}{\partial x_i \partial x_j}\left(v_iv_j \right)
$$
where the source term is based on Reynolds stress only (there are more general cases).
I can recommend Theory of Vortex Sound by M. C. Howe for more details.


Where do the other black holes in this diagram come from?

Question: In this Penrose diagram for a charged/Rotating black hole, once your in the new universe you can continue onward to an infinite sequence of black holes/white holes.
So I'm asking, where do those black holes and white holes come from?
Comment: the parallel universes depend on the existence of  wormholes, which are not really mainstream physics, although they are studied mathematically.for simpler diagrams see https://en.wikipedia.org/wiki/Penrose_diagram#Black_holes
Comment: Related question https://physics.stackexchange.com/q/773888/226902
Answer: A diagram like this, as I understand it, is showing a possibility that the equations of General Relativity can describe, but it does not necessarily follow that the physical evolution actually gave an instance of that possibility. In the diagram you have shown, there is no attention given to how a black hole (or any other structure) might form in the first place. It is just saying 'suppose this kind of structure came about somehow, then this is what it is like'.
One way these kinds of structures might arise is through some sort of quantum process at a very small scale, but that is outside the area of confident knowledge in physics at the moment. At the large scale of gravitational collapse from ordinary matter these kinds of structure probably do not come about.
Another issue you should keep in mind in this area of physics is the issue of stability. Sometimes a solution to the field equations has an instability that only becomes apparent once you allow for further things, such as some matter moving in the region of a wormhole.