Can't upload files or attachments

Question: I have tried several times to upload files to my blog and attach files to GMail emails. Each time, the file says "uploading" however the process never completes. Do you have any suggestions on what might be causing this? I have tried this in both Internet Explorer 8 and Firefox. The computer is running XP Pro.
Comment: How long do you wait before giving up on it? What are the exact messages you receive (if any)?
Comment: I have waited in excess of 5 minutes several times. I do not receive any error messages.
Comment: It would be helpful to know what you're running for AV, anti-malware, firewall, etc.
Answer: Uploads fail with BOTH Firefox and IE, on BOTH GMail and your blog?   Almost has to be some kind of software on your PC, most probably some sort of security thing.
Answer: Are you sure you are waiting long enough? Please remember that your upload speed is probably a fraction of your download speed.
I suggest creating a small text file on your machine, making a new email to yourself and trying to attach that text file. If it fails after a few minutes, there is clearly a problem (first thing I would advise is disabling ALL addons, no matter how handy / nice they sound). If it does work, you just need to wait longer.
Comment: I am trying this on a Comcast 12MB/s connection with a 1 MB/s+ upload speed. I have waited > 5 minutes for a 3MB photo. I also tried with a variety of smaller .doc and .txt documents. Same results.

Can't upload files or attachments


Longstaff-Schwartz for any optimal stopping

Question: Let's say I have the stock of General Motors and I assume some fancy model for the price of this stock and I have to sell it within a month. Can I use Longstaff-Schwartz algorithm to determine the best time to sell the stock? I'm asking because I noticed that the algorithm seems to be used only for derivatives, but isn't it more natural to use it to determine when is the best time to sell any asset?
Answer: To solve a standard optimal stopping problem (say Markovian, finite horizon), you must calculate certain conditional expectations that arise in the dynamic programming principle algorithm. These conditional expectations can be approximated using Longstaff-Schwartz or the Tsitsiklis-Van Roy approach, among others.
Comment: If you're looking at a 1D problem, if the dynamics for your stock price are not too complex, there are usually better approaches. Monte Carlo approaches have issues with slow convergence, and the regression component often contributes a bias in estimated values.
Comment: Thank you for the answer! So it is applicable. Do you know any reason for why it is not applied to find best time to sell a stock? It does look like a cool application.


Difference between cisco asa cluster and active/active failover

Question: Whar are differences between cluster and active/active failover with cisco asa 5525-x?
Comment: http://www.cisco.com/c/en/us/td/docs/security/asa/asa91/configuration/general/asa_91_general_config/ha_contexts.html  & http://blog.wardbopp.com/2014/12/31/25/ might help!
Answer: The active/active cluster allows you to split traffic into groups so the A node handles traffic for some networks while the B node handles traffic for the others, in the event of a failover the stable unit will handle traffic for both A&B traffic groups (assigned on a per context basis). Active/Standby cluster handle all traffic on a single node while the other is brought into use only in the event of a failure.
This is generally used when you're going to have more traffic than a single node can handle, if one of the units fails, instead of stopping all traffic destined to the failed ASA it will run in a degraded state until it is replaced. So essentially you're stretching you're hardware and actually utilizing it taking the risk of degradation if there's a failure instead of paying for a standby unit that essentially never sees any traffic pass through.
Edit: Forgot to clarify active/active is only available for multi-context mode since it would serve no purpose otherwise since you couldn't create the groups
Comment: Ok, I understand now the logic of active/active failover. I just have to correct you in one thing. It is active/active failover. It is not active/active cluster. Clustering has a different logic. Thanks.


How can I print 2 pages per sheet on word 2010

Question: I tried setting the printer to two pages per sheet but it did not come out the way I expected the printer indeed did print 2 pages but not on the long side, it printed 2 pages but on the short side making the word size smaller and taking up half the space of 1 page making it difficult to read. How can I print 2 pages on the longer side so that the words and diagrams will be more legible for me to read?
Comment: This depends on your printer. Check the printer settings/preferences from the print dialog and configure it to print the way you want.
Comment: I'm not sure what you men by long and short sides. If you print 2 pages on the same side, then each page can only take up half a sheet; hence it's smaller. Word will not squash the page vertically only, as that would distort the page. Or, do you mean one page on each SIDE of the sheet (duplexing)? That depends on your printer and driver. Some can, others cannot.
Answer: You could see if your printer support this directly in its driver. Go to the Windows Control Panel > Hardware and Sound > Devices and Printers.
Right mouse click your printer and select Printer Properties.
There you have to see in the preferences, Advanced or Device settings if you have this setting.
Another option is to use a commercial solution like Print&Share to do this.
In Print&Share you first create a new profile with a printer channel. Than in the channel configuration of the printer channel you can modify the setting "Pages on 1 sheet" and click OK to close the configuration.
Note: I'm affiliated with this software.
Comment: I said "commercial solution", thus metioning that it isn't free. Also added more info on how to configure it.


Linking a Category Image

Question: Is it possible to link a category image in Expression Engine 2+? I have logos as my category images and I'd like to link them to external sites. Thanks.
Answer: Definitely - you could create a custom category field for the URL and then use it in your template conditionally if it has a value.
Comment: Just wish with custom category fields you could have access to all the same amazing custom channel fields. Ah well!

Linking a Category Image


Jewish languages

Question: Why haven't Jews had a consistent language throughout history? What was wrong with Lashon Hakodesh (besides for learning the local language)? We adopted Aramaic with a mixture of LHK and local variations of this such as Judeo-Arabic, Ladino and Yiddish. Was this conglomeration of LHK and the local language by intent?
A new language seems to be forming which is known as yeshivish. Though I'm not sure if that falls under the same category as the previous languages listed.
Any thoughts?
Answer: I mean they kept their language throughout 210 years of slavery in Egypt (see Vayikra Rabbah 32) does that count as "consistent".
The other instances you cite such as Yiddish, Ladino etc. are a product of living in galus, where they maintained elements of lashon hakodesh but also had to adapt their language to the countries they were living in.
Comment: Actually, I think you've gotten to the ikar of the matter- how was Galut Mitsrayim different from the other galuyot? Why were we able to keep our language in Egypt for 210 years without the Torah, but unable to do so in Babel for 70 years with the Torah
Comment: We're we not in galut in Egypt?
Comment: Yes, but up a point. One could argue that it was an enforced stop due to famine, and then they were thrust into shibud mitzrayim.
Comment: Being led away by the Babylonian army wasn't a forced exile? Fleeing the Romans? I'm not trying to argue with you, I'm just trying to understand this answer
Comment: If the second part is problematic I'll keep just the first part that mentions the midrash
Comment: I imagine it was because in Mitzrayim the Jews were tucked away in the relative spiritual security of Goshen

Jewish languages


After breaking an oath, do we need to feed 10 poor persons in a single day?

Question: I broke an oath that I have made. So I went forward to feed 10 poor persons. So I fed 5 poor persons approximately a month ago and want to feed 5 more this month. Is this acceptable or do I have to feed 10 poor persons in one day?
Answer: According to Qur'an 5:89, one of the options of expiation of breaking an oath (Kaffarat Al-Yameen)  is to feed ten needy people from one's own food, but having them on the same day is not a condition that is mentioned in the verse:

لَا يُؤَاخِذُكُمُ اللَّهُ بِاللَّغْوِ فِي أَيْمَانِكُمْ وَلَكِنْ
يُؤَاخِذُكُمْ بِمَا عَقَّدْتُمُ الْأَيْمَانَ فَكَفَّارَتُهُ إِطْعَامُ
عَشَرَةِ مَسَاكِينَ مِنْ أَوْسَطِ مَا تُطْعِمُونَ أَهْلِيكُمْ أَوْ
كِسْوَتُهُمْ أَوْ تَحْرِيرُ رَقَبَةٍ فَمَنْ لَمْ يَجِدْ فَصِيَامُ
ثَلَاثَةِ أَيَّامٍ ذَلِكَ كَفَّارَةُ أَيْمَانِكُمْ إِذَا حَلَفْتُمْ
وَاحْفَظُوا أَيْمَانَكُمْ كَذَلِكَ يُبَيِّنُ اللَّهُ لَكُمْ آيَاتِهِ
لَعَلَّكُمْ تَشْكُرُونَ
Allah will not impose blame upon you for what is meaningless in your
oaths, but He will impose blame upon you for [breaking] what you
intended of oaths. So its expiation is the feeding of ten needy people
from the average of that which you feed your [own] families or
clothing them or the freeing of a slave. But whoever cannot find [or
afford it] - then a fast of three days [is required]. That is the
expiation for oaths when you have sworn. But guard your oaths. Thus
does Allah make clear to you His verses that you may be grateful.

Ibn Qudamah in Al-Mughni, Vol. 9, p. 544, Chapter 8028 mentioned so:

وإن أطعم كل يوم مسكينا، حتى أكمل العشرة، أجزأه، بلا خلاف نعلمه؛ لأن
الواجب إطعام عشرة مساكين، وقد أطعمهم
If one feeds one needy person every day until the ten days are
completed, this is acceptable with no disagreement we know of, because
one has to feed ten needy people, and one will have fulfilled this.
NOTE: My own translation, so treat with care.

There is a difference of opinions on whether the ten needy people have to be distinctly different, or if the equivalent (i.e., feed one needy person ten meals, or five needy people two meals each, etc.) would suffice. Malik, Al-Shafe'i, and Ibn Hanbal said that the verse says ten needy people; therefore, they have to be ten different people. Al-Awza'i and some of the Hanafi scholars said it is permitted to feed the equivalent.


what are the consequences of altering the users schema?

Question: I was tasked with altering the signature/signature format and make the length larger than 255. Within the given time, I had to alter the table using hook_schema_alter, db_change_field and hook_update. While I am aware this is semi hacking, I want to know what if this could have a huge consequence on my website.
Comment: I can't find the reference right now but one of the core developers once told me that doing this was "a very Drupal 5 way of thinking" (it was in reference to [this post](http://drupal.stackexchange.com/questions/30070/changed-by-on-nodes) I think). There shouldn't be any negative effects on your site (in fact you've done it exactly the right way), it just might not be considered 'best practice'
Comment: Gosh, I've had to change a varchar field from 255 to 1024 before and hadn't run into any problems, even without touching hook_schema. I'd love to hear if anyone can point out specific problems we might run into. It seemed to me that PDO threw exceptions on character limits, not the schema API.
Answer: For your case, as you are just altering a field's length, without adding new fields, or new indexes, the only problem could be code that handles the same field, and which uses an hardcoded value for its length. That could be code executed from a third-party module, or a future version of Drupal.
For example, user_validate_name(), the function that is used to validate the username entered during the account registration, or when the user account is edited, uses the following code.
if (drupal_strlen($name) > USERNAME_MAX_LENGTH) {
  return t('The username %name is too long: it must be %max characters or less.', array('%name' => $name, '%max' => USERNAME_MAX_LENGTH));
}

If a module alters the database field containing the username to make it bigger, Drupal would still throw an error when the username length is higher than USERNAME_MAX_LENGTH (actually 60, also in Drupal 8).
The reason why altering a database table defined from a module is not something suggested to do is that it would cause problems when more than one module do that for the same field.   Imagine what would happen if a module increases the length of the signature field to 350, and another module changes it to 300.
The other problem is when the modules are uninstalled. Which size would the field get when one of the modules is uninstalled? If modules remember the size the field had before they were installed, there would be a problem when modules are uninstalled in an order that is different from the installation one. If modules restore the field size to the original one, that would cause a problem when only one module changing the field is uninstalled.
In the case a module adds a new field, there could be some performance issues if the module doesn't introduce an index. If the module introduces an index for the added field, there could be errors with the SQL queries used from the module that introduced the database table; if then those queries are not dynamic, it would not be possible for the module that added the field to alter them.


Improve the performance of an ASP.NET application

Question: How to improve the performance of an ASP.NET application? Which are are the fields I should take care? The application includes DB connections and Image Parsing etc.
Answer: 10 Tips for Writing High-Performance Web Applications
20 Tips to Improve ASP.net Application Performance
Bye
Answer: I wrote a book about this that was just released, called Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites using ASP.NET and SQL Server.
The book is about 500 pages long, so there's a fair amount you can do, at all tiers: client (HTML/JavaScript structure), IIS, ASP.NET, SQL Server, infrastructure, etc.
Answer: try avoiding unnecessary postbacks to pages, there are a lot of features you can implement by using things like jQuery or ExtJs framework. Learn how to do AJAX calls and pass info between your app and the server via JSON result sets.
Also, install apps like FireBug and YSlow and use these to analyze your application and follow their recommendations on how to speed up your app. Good luck!
Answer:
HTTP Compression
Disable Possible ViewState
Changes in the Web.Config File :
Use page caching,
Remove unnecessary httpModules,
Turn off trace,
Disabled automatic save for profiles,
Set debug=false.
Implement Cache Dependency
Optimize Stylesheets
Optimize JavaScript
JS and CSS File Position
server.transfer() Instead of response.redirect()
Client-side Script for Validation
Answer: The book Improving .NET Application Performance and Scalability has a chapter on Improving ASP.NET Performance, that might be worth reading. The full book is online at MSDN, and is also available as a PDF download.
Comment: any updates for 2020  ? Now, ASP.NET MVC 5, ASP.NET CORE, and BLAZOR.
Answer: Here's an excerpt from the book Jeff, Phil, and K. Scott Allen wrote:
8 ASP.NET Performance Tips. It's a few years old, but most of it's pretty timeless.
My checklist:

Find out what's slow by testing
Cache what you can (application cache, output cache, etc.)
Reduce page size (eliminate viewstate, compress images, use CSS instead of inline styles, etc.)
Find out which external dependencies are slowing you down (worst queries, webservices, etc.).
Offload processing to the client (jQuery for filtering vs. round trips to the server to server to re-query)
Answer: Use the .NET CLR profiler to determine where optimization will be useful.
http://msdn.microsoft.com/en-us/magazine/cc301839.aspx
Comment: quite useless for web projects


What exactly did the decay rate formula do in The Amazing Spider-Man?

Question: What exactly did the decay rate formula do in The Amazing Spider-Man? What was it that was decaying?
Comment: You can [watch Jim Kakalios (its creator) explain it](https://www.youtube.com/watch?v=WjfT6MqTCqQ).
Comment: @Will That was really interesting in terms of the real-world background, but it doesn't say what the decay rate formula does in the movie, I don't believe.
Comment: @Will - So he's partially responsible for this dross?
Answer: According to the physicist who created the algorithm for the film, the "Decay Rate Formula" best describes the way in which cellular decay impacts on human mortality rates.
Clearly Curt Connors has a deep interest in cellular regeneration and hence would be most interested in the lifecycle of cells.

Being a physics professor who is also a fan of superhero comic books
(I created a class at Minnesota titled: "Everything I Know About
Physics I Learned from Reading Comic Books") I recognize that one must
invoke a "miracle exception from the laws of nature" in order to
justify "spider-powers" or men mutated into giant lizards.  When Andy
Siegel asked me to create an equation that would relate to cell
regeneration and human mortality — an equation called the "Decay Rate
Algorithm" in the film — I nevertheless wanted to ground the formula
in real science.  Naturally, I thought of the Gompertz equation.
Armed with this background, I was ready to provide an equation to Andy
Siegel, but I did not want to just simply send him the actual Gompertz
equation, as there would seem to be little reason for the professional
scientists in the film to not already know it.  I therefore combined
expressions from "The Reliability Theory of Aging and Longevity" by
Leonid Gavrilov and Natalia Gavrilova into a single formula, and added
extra terms ("mathematical glitter," if you will) so that it would
appear sufficiently complex. (The actual Gompertz equation can be
written in a simple and compact manner that did not meet the visual
needs of the filmmakers.)
How I created the algorithm that amazed Spider-Man by James Kakalios

You may also find the following video to be of interest. It's mostly about the (real world) application of the formula, but it does mention Spider-Man a few times
Answer: The decay rate algorithm is a series of continuous steps which has to do with successful animal regeneration, blood lines, and mortality in human capability. In which it is trying to en glace those capabilities in humans and in other animals, to make successful hybrids without there being any side affects such as a hosts taking over in the subject. One representative example of this concept from the film  would be the lizard taking over Dr. Conner's subject.  The reason the process was successful with Peter, and not the lizard experiment, is because the research done was his own blood, and the research could not continue without his blood line. That is why he left and why Peter was Spider man.


Asp.net hide html row (tr) from vb.net/c# code

Question: I have a webpage with html table and few rows in it.
I would like from my vb.net code to hide some of these rows, so they won't take any space.
Possible?
I'm using asp.net vb code framework 4.0.
Thanks.
Answer: You can use the following if they rows have an Id and runat="server":
<code>row.Style.Add("display", "none");
</code>
Answer: give ids to your tr rows and also add runat="server" for your trs.
Now you can access your trs using the given ids and you can hide them
Setting the visibility property to false will hide the tr but may not solve your spacing problem. Instead set css style as "display:none" for the trs that you want to hide. See this for more details http://www.w3schools.com/css/css_display_visibility.asp
Answer: If you want to remove the rows with asp.net spefically, you'll need to do some postback (runat="server"). But maybe you might want to consider doing it client side with JavaScript (whether or not using AJAX communication with the server).


Removing old mortar

Question: I found parge coating falling away from my fieldstone foundation(1906). I used a hammer to tap on the remaining parge of the first section I am going to repair. Some of the coating sounds very solid while other parts sound hollow I removed the portions that sounded hollow. I have two questions. Should I remove the portions that sound solid? How deep should I remove the loose sand mortar? I think I could go all the way through the foundation and not find solid mortar. The foundation is about 18" thick I have gone 6" or more into the loose mortar in some places and am afraid to go much deeper without some advice.
Answer: I think that probably depends upon where you live, and what type of stone that fieldstone is. If it's dense nonporous fieldstone, you could remove most of the loose stuff near the surface and have a contractor shoot the foundation with gunite. If it's porous fieldstone, though, that'd be the worst thing in the world for you - gunite is essentially nonporous (which is why it's used for swimming pools), so instead of the (inexpensive) mortar being sacrificial the stones would become sacrificial - your foundation would crumble. Porous fieldstone calls for "soft mortar", which represents a lot more work for you now.
I don't think I'd dig any mortar out of the interior of the wall, either way - the stones are at this point stable, the mortar is primarily there to slow down breezes & rainwater. A deep surface reparging should be fine.
Answer: I'm not sure that damaged parts are mortar, or at least they aren't all mortar, because no one would make foundations out of mortar, and if someone would do that you would have major structural issues by now. My guess is that your foundation is made out of some sort of "soft" stone which is now disintegrating, or at least it's mechanical abilities are poor (since you can smash it with hammer).If you don't have any structural issues I don't think you should deal with foundation at all, but keep your eye on possible wall cracks, floors not being horizontal etc. When it comes to fixing present damage I suggest that you use higher quality cement mortar (without lime) and apply it on surface. Depending on surface (you haven't explained in details, plus a picture would be great) you might have a gripping issue with mortar, it might fall of the surface but that can fixed with right preparation of the surface and applying primer coating.

Removing old mortar


making a python gui for ffdshow

Question: I was thinking that for a learning project for myself, I would try to make a GUI for ffdshow on linux, using tkinter. Wanted to make sure this project would be feasible first, before I get halfway through and run into something that cant be done in python.
Basic idea is to have a single GUI window with a bunch of drop down boxes that have the various presets (like format or bitrate), as well as a text box where a custom number can be entered if applicable. Then when all the options are selected, the user hits the Start button on the GUI and it shows a progress little bar with a percentage. All the options selected would just send the relevant selections as cli arguments for ffdshow, and begin the conversion progress (essentially turning all the user's input into a single perfect cli command).
Is all this doable with python and tkinter? and is it something that a relative newb with only very basic tkinter experience could pull off with books and other python resources?
Thanks
Answer: That is precisely the type of thing that python and Tkinter excel at. And yes, a relative newbie can easily do a task like that.

making a python gui for ffdshow


LTSpice chassis ground or earth ground

Question: I'm trying to simulate a circuit for a design I'm making. In a few parts of what I'm interfacing with uses relays that when closed will short a few power supplies to the chassis ground and in LTSpice and Circuit lab there is no "chassis ground" or "earth ground" just one ground. It doesn't short the rest of the circuits with power supplies tied to their own grounds just a few spots these relays are used. I've been trying to find the answer on here and elsewhere and found Need help modelling the circuit with parasitic capacitance of a power supply in this scenario in SPICE where he just hand drew it but is there a way to make it with subskt or is there a proper way to simulate this that won't skew my sim in weird ways?
Comment: In your third sentence, what is "It"...LTspice? CircuitLab? one ground? How is the chassis ground of your supplies related to "earth" ground? Are they truly floating?
Comment: @ElliotAlderson LTSpice is just a spice freeware. Circuitlab.com is what pulls up when you click the little schematic button when you're asking/answering questions here so a lot of people use it.
The chassis ground and earth ground aren't related, I was just emphasizing there is only one global ground and can't separate.
Comment: I know very well what LTspice and Circuitlab are. What is confusing is what "It" refers to at the beginning of your third sentence.
Comment: If chassis ground and earth ground aren't "related" does that mean they are galvanically **isolated**? Yes, SPICE requires that you have a ground node but it's not clear yet why that is a problem for you.
Comment: @ElliotAlderson Oh I'm sorry I saw that as "LT" not "it" with the font used on this site. I'm building it in LTSpice but when I came across not being able to add chassis ground I looked at circuitlab just to compare.

This is for a senior design project for school aimed at making a device for an aircraft so there is no true "earth ground." the closest we can plan for is "chassis ground"
Answer: Due to the nature of the SPICE (ever since 40+ years), the ground (0, GND) node is global, but just a net, like all nets. And all nets can be renamed to whatever name/label/etc is needed. In this case, that chassis you're looking for, in whichever SPICE software, is just a cosmetic appearance for a net/node, labeled chassis, or earth, or whatever. In LTspice there is only one cosmetic like that, called COM, but which has the same functionality of a common node (like chassis, earth, etc, unless mentioned otherwise). It, too, needs to be referenced to ground, so some connection is needed, if you so choose to use it. This is true for whichever SPICE program that uses those nodes as floating nodes. Here's a minor example of usage:

Note the R2 that connects the triangular shape ground (the ground, 0, GND) to the cosmetic COM. Its value is 1g to simulate a separate, floating ground, but really it's there with the sole purpose of providing a reference to ground without which the solver cannot calculate. Also, the plot shows V(2,COM), which is just a local reference for probing; can be anything, really.
Comment: So, just to confirm, in this model the COM is chassis ground, correct?
Comment: @BrownKuma If that's what you want it to be, sure. It really doesn't matter even if you're using an unnamed net, all that matters is that you keep the reference to that node (if that's your purpose). For visibility purposes, you can name that net as `CHASSIS`, and reference everything you need to be referenced to it.
Comment: I'm trying to conceptualize it correctly. I did it the other way and the simulation didn't seem right so after some research I realized there shouldn't be hardly any current going to the chassis so that should be shunted with the 1g resistor, am I correct?
Comment: @BrownKuma You have to separate the real life case to the SPICE world. In SPICE, *everything* needs to be calculated with a reference. That ref. is the ground, or the `0` (`GND`) node. And while in real life you can have a separate, floating ground, in SPICE you can't, because that separate ground needs to be referenced to `0`. The solution is to add a large enough resistor so that the currents are small to not influence the schematic, while allowing referencing to `0`. Still, even in real life, you have the finite impedance of air, various parasitics, etc.

LTSpice chassis ground or earth ground


Why Hashtable does not allow null keys or values?

Question: As specified in JDK documentation, Hashtable does not allow null keys or values. HashMap allows one null key and any number of null values. Why is this?
Comment: The Hashtable wants to enforce a contract by doing this. This contract ensures that the get(.) method applied to an hashtable will return null if and only if the key is not in the map.
Comment: Maybe this [answer](http://stackoverflow.com/a/7556445/579828) will help you.
Comment: because key can't be duplicated in a single map.
Comment: possible duplicate of [Why does Hashtable not take null key?](http://stackoverflow.com/questions/7556357/why-does-hashtable-not-take-null-key)
Answer: Hashtable is the older class, and its use is generally discouraged. Perhaps they saw the need for a null key, and more importantly - null values, and added it in the HashMap implementation.
HashMap is newer, and has more advanced capabilities, which are basically just an improvement on the Hashtable functionality. When HashMap was created, it was specifically designed to handle null values as keys and handles them as a special case.
Edit
From Hashtable JavaDoc:

To successfully store and retrieve objects from a Hashtable, the
  objects used as keys must implement the hashCode method and the equals method.

Since null isn't an object, you can't call .equals() or .hashCode() on it, so the Hashtable can't compute a hash to use it as a key.
Comment: [`ConcurrentHashMap`](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html) is a newer class but also has the restriction of not allowing null keys or values. They add this restriction for performance reasons since it's a lot of extra work to support null keys and values but probably not useful the majority of the time.
Comment: From the Answer i was expecting a reason for Why Hashtable does not allows null keys or values ? Although you are suggesting newer and older.
Comment: i think because hashtable is syncronized,it can't hold or lock null object
Answer: The main reason why Hashtable and ConcurrentHashMap do not allow null keys or values is because of the expectation that they are going to be used in a multi-threaded environment. For a minute, let's assume that null values are allowed. In this case the hashtable's "get" method has ambiguous behavior. It can return null if the key is not found in the map or it can return null if the key is found and its value is null. When a code expects null values, it usually checks if the key is present in the map so that it can know whether the key is not present or the key is present but value is null. Now this code breaks in a multi-threaded environment. Let's take a look at below code:
if (map.contains(key)) {
    return map.get(key);
} else {
    throw new KeyNotFoundException;
}

In the above code, let's say thread t1 calls the contains method and finds the key and it assumes that key is present and is ready for returning the value whether it is null or not. Now before it calls map.get, another thread t2 removes that key from the map. Now t1 resumes and returns null. However as per the code, the correct answer for t1 is KeyNotFoundException because the key has been removed. But still it returns the null and thus the expected behavior is broken.
Now, for a regular HashMap, it is assumed, that it is going to get called by a single thread, hence there is no possibility of key getting removed in the middle of "contains" check and "get". So HashMap can tolerate null values. However for Hashtable and ConcurrentHashMap, the expectations are clear that multiple threads are going to act on the data. Hence they cannot afford to allow null values and give out incorrect answer. Same logic goes for keys. Now the counter argument can be - the contains and get steps could fail for non null values for Hashtables and ConcurrentHashMaps, because another thread can modify the map/table before the second step gets executed. That is correct, it can happen. But since Hashtables and ConcurrentHashMaps do not allow null keys and values, it is not necessary for them to implement contains and get check in the first place. They can directly get the value because they know that if the get method returns null, the only reason for that is the key is not present and not because the value could be null. The contains and get check is necessary only for HashMaps because they allow the null values and thus need to resolve the ambiguity about whether the key is not found or the value is null.
Answer: The reason is the reason on the accepted answer: Hashtable is old.
However, the use of Hashtable IS NOT discouraged in favor of HashMap in every scenario.

Hashtable is synchronized, so it is THREAD-SAFE. HashMap is not.

Neither Hashtable nor ConcurrentHashMap support null keys or values. HashMap does.
If you want a drop-in replacement that doesn't require anything else than changing the class and works in every scenario, there is none. The most similar option would be ConcurrentHashMap (which is thread safe but doesn't support locking the whole table):

This class is fully interoperable with Hashtable in programs that rely
  on its thread safety but not on its synchronization details.

HashMap is a better replacement for single threaded applications or any time synchronization is not a requirement, because of the performance impact synchronization introduces.
Sources:

Hashtable
HashMap
ConcurrentHashMap
Comment: ConcurrentHashMap put: Maps the specified key to the specified value in this table. Neither the key nor the value can be null. Please, review your answer.
Comment: oops! Thank you for the heads up! I went for the obvious and thought the only difference between ConcurrentHashMap and HashMap was thread safety. Not the first time it has happened. What an akward naming convention!
Answer: so to conclude
Because in HashTable when you put an element it will take into account key and value hash. Basically you will have something like :
public Object put(Object key, Object value){

    key.hashCode();

    //some code

    value.hashCode();

}

HashTable - Does not allow null keys
This is because, in put(K key, V value) method, we have key.hashcode() which throws null pointer exception.
HashTable - Does not allow null value
This is because, in put(K key, V value) method we have if(value==null){throw new NullPointerException
HashMap allows null values as it doesn't have any checks like HashTable, while it allows only one null key. This is done with the help of putForNullKey method, which add the value to the 0th index of the internal Array every time the key is provided as null
Comment: Nonsense. Hashtable never calls `value.hashCode()`.
Answer: Default Hashtable implementation has null check which thorws null pointer exception.
Later on java developers might have realized the importance of null keys(for some default value etc) and values and that why HashMap got introduced.
For HashMap, null check is there for keys if the key is null then that element will be stored in a location where hashcode is not required.
Answer: Hashtable is a class which came with the first version of java. When it was released Java engineers tried to discourage the use of null keys or maybe did not realize its usefulness. So, they did not allow it in the Hashtable.
The put method to insert key value pair in Hashtable throws NullPointerException if value is null. Since Hashtable is based on hashing mechanism, hash is calculated for keys, which throws NullPointerException if key is null.
Later Java engineers must have realized that having a null key and values has its uses like using them for default cases. So, they provided HashMap class with collection framework in Java 5 with capability of storing null key and values.
The put method to insert key value pair in HashMap checks for null key and stores it at the first location of the internal table array. It isn't afraid of the null values and does not throw NullPointerException like Hashtable does.
Now, there can be only one null key as keys have to be unique although we can have multiple null values associated with different keys.
Answer: Hash table is very old class , from JDK 1.0
To understand this, first of all we need to understand comments written on this class by author.
"This class implements a hashtable, which maps keys to values. Any non-null object can be used as a key or as a value.
To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the
hashCode method and the equals method."
HashTable class is implemented on hashing mechanism, that's mean to store any key-value pair, its required hash code of key object. If key would be null, it will not able to given hash ,it will through null pointer exception and similar case for value
it is throwing null if the value is null.
But later on it was realized that null key and value has its own importance that is
why one null key and multiple null values are allowed in later implemented classes like HashMap class.
For  hash map null  keys will allow and there is a null check is there for keys
if the key is null then that element will be stored in a zero location in Entry array. null key we can  use for some default value..
=> Hashtable methods are synchronised it neveruses object based locking.
HashMap implements by considering it special
 static final int hash(Object key) {
        int h;
        return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
    }

Java 8 you cannot infer types for hash table.
private Map<String,String> hashtable = new Hashtable<>(); // Not Allowed

private Map<String,String> hashtable = new HashMap<>(); // Allowed

Answer: Just as @Jainendra said, HashTable doesn't allow null key for call key.hashCode() in put().
But it seems that no one clearly answer why null value isn't allowed.
public synchronized V put(K key, V value) {
    // Make sure the value is not null
    if (value == null) {
        throw new NullPointerException();
    }

    // Makes sure the key is not already in the hashtable.
    Entry<?,?> tab[] = table;
    int hash = key.hashCode();
    int index = (hash & 0x7FFFFFFF) % tab.length;
    @SuppressWarnings("unchecked")
    Entry<K,V> entry = (Entry<K,V>)tab[index];
    for(; entry != null ; entry = entry.next) {
        if ((entry.hash == hash) && entry.key.equals(key)) {
            V old = entry.value;
            entry.value = value;
            return old;
        }
    }

    addEntry(hash, key, value, index);
    return null;
}

The null check in put doesn't explain why null value is illegal, it just ensure non-null invariant.
The concrete answer for not allow null value is HashTable will call value.equals when call contains/remove.
Answer: Hashtable does not allow null keys but HashMap allows one null key and any number of null values. There is a simple explanation behind that.
put() method in hashmap does not call hashcode() when null is passed as key and null Key is handled as a special case. HashMap puts null key in bucket 0 and maps null as key to passed value.
public V put(K key, V value) {
        if (key == null)
            return putForNullKey(value);
        int hash = hash(key);
        int i = indexFor(hash, table.length);
        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }

        modCount++;
        addEntry(hash, key, value, i);
        return null;
    }

As seen in the algorithm the put() method checks if the key is null and call putForNullKey(value) and return. This putForNullKey will create a entry in bucket at 0 index. Index zero is always reserved for null key in the bucket.
On the other hand, in case of hashtable objects used as keys must implement the hashCode method and the equals method. Since null is not an object, it can't implement these methods.
Answer: HashTable - Does not allow null keys
This is because, in put(K key, V value) method, we have key.hashcode() which throws null pointer exception.
HashTable - Does not allow null value
This is because, in put(K key, V value) method we have if(value==null){throw new NullPointerException
HashMap allows null values as it doesn't have any checks like HashTable, while it allows only one null key. This is done with the help of putForNullKey method, which add the value to the 0th index of the internal Array every time the key is provided as null
Comment: The class name is java.util.Hashtable not "HashTable" !


Is there a finite amount of foxes/wolves/horkers, etc.?

Question: Since the corpses of all the wild animals I kill seem to exist in the world forever, I can't help wonder if there is limited supply of these creatures. If not, how long before new ones are created? And will the dead animal bodies ever decompose?
Comment: Have you been in the same place/area as the animals? The animal corpses may seem to exist for a long period because you've visited that place before they could despawn, making them stay spawned for longer.
Answer: I am not positive about this; some of the information with regards to respawn timings are a bit weird at the moment. From what I can tell it's around 15 in game days for respawn. I'm not sure if this is exact; it might be dependent on you not visiting the area for a certain amount of time, but I don't think this is the case. Also for corpses to decompose I believe it is about the same time.
Edit
I believe it actually takes longer for bodies to decompose then it does for creatures to respawn as I had killed a guard in game and the guard respawned but his old body was still there. It might even be that visiting an area stops the decomposing of body but not the respawning. I will do some more tests soon =)
Comment: I like how you say `some more tests` - seems like Portal has changed an entire generation to 'scientists'.
Comment: Hm...somewhere I believe I read that another guard would take the place of a dead one. But yes, I believe the respawn time is kinda random for each area
Comment: lol not if you kill all the guards in the city ;)
Answer: There are an infinite number of animals to whimsically slaughter as you see fit. The corpses you've strewn across the land will eventually despawn, but in the meantime the game is perfectly happy to spawn new innocent, unsuspecting, fuzzy little targets for your depredations.


Why does Bondy's Theorem work?

Question: Bondy's theorem says that any $n$ by $n$ matrix with distinct rows can have one column removed from it to produce a new matrix where all the rows are still distinct.  In easy terms, how does he know this?
Comment: One version I found assumed the matrix had all entries 0 or 1. Do you know the result holds for any matrix, or maybe you forgot to mention the 0,1 entries constraint?
Comment: I do know that the result holds for any matrix, but I would accept an answer for the zeros and ones case as well.
Comment: Someone-- I haven't thought about it, but it may be that the 0,1 case is equivalent to the general case anyway.
Comment: @coffeemath At first it seemed immediately equivalent to me, but then I lost my certainty.
Comment: @MattSamuel I also don't see (now) how to get from the 0,1 result to the general result. I thought of saying there are two distinct entries a,b then replacing all a's by 1 and all non-a's by 0. But then a deletion of a zero column might not correspond to rows of given matrix distinct...
Answer: This is an attempt to explain in simple terms Bondy's original proof.
Let's say that a column "links" rows $i$ and $j$ if, when you remove it, these rows become identical. And say that a column is "active" if it links at least one pair of rows (more than one is certainly possible).
Then what we want to do is to prove that there's a non-active column. If there is one, that's the one we remove. We will prove this by proving that the number of active columns is $< n$.
Using column links, you can jump from row to row, always jumping to a row which differs just in one column from where you come. Two rows are connected if you can get from one to another with such jumps. This way you can visualize rows as vertices in a graph, and all the vertices break up into disjoint connected components. The edges connecting the vertices are column links, but we should remember that the same column may participate more than once as a link (even in different connected components). We certainly have no. of active columns $<=$ no. of links, however.
Suppose now that in each connected component there are no cycles - that is, you can't start from one row, jump around and return to it and not use the same link twice. That means that each component is a tree, and a tree always has fewer edges than vertices (in fact, $m-1$ edges for $m$ vertices). So then summing over all components we get no. of links $<$ no. of vertices $= n$, and therefore the no. of active columns is also $<n$, as desired.
But maybe some components have cycles. In a cycle, you jump from one row to another using a bunch of column links and return to where you started. You don't use the same link twice, but you certainly have to use the same column twice: for example, if you modified column $i$ in the first jump, eventually you have to modify column $i$ again to get back; it'll be a different link (between different rows), but the same column. So look at any cycle, and take two links from it that are the same underlying column, and delete one of them from the graph. This will break the cycle and decrease the number of edges by $1$, but it will not lose an active column, because the second link with the same column stays. Keep doing this until there are no cycles left. Then the previous paragraph applies and finishes the proof.
Answer: A completely different and possibly more intuitive geometric approach.
Rows of the matrix determine points in $R^n$. Rows are distinct - points are distinct. Suppose that after deleting the $i$-th column two rows become the same - that means that the line between the two corresponding points is parallel to the $i$-th basis vector.
So if deleting every column makes some two rows the same, that means there are $n$ pairwise orthogonal lines among those that connect pairs of points.
But any $n$ points lie inside an $(n-1)$-dimensional subspace (affine, not linear; doesn't have to go through $0$). That subspace cannot contain $n$ pairwise orthogonal nonzero vectors.

Why does Bondy's Theorem work?


Recommendations for Slide Title Design

Question: I'm looking for design recommendations for titles on slides. My inclination is to treat it like I would a section header on a website or in print - that it should be bold and grab the reader's attention. Thus, use a heavier weight or a different font. Is this accurate, or do others have advice that might pertain specifically to titles on slides?
Answer: It depends what your slides are used for and where they will be used.
Some projects using slides are meant to be projected on a giant screen; the titles and texts need to be very clear, big, readable and have enough room to not look too busy. In this case, bold, dark, and big is better yes. Make sure there's lot of contrast, and avoid busy backgrounds.
If the slides are for LinkedIn slideshare for example, they will be very small; you'll also need to make sure it's easy to read at very small size! In this way, creating very small slides or one like the one mentioned above will require the same attention to readability.
If the slides are used for a project that will be shown on a normal computer screen, full size, you can be more artsy and use thin fonts... the same way you'd do a website or a printed flyer. This is probably the kind of slides that will leave you the most freedom to create whatever you want.
In all situations, don't forget who will look at the slides! Some market might prefer bigger and clearer kind of fonts because of potential problems with their vision, and others won't have any issue with any kind of fonts. For example, if you prepare slides for an association serving people suffering of dyslexia, it might not be wise to use certain types of script or fancy fonts!
Final tip: When you'll set up your slide template and prepare a draft for it, make a test using the longest and the shortest titles in the document! This way you'll see what space you'll need for extremely short or long titles, and everything in between will fit perfectly.
Comment: This is great - thank you! Would you mind speaking a bit more to the contrast between the title and the text of the slide. I try not to have text-heavy slides, but now that I'm looking at them with a bolder title, it looks a little heavy on the title part, rather than on the content. Is that appropriate?
Comment: @allie Where will the slides used for? Yes, it's appropriate. If it's for a presentation, I'd say the titles need to get the emphasis since the speaker will take care of mentioning the content. The goal of the title is to remind people "hey! we're talking about this right now" or to make the reader interested enough to read the content. The eyes should go first on the titles, then the content. The color should have a nice contrast with the background color too; titles in yellow, light orange, beige, etc. should maybe changed to something darker unless they're very bold
Comment: My two main applications are presentations and lectures, so if you have anything additional to add for those two areas (in case you think they should be different), it would be appreciated. Thanks for the advice!

Recommendations for Slide Title Design


How practical is it to live in Korea without a "Korean name"?

Question: I got to a portion of my Korean homework that asked me to write my name "in Korean".  I thought that was really dumb, considering the widespread use of Roman letters in Korea.  But lo and behold, there's a surprising amount of posts on the internet of people asking how to make a Korean name.  Is there a practical reason for this? Or is it just koreaboo behavior?
Answer: The widespread use of Roman letters does not mean that Koreans can pronounce non-Korean names properly. In addition, there are various languages that use Roman letters; how can a person distinguish them all? At least, I am not a genius to do so.
Making a Korean name is different from writing your name in Korean. You were asked to do the latter. Just by transcribing your name into Korean, you can help Koreans call you more accurately, type your name conveniently with Korean letters, and remember your original name.
One of my friends whose mother tongue is English has shown Koreans her name in Korean and it is just the pronunciation of her name. I would have never known how to read her name correctly if she had not written it in Korean. Now I know how to write her name in her mother tongue as well.
Comment: For instance, the name Christen might be 크리스텐, but as it is with names, it's yours...so go 크레지.


matlab: check which lines of a path are used - graphshortestpath

Question: The related problem comes from the power Grid in Germany. I have a network of substations, which are connected according to the Lines. The shortest way from point A to B was calculated using the graphshortestpath function. The result is a path with the used substation ID's. I am interested in the Line ID's though, so I have written a sequential code to figure out the used Line_ID's for each path.
This algorithm uses two for loops. The first for-loop to access the path from a cell array, the second for-loop looks at each connection and searches the Line_ID from the array.
Question: Is there a better way of coding this? I am looking for the Line_ID's, graphshortestpath only returns the node ID's.
Here is the main code:
for i = i_entries
    path_i = LKzuLK_path{i_entries};
    if length(path_i) > 3 %If length <=3 no lines are used.
        id_vb = 2:length(path_i) - 2;
        for id = id_vb
            node_start = path_i(id);
            node_end   = path_i(id+1);
            idx_line = find_line_idx(newlinks_vertices, node_start, ...
                node_end);
            Zuordnung_LKzuLK_pathLines(ind2sub(size_path,i),idx_line) = true;
        end
    end
end

Note: The first and last enrty of path_i are area ID's, so they are not looked upon for the search for the Line_ID's
function idx_line = find_line_idx(newlinks_vertices, v_id_1, v_id_2)
% newlinks_vertices includes the Line_ID, and then the two connecting substations
% Mirror v_id's in newlinks_vertices:
check_links = [newlinks_vertices; newlinks_vertices(:,1), newlinks_vertices(:,3), newlinks_vertices(:,2)];
tmp_dist1 = find(check_links(:,2) == v_id_1);
tmp_dist2 = find(check_links(tmp_dist1,3) == v_id_2,1);
tmp_dist3 = tmp_dist1(tmp_dist2);
idx_line = check_links(tmp_dist3,1);
end

Note: I have already tried to shorten the first find-search routine, by indexing the links list. This step will return a short list with only relevant entries of the links looked upon. That way the algorithm is reduced of the first and most time consuming find function. The result wasn't much better, the calculation time was still at approximately 7 hours for 401*401 connections, so too long to implement.
Answer: I would look into Dijkstra's algorithm to get a faster implementation. This is what Matlab's graphshortestpath uses by default. The linked wiki page probably explains it better than I ever could and even lays it out in pseudocode!


Get request on a SharePoint list

Question: I'm trying to get elements of a Sharepoint list with VBA to show and use them in an Excel sheet.
The normal get request on MSXML2.ServerXMLHTTP60
Dim xmlObj as Object
Dim sUrl as String

sUrl = "http://<SarepointUrl>/_api/web/lists/GetByTitle('<listTitle>')/items"
Set xmlObj = NEw MSXML2.ServerXMLHTTP60

xmlObj.Open "GET", sUrl, False
xmlObj.setRequestHeader "Content-Type", "text/xml; charset=UTF-8"
xmlObj.send
Debug.Print xmlObj.responseText

responds with an exception:

System.UnauthorizedAccessException Access denied. You don't have permissions to perform this action.

I tried to reach the xml with an InternetExplorer object, navigating to the url of the request:
.../getbytitle('listTitle')/items

but this page on internet explorer is treated like an html page. I can take its content with InternetExplorer.Document.body.outerText and I would have a string with all the xml but I can't parse it in a real xml to extract datas.
Dim argUrl As String
Dim getUrl As String
Dim oHTMLDoc As HTMLDocument
Dim oXml As MSXML2.DOMDocument60
Dim objIE As New InternetExplorerMedium

argUrl = "https://<SharepointUrl>"

objIE.Visible = False
objIE.Silent = False
objIE.Navigate (argUrl)
objIE.Visible = False
Application.StatusBar = argUrl & " is loading. Please wait..."
Do While objIE.ReadyState = 4: DoEvents: Loop
Do Until objIE.ReadyState = 4: DoEvents: Loop

getUrl = "https://<SharepointUrl>/_api/web/lists/GetByTitle('ListTitle')/items"

objIE.Navigate (getUrl)
Application.StatusBar = getUrl & " is loading. Please wait..."
Do While objIE.ReadyState = 4: DoEvents: Loop
Do Until objIE.ReadyState = 4: DoEvents: Loop

Set oHTMLDoc = objIE.Document
Set oXml = New MSXML2.DOMDocument60

sXML = oHTMLDoc.body.outerText
Debug.Print sXML

'at this point it doesnt load the string as an XML because maybe this method (loadXML) needs an xml file instead of a string'
If oXml.LoadXML(sXML) Then
    Debug.Print "IF"
    Set nodeXML = xmlDoc
End If

Anyone has been able to solve all these problems to make a get request on a sharepoint list with vba?
Comment: sample code needed most likely
Comment: I've added some code as exemple
Answer: You may try this:
Sub GetItems()
    Const sUrl As String = "http://server/_api/Web/Lists/getByTitle('Parent')/items"
    Dim oRequest As WinHttp.WinHttpRequest
    Dim sResult As String
    'On Error GoTo Err_DoSomeJob

    Set oRequest = New WinHttp.WinHttpRequest
With oRequest
    .Open "GET", sUrl, True
    .setRequestHeader "Content-Type", "application/json"
    '.setRequestHeader "Accept", "application/json"
    .SetCredentials "domain\user", "pw", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
    .send
    .waitForResponse
    sResult = .responseText
    Debug.Print sResult
    sResult = oRequest.Status
    Debug.Print sResult
End With
End Sub

Comment: With this code I get status 403 Forbidden and an XML with an Exception: _"System.UnauthorizedAccesException. Access denied. You do not have permissions to perform this action or access this resource."_
But I wanted to access sharepoint list with the same credentials with which I'm logged in Microsoft Office
Comment: Have you update the "domain\user", "pw"? as the code works in my PC which host same domain with SharePoint.
Comment: Yes. And if I first open the sharepoint from InternetExplorer it can also navigate to the REST page with my datas but with an InternetExplorer object I can't do a get request

Get request on a SharePoint list


Searing Sous-vide with electric heat gun

Question: After looking at various searing approaches incorporating the use of gas torches I wondered if heat guns might be a useful tool for searing. Heat guns are relatively inexpensive and have various tips to adjust the heat pattern. Having used both tools I believe the heat gun might be easier to use in this application. An inexpensive variable output gun can attain either 750  or 1000 degrees F. Has anyone tried this approach?
Answer: I doubt that it will work. A butane torch can provide a temperature of up to 1700K (1,430 °C; 2,600 °F) (according to Wikipedia), whereas I haven't seen any electric ones claiming to go above 600°C (1100°F).
While 600°C seems plenty warm to get a decent Maillard reaction going, it will take much longer than with a higher temperature, and you will probably dry out the underlying layers.
(The 'Searzall' looks like a modified butane torch, rather than an electric heat gun.)
Answer: Yes. The crew at Momofuku in New York invented a heat gun called the Searzall for exactly this purpose. Bon Appetit has an article on it; they're raising production funds through Kickstarter.
Comment: As Popup mentions in his answer, the Searzall is a torch, not an electric heat gun.
Comment: "Electric" is specified in the title of the question. But of course now we are beating a dead horse.
Comment: True, @DrRandy. But on the other hand (s)he talks about a 'heat gun' as an alternative to a 'gas torch'. I can't think of any other alternatives, that would apply here. (Although, re-reading the OP again (and again, and again) I concede that depending on parsing, there's maybe no strict dichotomy in it between the two terms.)


Total coloring conjecture for Cayley graphs

Question: The total coloring conjecture (TCC) states that any total coloring of a simple graph $G(V,E)$ has its total chromatic number bounded as $\chi^{T}(G)\le \Delta+2$ where $\Delta $ is the maximal degree of its vertices. The conjecture is open for many graphs albeit has been proved for several classes of graphs like complete graphs, trees, cycles, multipartite, graphs of maximum degree $3,4,5$, planar graphs of maximum degree greater than or equal to $6$  and some graphs of high degree. My question pertains to the conjecture for Cayley graphs. In order to prove the result for Cayley graphs, for, say, the Cayley graphs of Abelian groups, Can we take the help of structure theorem for finitely generated abelian groups, like, say, since finitely generated abelian groups are products of cyclic groups up to isomorphism, and, suppose, we are able to prove the TCC for Cayley graphs of cyclic groups with respect to a suitable generator set, then, could we extend it to Cayley graphs of all finitely generated abelian groups with generating set as the cartesian product of the individual generating sets? Any thoughts on this approach?
Comment: There is a [proof of Total coloring conjecture on arxiv](https://arxiv.org/abs/2003.09658). posted on 2020 but I am not aware of its correctness.
Comment: @C.F.G yes, I am aware of it. But, the arguments seem clumsy there
Answer: Kindly refer recent post in arxiv.org in total colorings and survey.
Partial results are available for some classes of Cayley graphs. That is some classes of cayley graphs are type-I and some of them are type-II.
For example, some classes of power of cycle graphs and its complements are classified as type-I and type-II.
Total coloring conjecture is true for unitary Cayley graph and some circular graphs.


Arguments for execl compiling with gcc

Question: I have a weird problem with a Raspberry Pi 2 (model b).
I'm compiling the following program in GCC in Raspbian Jessie (Linux raspberrypi 4.4.11-v7+ #888 SMP Mon May 23 20:10:33 BST 2016 armv7l GNU/Linux). I have a standard HDMI TV dual output with a Waveshare 3.2" LCD (only 'weird' thing I did).
I'm trying to get omxplayer to run (in a way that I can kill), but it doesn't seem to be launching. I've deleted most of the code, and this is about how far I can get with it still not launching. If I delete any of the earlier variables, then it works as expected. Anyone have a clue what's going on? Any advice on getting it up and running with a bigger program?
<code>#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main()
{
   int xres, yres;
   int buttonCoords2[4] = {2,3,4,5};
   int      button2= 1;
   int      button3= 1;
   int      button4= 1;

   xres = 320;
   yres = 240;

   pid_t pid = fork();
   if (pid==0) {
      execl("/usr/bin/omxplayer", "omxplayer", "-p", "-o", "hdmi", "/home/pi/Short.mp4");
      exit(127);
   }
   else {
      waitpid(pid, 0, 0);
   }
}
</code>
Answer: Turns out I was missing a NULL at the end of the execl statement.  The line should have read:
<code>execl("/usr/bin/omxplayer", "omxplayer", "-p", "-o", "hdmi", "/home/pi/Short.mp4", NULL);
</code>
Though technically, (char *) 0 would have been more appropriate.

Arguments for execl compiling with gcc


Can one do tikun chatzos without waking up at midnight

Question: If one is up til halachic midnight, does one have to go to sleep to say tikun chatzos or can one recite it anyway.
Comment: I've heard from Rabbi YY Jacobson that one can say Tikkun Chatzos before one goes to bed, but Rebbe Nachman (who has his own shitah on the definition of night chatzos anyway) says that the ikkar of Tikkun Chatzos is the breaking of one's sleep, ergo waking up is a necessary component. I'd say there are different positions on this, but lacking the explicit sources right now I can't write a proper answer.
Comment: Possible duplicate: [Why wake up for tikkun chatzot instead of staying up for it](https://judaism.stackexchange.com/q/86993/1368)
Answer: It's hard to prove a negative. But I just reviewed the halachot of Tikkun Chatzot in Yalkut Yosef 1:17-34 and there is not even mention of sleeping beforehand, although indirectly it does say in 1:17 that "every devout Jew should rise...", which at most sounds like an assumption that people are likely to be asleep at midnight, not that they must be asleep in order to fulfil the mitzva of Tikkun Chatzot. In fact, 27 says:

"If someone realizes that if he says tikkun chatzot before
sleeping (קודם שילך לישון), he will not be able to get up in the
morning in time to pray shacharit at netz, it is still better to
recite tikkun chatzot..."

So I don't think there is any issue. But please ask your rabbi.


deployment, IN BOUND DATA SET ERROR

Question: I have few changes to be made from one sand box to another, when i do that i am getting quick action error in inbound data sets when i validate, but now the problem is now the source destination is refreshed and i cannot go back to see the dependencies for the error.Is there any way to leave that one item and continue with deployment?
Answer: No thats not possible. unless you have any other backup you can't make change in change set or Salesforce doesn't allow you to deplly only selected files.

deployment, IN BOUND DATA SET ERROR


IOS parse JSON data in another thread?

Question: I am currently working on an application which is parsing some JSON data in the APPdelegate class when the location is changed.
My question is: " How is the most appropriate way doing it ?" Currently when it is parsing the data the application is "frozen" until the data has been loaded.
I need some advice :)
Thanks
Answer: There are several ways of course, including NSThread, NSOperation and old-fashioned libpthread. But what I find the most convenient (especially for simple background tasks) is libdispatch also called Grand Central Dispatch.
Using dispatch queues you can quickly delegate a time-consuming task to a separate thread (or more precisely, execution queue - GCD decides whether it's a thread or an asynchronous task). Here's the simplest example:
// create a dispatch queue, first argument is a C string (note no "@"), second is always NULL
dispatch_queue_t jsonParsingQueue = dispatch_queue_create("jsonParsingQueue", NULL);

// execute a task on that queue asynchronously
dispatch_async(jsonParsingQueue, ^{
    [self doSomeJSONReadingAndParsing];

    // once this is done, if you need to you can call
    // some code on a main thread (delegates, notifications, UI updates...)
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.viewController updateWithNewData];
    });
});

// release the dispatch queue
dispatch_release(jsonParsingQueue);

The above code will read JSON data in a separate execution queue, not blocking the UI thread. This is just a simple example and there's a lot more to GCD, so take a look at the documentation for more info.
Comment: Nice way doing it :) i will look more into it :)
Answer: Use NSOperation to handle it.
You may follow this tutorial: http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/
And apple document: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperation_class/Reference/Reference.html
Answer: You will want to use NSURConnections and fetch data asynchronously (or a third party library like ASIHTTPRequest) to bring your data. If you do everything in your main thread your User Interface will freeze till it handles dowloading&parsing ect. So, take a look at iOS Multithreading. And a last point, Locations Sample code  of Apple gives exactly what you want:)

IOS parse JSON data in another thread?


How to set window size and location of an application on screen via command line?

Question: I want Firefox window to be opened in a specific size, and location on screen using a shell command, for example:
firefox myfile.html size 800x600 location bottom-left

Is there such a command?
Comment: I managed to do this (with the help of this forum), although if you find any other solution, please tell me as it will probably be more robust: http://unix.stackexchange.com/questions/40209/send-keystroke-to-process
Comment: Also related: [Setting the window dimensions of a running application - Unix & Linux Stack Exchange](http://unix.stackexchange.com/questions/5999/setting-the-window-dimensions-of-a-running-application)
Answer: Here is a community version of the answer by Yokai that incorporates examples offered by Rudolf Olah.

You can use the tool called xdotool to control window size and location. Not only that, any script you write in bash, using xdotool, can be setup to work with a fully maximized window and it can be scripted to set the window size and x:y coordinates by manipulating the mousemove and click commands.

Find the window ID:
xdotool search --onlyvisible --name firefox

Set the window size
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT

Move the window
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y

For example, if the window id for firefox is 123 you would do this:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080

The bottom-left positioning will have to be figured out based on your screen resolution.
Comment: xdotool allows you to chain several commands together. so you could do:
`xdootool search --onlyvisible --name firefox windowmove 100 100`
Comment: There's a bug with `xdotool`, `wmctrl` etc.. and Ubuntu, XFCE (that I have): if the window has already launched in full screen mode, you can't move it anymore: https://bugs.launchpad.net/ubuntu/+source/unity/+bug/971147
Comment: I don't see this bug in Ubuntu 19.10.  It's interesting that the other answer, which says that it's impossible, has 20 upvotes.
Comment: This still works well enough, but, if a window has a decoration (like firefox has) it is being treated as part of the window, leaving you with a window slightly smaller than intended.
Comment: Is there a way to move the window such that the *client* area of the window starts at the given coordinates, not the window *border*?
Answer: As far as I know, this is not possible as Firefox does not accept commands to control the window. That's also (mostly) the responsibility of the window manager, so I doubt that there ever will be parameters to do that. However, you can control the window with wmctrl, but that's going to be a little bit difficult:
#!/usr/bin/env bash

firefox -new-instance -new-window "http://www.reddit.org" &

# Process ID of the process we just launched
PID=$!

# Window ID of the process...pray that there's
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
        WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250

There might be more clever ways to do it, and there are some interoperability issues with Firefox (e.g. that no other instance is running) but it should get you going.
Comment: Just a little note. The resizing won't work if the window is maximized. So you have to deactivate this property first with:
wmctrl -i -r $WID -b remove,maximized_vert;
wmctrl -i -r $WID -b remove,maximized_horz;

After that I was able to resize the Firefox window.
Comment: Thanks for your answer! On Ubuntu 18.04.3 I had an error with the code; suggest shebang `#!/bin/bash` at beginning of code for concerned users.
Answer: This doesn't solve the problem of the position, but at least you can set dimensions :
firefox -width 200 -height 500

Answer: In the past I have created an HTML document that would set the window size with Javascript then redirect to the page I wanted. It's a stupid hack but, hey, it works.
Comment: Looks like this doesn't work anymore. Apparently, window.resizeTo only has an effect if the window is a popup created via window.open.
Answer: I do this all the time. I use DevilsPie2, however, because it's more robust. It uses the LUA scripting language, which isn't very difficult.
Here's my lua script for Thunderbird, which I want to open on the far left monitor (laptop screen) when it opens:
if (get_window_name()=="Mozilla Thunderbird") then
   pin_window()
   set_window_geometry( 50, 10, 1220, 780 )
end

where 50 = X coordinate (for upper-left corner of the window)
      10 = Y coordinate ( " " )
    1220 = window width
     780 = window height

To set this up, you create a directory in your home configuration (on Ubuntu-like distributions) named devilspie2, eg /home/$USERNAME/.config/devilspie2
For Thunderbird, I created thunderbird.lua, though the filename doesn't matter. I have a different filename for each application though you can put everything into one script file if you wish. Set devilspie2 to start automatically when you login, eg /home/$USERNAME/.config/autostart/devilspie2.desktop
Here's a link to a good page about various options available to your lua script: https://github.com/gusnan/devilspie2/blob/master/README
One note: The scripts don't have to be executable. Mine are 664 and work fine. A few of the other programs I control are openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload, & yad. I use pin_window on them so they appear on all desktops, plus other commands depending on the application.
Comment: Doesn't seem to works with LXDE. Absolutely no window event is recognized (nothing is printed when running `devilspie2 --debug`)
Answer: I don't think this is possible by shell commands only, cause it has nothing to do with your windowmanager.
I heard of wmctrl and devilspie which can effect this. But I doubt there is a way to achieve that as simple as you wrote in your example.


band pass filter on solar cell to detect laser

Question: my target is detecting a laser generated with 1k frequency using a solar cell, i'm using this idea which is using a band pass filter on the solar cell to block the dc sun light and let me detect the laser, the problem is that i'm completely lost for how i would implement this in a circuit
i've calculated the RLC band pass filter to have 3kohm, .22h and .1uf, which is not bad to start with

the solar panel i'm using is Mini Solar Panel 6V/250mA
but as i'm inexperienced in this field i'm kinda lost, so please either gimme answers or simple schematic
bunch of questions :
q1- is the filter going to remove the dc volt coming from the sun and only leaves me with analog signal of 1k frequency ? aka if the sun will gimme 5v and the laser effect will be 20mv then will the filter o/p be +-20mv square/sin wave ?
q2- i'm using microcontroller to read this input so how much current would that produce if i'm using the following schem.., do i need a resistor to limit the current and how would it affect the wave
Comment: possible duplicate http://electronics.stackexchange.com/questions/80801/using-a-solar-panel-for-laser-light-detection
Comment: @MarkoBuršič I think it's okay. This contains specific design considerations and expands. I don't like the gimme answers part though.
Comment: I wish everyone who posted a crap video on youtub had to sit in here & answer all the duplicate questions that it spawns. In the end, user3761832, a pv cell IS NOT the best way to detect a laser in sunlight. A photoresistor, photodiode, or phototransistor, that is either tuned to the laser's wavelength, or has an optical filter that's tuned to the laser's wavelength is way better than a pv cell, and is less likely to be saturated beyond functioning by spurious light artifact. The 1KHz laser modulation helps with a small part of this, but when the "right" parts are _cheaper_, don't waste $$$.
Answer: You could just do two passive RC's in series.

simulate this circuit – Schematic created using CircuitLab
I've made it a bit wide and sloppy... you can play with the capacitor values.  The first part is a high pass with a 1 ms time constant ~160 Hz, the second is a low pass with a 10 us time constant. ~16kHz.  You want to keep the second R big so it doesn't load the first stage.


Using a digital pin out for a buzzer

Question: I am developing a product using the BLE NANO (nrf51822).  Here is a pin out diagram:
I was following some tutorials and they said to use PWM out of an analog pin to make sounds with a buzzer (I was debating on using  po_29 for this).  Currently I am using a digital pin out for an LED though (po_28) and I thought I'd try hooking the buzzer up to that.  When I did the buzzer made noises just as expected.  So my question is: is there a reason to use an analog pin / PWM for a buzzer or is it the same as just using a digital pin?
Comment: Please, tell us what is the device to where you connected your buzzer? Maybe some common microcomputer? Port name, number, pin number or a schematic diagram is welcome to avoid downvotes and to get other answers than nasty comments. Edit your question, do not add a comment!
Comment: Alright I updated the question, is there any more info I should include?
Answer: All PWM outputs of microcontrollers that I have seen have been digital.  What would a analog PWM output even mean?  Maybe allow you to set the high and low voltage levels?  I have not heard of such a thing being integrated into a microcontroller PWM output, probably because there wouldn't be much use for it.
Your question is therefore based on a false premise, and can't be answered directly.  To drive a speaker to make a fixed tone, the PWM output of a micro can be appropriate.  These are always digital.  The circuit then takes this digital signal and uses it to apply and not apply voltage to the speaker, or in some cases flip between two voltages.
Comment: Alright thanks for clarifying that the PWM would be digital.  So to clarify, I can use any of the digital pins to PWM to the buzzer and change the tone?
Answer: If the buzzer is DC type applying the DC voltage will make it sound, some or speaker type which need a audible range frequency, so using PWM you can generate this tone
Comment: So to clarify, I can use PWM off a digital pin to adjust the tone?  Is there a rule for how it will affect the tone (like increasing the duty cycle will increase the pitch?)
Comment: yes, if you buzzer is pizeo speaker you need to use pulse wave in the range of 20 - 20KHz, pitch corresponds to frequency, PWM operates in single frequency with varying duty cycle, by which you might get different musical tone
Answer: Dont fix it if it's not broken. A DC buzzer needs only continuous DC. Silence the buzzer by turning that DC off.

Using a digital pin out for a buzzer


Why do we need to estimate eigenvalues?

Question: I am not working in signal processing field, but recently I happen to read a paper which estimates source numbers using Gerschgorin radii, and I feel kind of confused about why we need to estimate eigenvalues (this might be a silly question in your point of view). I google it and some answers say the reason is that it is hard to get eigenvalues in some cases. But I still feel confused. It seems to me that we can directly calculate some or even all the eigenvalues even though the matrix is in relatively huge sizes, for example, $1000\times 1000$, with the formulation $AA^T x=\lambda x$, which can be done in a few second in Matlab. Is there anything wrong with the way I think?
Answer:
It seems to me that we can directly calculate ... which can be done in a few second in matlab.

Who says that Matlab is calculating it directly, or that it isn't using Gershgorin's circle theorem in its algorithm?  Can you look at the code to see what they're doing?
Finding the eigenvalues of an $n \times n$ matrix is tantamount to factoring an $n^{th}$-degree polynomial.  Factoring any polynomial of degree greater than $n = 4$ is an iterative process, which works better if you can start with a good guess at the roots.
So, when Matlab does an eigenvalue decomposition of your $1000 \times 1000$ matrix, it is not "directly calculating" it -- it's guessing at values, then refining guesses, then reducing the matrix, etc., etc.
Pursuant to that, Gershogorin's circle theorem looks like a handy way to not only do get a set of initial guesses, but to bound the set of possible eigenvalues in a manner that's easy to test for if your algorithm starts to stray.

Is there anything wrong with the way I think?

I would say that believing that typing something into Matlab and getting an answer is the same thing as directly calculating it is an extreme error in thinking.  Someone knows how to solve the problem - you hope.  But if all you know how to do is press buttons in Matlab and get an answer, the set of persons who really know how to solve the problem doesn't include you.
Comment: Your answer help, thank you.But you are so mean by the way. I think that you also started learning things from pressing a button in your student time.
Comment: We didn't have Matlab when I was a student.  If you wanted comupter-aided design, you either needed to be a graduate student, or you needed to write it yourself.  Packages like Matlab are a great way to develop insight, but there's entirely too many people out there that think that knowledge can stop at the outer edge of what Matlab offers.
Answer: We do use eigenvalues, because they behave like invariants in linear systems (invariant inputs are well connected to outputs) and generally finding invariants of unknown or model systems provides a great deal of information on how they act on other inputs.
Most problems solved using methods based on eigenvalues rely on some technical hypotheses, related to the properties of signals and noises. They are often modeled with statistical models (stationarity, second-order properties) from which one can derive quantities like the number of sources, the power of the noise...
Now, from the actual observations you have recorded, you will have to compute estimators of the theoretical covariance matrix, and this will be affected by biases, errors and model mismatch. As a results, the eigenvalues are only estimates as well.
Even if there exist some algorithms to solve part of the problem (diagonalizing a matrix) with arbitrary precision in a numerical analysis sense, this does not entail that you have exactly identified the actual signal processing system you were studying.
Then, as answered by @TimWescott, also come all the computational issues.
Comment: Thanks for your help

Why do we need to estimate eigenvalues?


Multiple voltage dividers

Question:
So I have this circuit. I've been trying to figure out Vout. I couldn't find a specific formula for this situation. Can anyone help me figure out the formula? Thank you.
Answer: In 1, below, the two 500 ohm resistors are in series, so they add to an equivalent resistance of 1000 ohms.
That 1000 ohms is in parallel with the 1000 ohm resistor, making the total resistance of the series-parallel network 500 ohms, as shown in 2.
In 2, the 500 ohm net is in series with the 1500 ohm resistor so they add to 2000 ohms. That 2000 ohms is in parallel with the 2000 ohm resistor, making the total resistance equal to 1000 ohms, as shown in 3.
In 3 we have the 1000 ohm net in series with 1000 ohms, creating a voltage divider with an output voltage equal to half of its input, or 3 volts.
In 4. we have redrawn 2, and we can use the 6 volts we got in 3 as the input to the 1500+500 ohm voltage divider, which will give us an output of 1.5 volts.
In 5 we have reconstructed 1, and with the voltage we got from 4 and, as in 4, we can find the voltage originally being sought, which is 0.75 volts.
Comment: Can we solve this using Nodal analysis and Kirchhoff's Laws? or else you have already used above and i am unable to recognize.
Answer: Work backwards from the output towards the input and calculate the equivalent resistance for first the 1k resistor, then the 2k resistor.
Then calculate the voltage drop for each stage of voltage divider.
Comment: Note that you can figure this out in your head - the numbers are extremely easy to work with.  Please work it out for yourself and show your work.  After you have done that, I'll show you the shortcuts that I used.  It's **really** easy.
Comment: Thank you very much. Took me some time but finally figured it out. I did it like shown in the image. Got equivalent resistance for the first resistance and the second 1k resistor. Next I just divided it up into three voltage dividers and got the answer of 750mV. ![Image](http://i.imgur.com/jp3f7M0.png)
Comment: Oops wrong one. http://i.imgur.com/gJhBJkY.png
Answer: This isn't a direct answer, but if you are trying to figure our the formula, then you could use some kind of simulation software. Build the circuit and add the necessary voltage measurements you consider relevant. Once you add places to measure voltage, run the solver and check the values it outputs. Take note of them and use them as a reference. Work your way through the problem checking the numeric answer against the solver's.
As a side note, only Dwayne's answer is correct. You don't have three simple voltages dividers. Each step is a voltage divider with some cascading parallel resistances.
Comment: He's already using that http://www.falstad.com/circuit/ in case you didn't recognize the graphics.
Comment: @RespawnedFluff Sorry! I did not recognize them. I had never before heard of falstad. Thanks.

Multiple voltage dividers


Why do axiomatic systems for propositional calculus include IFF axioms?

Question: I am reading : https://en.wikipedia.org/wiki/Propositional_calculus#Axioms, and the following three axioms seemed unnecessary to me:
$$
 IFF-1 : ( \phi \iff \chi ) \implies (\phi \implies \chi ) \\
 IFF-2 : ( \phi \iff \chi ) \implies (\chi \implies \phi ) \\
 IFF-3 : ( \phi \implies \chi ) \implies ( ( \chi \implies \phi ) \implies ( \phi \iff \chi ) )
$$
I understand how they would define an $ \iff $ operator, but wouldn't you always be able to substitute $(\phi \implies \chi) \land (\chi \implies \phi)$ for $ (\phi \iff \chi) $ in any proof? From $(\phi \implies \chi) \land (\chi \implies \phi)$ and the three $\land$ axioms you can recover the three $\iff$ axioms. In this scheme $ (\phi \iff \chi) $ in proofs would be notation for ($\phi \implies \chi) \land (\chi \implies \phi)$.
You would end up with an equivalent notion with three fewer axioms and one fewer operator in the system.
Comment: If your goal is to minimize the number of axioms and operators, you should stick to the [Sheffer stroke](https://en.wikipedia.org/wiki/Sheffer_stroke#Calculus) with its single axiom and single inference rule. Who needs wasteful luxuries like $\land$, $\lor$, $\neg$, or $\implies$?
Comment: usually redundant axioms are listed, for example in zfc some of the axioms can be derived from the others
Comment: The game is not always to minimize the number of axioms and operators. Sometimes (a lot of times?) the game is to maximize human comprehension. This might lead to extra symbols, such as the $\iff$ symbol, which I find quite useful in understanding mathematics.
Answer: Firstly, let us make clear that there are many different but equivalent sets of axiom schemata for propositional calculus, which serve the same purpose: from them, we can prove the same theorems. Some of them include only the least possible number of axiom schemata. Others have redundant axiom schemata, that can be proved from the rest and thus, are not really necessary. However, there is a subtle point here: you have to introduce more axioms, in order to include in a formal language, more primitive symbols, like logical connectives. For example, see the following set of axioms, from Jan Łukasiewicz:

$p\rightarrow\left(q\rightarrow p\right)$
$\left[p\rightarrow\left(q\rightarrow r\right)\right]\rightarrow\left[\left(p\rightarrow q\right)\rightarrow\left(p\rightarrow r\right)\right]$
$\left(\neg p\rightarrow\neg q\right)\rightarrow\left(q\rightarrow p\right)$

From these three schemata and using modus ponens as the only inference
rule, one can prove all the tautologies of propositional calculus.
There is no redundant axiom schemata here. If any of them is removed,
the system will not work. Note that only two logical operations are
used in the system: negation "$\neg$" and material implication
"$\rightarrow$". The other usual logical operation symbols, could
be seen as abbreviations:

Conjunction "$p\wedge q$" is an abbreviation for "$\neg\left(p\rightarrow\neg q\right)$".
Disjunction "$p\vee q$" is an abbreviation for "$\neg p\rightarrow q$".
Biconditional "$p\leftrightarrow q$" is an abbreviation for "$\neg\left[\left(p\rightarrow q\right)\rightarrow\neg\left(q\rightarrow p\right)\right]$".

Etc. A crucial point here, in respect of your question, is that abbreviations do not belong to the formal language. One can use these symbols in order to make an expression or a proof more readable and shorter. However, a strictly formal expression, does not include them.
For another example, lets take J. Barkley Rosser's system:

$p\rightarrow p\wedge p$
$p\wedge q\rightarrow p$
$\left(p\rightarrow q\right)\rightarrow\left[\neg\left(q\wedge r\right)\rightarrow\neg\left(r\wedge p\right)\right]$

Again, modus ponens is the only inference rule and there are not any redundant axiom schemata. We see three logical
operations here. However, in Rosser's system, only negation and conjunction
are primitive symbols, while material implication
is informal:

"$p\rightarrow q$" is an abbreviation for "$\neg\left(p\wedge\neg q\right)$".
"$p\vee q$" is an abbreviation for "$\neg\left(\neg p\wedge\neg q\right)$".
"$p\leftrightarrow q$" is an abbreviation for "$\neg\left(p\wedge\neg q\right)\wedge\neg\left(q\wedge\neg p\right)$".

Rosser's axiom schemes, in the formal language of his system, should look like this:

$\neg\left[p\wedge\neg\left(p\wedge p\right)\right]$
$\neg\left[\left(p\wedge q\right)\wedge\neg p\right]$
$\neg\left[\neg\left(p\wedge\neg q\right)\wedge\neg\neg\left[\neg\left(q\wedge r\right)\wedge\neg\neg\left(r\wedge p\right)\right]\right]$

Also, modus ponens should look like this:
$$\dfrac{\begin{array}{c}\neg\left(p\wedge\neg q\right)\\p\end{array}}{q}$$
Now, if you need more primitive logical connectives, you need more
axiom schemata also. Stephen Cole Kleene proposes the following 13
axiom schemata for all the usual connectives $\neg$, $\wedge$, $\vee$,
$\rightarrow$ and $\leftrightarrow$:

$p\rightarrow\left(q\rightarrow p\right)$
$(p\rightarrow q)\rightarrow\left(\left[p\rightarrow(q\rightarrow r)\right]\rightarrow(p\rightarrow r)\right)$
$(p\rightarrow q)\rightarrow\left[(p\rightarrow\neg q)\rightarrow\neg p\right]$
$\neg\neg p\rightarrow p$
$p\rightarrow(q\rightarrow p\wedge q)$
$p\wedge q\rightarrow p$
$p\wedge q\rightarrow q$
$p\rightarrow p\vee q$
$q\rightarrow p\vee q$
$(p\rightarrow r)\rightarrow\left[(q\rightarrow r)\rightarrow(p\vee q\rightarrow r)\right]$
$(p\rightarrow q)\rightarrow\left[(q\rightarrow p)\rightarrow(p\leftrightarrow q)\right]$
$(p\leftrightarrow q)\rightarrow(p\rightarrow q)$
$(p\leftrightarrow q)\rightarrow(q\rightarrow p)$

From this Kleene's system, if you don't need the biconditional as
a primitive symbol, you can remove schemata 11-13, which are the 3 IFF schemata that you mention in your question. So, you get a shorter
set of 10 axiom schemata, for the connectives $\neg$, $\wedge$,
$\vee$ and $\rightarrow$. Then again, if you don't need disjunction
as a primitive symbol either, then you can also remove schemata 8
and 9. Now, you have a set of 8 axioms for the connectives $\neg$,
$\wedge$ and $\rightarrow$. Further more, if you don't need conjunction
as a primitive symbol either, then you can also remove schemata 5-7.
Now, you have a set of 4 axioms for the connectives $\neg$ and $\rightarrow$.
This is as far as you can go, with this system.
A second crucial point, is that, as far as modus ponens is the only
rule of inference, substitutions of composite parts of a formula, which contain logical operations, with other formulas, are not allowed in a completely formal proof. Since abbreviations
are informal anyway, most writers feel free at any time to replace
a formal expression with the abbreviation, or vice-versa. But, in
a strictly formal proof, every formula is either an axiom (or an axiom schema, in propotitional calculus), a hypothesis, a repetition of a previews formula or it follows from two previews formulas by application of modus ponens. Thus, unless you have substitution as an inference rule, you can not use it.
However, in order to make things simpler, one could prove the substitution theorem: Let $p_{1},p_{2},...,p_{n},q,r$ be statements and let $w$ be built
up out of some or all of the previews, occurring one or more times,
by means of the primitive connectives only. Let $v$ be the result
of replacing some or all occurrences of $q$ in $w$ by $r$. Then,
substitution theorem states that:
$$\text{If }\vdash w\text{ and} \vdash q\leftrightarrow r\text{, then }\vdash v\text{.}$$
It will take to much space to include the whole analysis here, but the proof of substitution theorem is such that allows you, by following specific rules, to transform a proof which uses the substitution theorem, to a completely strict formal proof, where every formula is either an axiom, a hypothesis, a repetition of a previews formula or follows from two previews formulas by application of modus ponens. Then, one feels confident to write shorter proofs with the help of substitution theorem, knowing that he can get the strict form in any time, with an algorithmic procedure.
Comment: @DougSpoonwood Lukasiewicz created more than one system. The one in my answer is in D. Hilbert and W. Ackermann, "Principles of Mathematical Logic", Chelsea Publishing Company, New York 1950. See Ch.1, sec. 10, p. 29. The first two axiom schemata is from Frege's system. Lukasiewicz showed that Frege's system can be replaced by the above. You can also find it in [wikipedia](https://en.wikipedia.org/wiki/Propositional_calculus).
Comment: "A second crucial point, is that, as far as modus ponens is the only rule of inference, substitutions of parts of a formula with other formulas, are not allowed in a completely formal proof."  In Lukasiewicz's systems and some other authors, substitutions *are* allowed.  Furthermore, they come as *required* to produce formal proofs of many theorems/theses.
Comment: "But, in a strictly formal proof, every formula is either an axiom schema, a hypothesis, a repetition of a previews formula or follows from two previews formulas by application of modus ponens. "  If you have axiom schema, then you need to instantiate the schema into axioms in order to prove certain theorems.
Comment: @DougSpoonwood  I am talking of substitutions of parts of a formula that are formulas themself. Not of substitutions of the propositional variables with other propositional variables or formulas. I will edit this point to make it more clear. If that is allowed, then modus ponens is not the only rule of inference. For the second comment, I am talking about  proofs in propositional calculus, not logic in general.
Comment: Also, one could note here that p→(q→p) is not an axiom of Jan Lukasiewicz, nor are 2. and 3. as listed above.  More importantly they are also NOT a translation from Polish notation to an infix notation with his rules of inference.  His rules of inference include a rule of substitution.  But, let's substitute p→(r→p) for in p→(q→p).  We get p→(r→p)→(q→p→(r→p)) which is an ambiguous mess.  Why?  Because  p→(q→p) isn't a meaningful expression, unlike Lukasiewicz's CpCqp, CCpCqrCCpqCpr, and CCNpNqCqp.
Comment: In the wikipedia I do NOT find p→(q→p) as an axiom.  I find (p→(q→p)).  The first doesn't work with a mechanical rule of substitution. The second does.  2. and 3. in the above also would the same sort of problem if "translated" from Lukasiewicz's notation of CCpCqrCCpqCpr and CCNpNqCqp respectively, in that Lukasiewicz's rule of substitution would no longer work.  Lukasiewicz didn't use schemata.  He has a rule of substitution as the SEP implies: https://plato.stanford.edu/entries/lukasiewicz/  Frege's system has also gotten thought to have a rule of substitution in some of the literature.
Answer: "I understand how they would define an ⟺ operator, but wouldn't you always be able to substitute (ϕ⟹χ)∧(χ⟹ϕ) for (ϕ⟺χ) in any proof?"
No.  In intuitionistic logic, such substitution is not necessarily allowed, since defining (ϕ⟺χ) in terms of $\land$ and ⟹ is not possible necessarily.  Definiability of distinct connectives is not allowed in at least some intuitionistic logical systems.
Also, using definable connectives is sometimes disallowed in proofs.  Definition-free proofs would disallow using ((ϕ⟹χ)∧(χ⟹ϕ)) for (ϕ⟺χ) in any proof.
Comment: This is just wrong.  Certain ways of defining connectives in terms of others that are commonly used in classical logic are not valid in intuitionistic logic, but others are.  In particular, this one is.
Comment: @EricWofsey Thank you.  I forgot the 'not' and have now edited it.
Comment: @EricWofsey Also, the wiki explicitly says: "As a result, none of the basic connectives can be dispensed with, and the above axioms are all necessary"  The above axioms could include an axiomatization of equivalence instead of defining it by other connectives.  So, there definitely can exist an intuitionistic logic where no definability of connectives is allowed.  You want to talk about *an* intuitionistic logic where definability of connectives is allowed, well that's just one intuitonistic system.


Community wiki for "Websites that allow communication between people: List"?

Question: The question Websites that allow communication between people: List asks for a list of websites. Should we turn this into a community wiki? I think we haven't used this format yet on LLSE.
Comment: Relevant: [meta stackexchange discussion on list questions](http://meta.stackexchange.com/a/98366)
Answer: Using Community Wiki was at one time considered the proper way to handle these "list questions" on SE. That time was several years ago. The more modern approach is more often simply not to allow such questions. I agree with this, and think that particular question should be closed. It's not only a list question, with literally thousands (or more) proper answers. The correct answers change daily as new web sites are created, and old ones closed. It's not our job to catalog such sites. Google does that pretty well already.
A better approach to such questions, which is taken on many sites, is to create a list of common/popular resources on meta.  Spanish.SE has recently renewed this effort.
A (small) list of such sites might fit on such a page.  Before we jump to that conclusion, though, I'd suggest we open that specific idea for discussion at large.  We may want one post per language, rather than just a single post.  Or maybe we want a single post, with sections per language?  And maybe this community does want such a post on the main site rather than meta, etc.  I encourage you (or anyone) to put forth a proposal for this here on meta.  If nobody else does, I might do it myself when time permits.
Comment: I see. Can you also explain why the statement that is not our job to maintain such list is not seen as a contradiction of having such a list on Meta? Also, if we have such lists at all, I would assume that their proper place is on the "normal" site instead of Meta. See e.g. [Resources for learning Mandarin Chinese](http://chinese.stackexchange.com/q/1120/12854).
Comment: @ChristopheStrobbe: Good question... I think my problem with the original question is that it was impossibly broad (literally, a list answering it would include any web site with email or chat functionality--including Gmail, Facebook, and Grindr). I have edited the original question to be more specific, and also not to solicit a list.
Comment: Having said that, if we wish to maintain a list (whether in meta or on the main site), it should be sufficiently narrowly defined that we don't have an infinite list of "sites with chat features".
Comment: Apparently, I had read a narrower interpretation into that question: sites specifically for language learners where they can communicate - esp. through audio, possibly also with video - with other language learners (cf. tandem learning) and/or teachers. Anyway, let' see what other people think.