Better word for Optional Requirements?

Question: What's a better word for an optional requirement in software engineering? The phrase is contradictory. I've used "Non-Core Requirements" in previous projects.
Comment: @Blrfl It doesn't belong on English. In the English language, the phrase "optional requirements" is contradictory. However, it has a widely accepted meaning in software development, and there are alternative ways of phrasing this concept within the context of a software project. It doesn't make sense to have it anywhere but here.
Comment: I'd guess he means that something can't both be required (as in 'requirement') and optional (as in 'not required')
Comment: "Things that won't get built" is what it means on many projects.
Comment: @ThomasOwens: I disagree.  Any field where jobs have requirements could run into this problem, which would make this a project management question.  It's also an oxymoron, which makes it good fodder for English, and the first topic in the first FAQ there says word choice is on-topic.  But suit yourself.
Comment: This really belongs over on English.  And I'd just call them "options."
Comment: English embraces change. This phrase is common and easily understood, no need to change it.
Comment: What do you mean in your question by "phrase is contradictory"? What is contradictory here?
Comment: Suggestions?
Comment: @Maxood see "oxymoron"
Comment: Enhancement is the term used in the office I work at.
Answer: We refer to them as "nice to have" features as opposed to requirements.
Comment: From a requirements engineering perspective, the "nice to have features" still need to be captured as a requirement (in a specification, as a user story, as acceptance tests - however your process dictates that requirements are captured) and tracked throughout the life of the project.
Answer: The term "out of scope requirement" can possibly be used. This means that the requirement has been captured within your process and is trackable, but it has been determined that the requirement is something that falls beyond the current scope of the system, due to a number of reasons, such as budget, schedule, time, or feasibility.
However, the phrase "optional requirement" is commonly used to denote something that is in scope, but not necessarily required by the system. It is a measure of the priority of the requirement. In my experiences, requirements are often prioritized as mandatory, desirable, or optional (although there are also other schemes). In order for a project to be considered complete and fully functional, all of the mandatory requirements must be satisfied. Given sufficient resources, desirable requirements would be implemented next. Finally, anything considered optional would be included.
I believe the confusion comes from the term "requirement". In the English language, a requirement is "a thing that is needed" or "a mandatory, compulsory, or necessary condition". However, in software engineering, the term requirement is simply a documented characteristic of a software system. The concept of optional and mandatory describe the priority of the documented characteristic of the software system.
Comment: A related term is 'change case', which is a requirement that is expected at some point in the future, but isn't in scope right now.  By capturing change cases you can try and avoid doing something in the current design that makes the change cases difficult.  When doing this you need to keep an eye out for YAGNI though.
Comment: IMHO, 'optional requirement' implies optional in the present-tense and requirement in the future tense which could also read optional potential requirement. Either way, I agree that out-of-scope is more appropriate in a business case where customer expectations need to be managed.
Answer: For software requirements documentation, wording Optional Requirements is perfectly OK, as long as you use this term in conformance with RFC 2119 Key words to Indicate Requirement Levels - ie to indicate items that are truly optional.
When your specification text implies verb instead of adjective, use "MAY" instead of "OPTIONAL".
Since it is small and easy to read, RFC text is fully quoted below:

    Network Working Group                                         S. Bradner
    Request for Comments: 2119                            Harvard University
    BCP: 14                                                       March 1997
    Category: Best Current Practice

            Key words for use in RFCs to Indicate Requirement Levels

    Status of this Memo

       This document specifies an Internet Best Current Practices for the
       Internet Community, and requests discussion and suggestions for
       improvements.  Distribution of this memo is unlimited.

    Abstract

       In many standards track documents several words are used to signify
       the requirements in the specification.  These words are often
       capitalized.  This document defines these words as they should be
       interpreted in IETF documents.  Authors who follow these guidelines
       should incorporate this phrase near the beginning of their document:

          The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
          NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
          "OPTIONAL" in this document are to be interpreted as described in
          RFC 2119.

       Note that the force of these words is modified by the requirement
       level of the document in which they are used.

    1. MUST   This word, or the terms "REQUIRED" or "SHALL", mean that the
       definition is an absolute requirement of the specification.

    2. MUST NOT   This phrase, or the phrase "SHALL NOT", mean that the
       definition is an absolute prohibition of the specification.

    3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
       may exist valid reasons in particular circumstances to ignore a
       particular item, but the full implications must be understood and
       carefully weighed before choosing a different course.

    4. SHOULD NOT   This phrase, or the phrase "NOT RECOMMENDED" mean that
       there may exist valid reasons in particular circumstances when the
       particular behavior is acceptable or even useful, but the full
       implications should be understood and the case carefully weighed
       before implementing any behavior described with this label.

    5. MAY   This word, or the adjective "OPTIONAL", mean that an item is
       truly optional.  One vendor may choose to include the item because a
       particular marketplace requires it or because the vendor feels that
       it enhances the product while another vendor may omit the same item.
       An implementation which does not include a particular option MUST be
       prepared to interoperate with another implementation which does
       include the option, though perhaps with reduced functionality. In the
       same vein an implementation which does include a particular option
       MUST be prepared to interoperate with another implementation which
       does not include the option (except, of course, for the feature the
       option provides.)

    6. Guidance in the use of these Imperatives

       Imperatives of the type defined in this memo must be used with care
       and sparingly.  In particular, they MUST only be used where it is
       actually required for interoperation or to limit behavior which has
       potential for causing harm (e.g., limiting retransmissions)  For
       example, they must not be used to try to impose a particular method
       on implementors where the method is not required for interoperability.

    7. Security Considerations

       These terms are frequently used to specify behavior with security
       implications.  The effects on security of not implementing a MUST or
       SHOULD, or doing something the specification says MUST NOT or SHOULD
       NOT be done may be very subtle. Document authors should take the time
       to elaborate the security implications of not following
       recommendations or requirements as most implementors will not have
       had the benefit of the experience and discussion that produced the
       specification.

    8. Acknowledgments

       The definitions of these terms are an amalgam of definitions taken
       from a number of RFCs.  In addition, suggestions have been
       incorporated from a number of people including Robert Ullmann, Thomas
       Narten, Neal McBurnett, and Robert Elz.

It wouldn't hurt if your documentation refers to RFC as the source of definitions:

This document uses definitions based upon those specified in RFC 2119.
Comment: @RobertHarvey well my point was to address the question idea that one should look for _better word_ to replace established professional term with well defined and documented semantics **only because** they believe it's not a perfect English. As for it being too specific or not, that would be quite a different question don't you think? I for one can imagine plenty cases where I would prefer [MoSCoW](http://programmers.stackexchange.com/a/141450/31260) style categorizing.
Comment: I didn't even know this was an RFC. I'm not surprised that something like this exists, though, as an IEEE standard, ISO standard, RFC, or some other similar, published document.
Comment: This document seems a bit too specific to be broadly applied as guidelines for software requirements. It's not titled "Key Words for Requirements," it's titled *"Key Words for Requirements in RFC's,"* and in Directive 6 it intentionally limits its own scope.
Comment: @gnat, He doensn't need a verb. This post has not answered **What's a better word for "optional requirements"?**
Answer: I appreciate it's not an answer to your question, but in my world, it's still a requirement, even if for whatever reason you're not going to fulfil it.
I like the MoSCoW approach (Must Have, Should have, Could have, Won't have this time) to categorising requirements with users, along with other factors (in my regulated world, requirements can be critical or non-critical, and many an argument flares up over optional but critical requirements.)
Answer: A better word for an optional requirement is "Recommendation"
Answer: How about identifying it as an optional feature or optional tasks. These will only be done if at a certain point in the project it has been determined that there is time and money available to complete these features.
They could also be triggered if an external event occurs. If the customers makes the switch to Windows 8, the following tasks will need to be in done...
The description of the feature should include a deadline for determining if they will be done.
Answer: Requirements are categorized into 4 area in Software Engineering:

Business Requirements: Focuses on overall business goals and objectives of the system
User Requirements: Focuses on user's objectives and what users have to do to use the system to achieve business objectives
Functional Requirements: What functionality and tasks the system has to perform to achieve business objectives
Non-functional Requirements: What requirements are there other than functional ones. This includes environment, constraints, interface, maintenance issues, etc.

Now requirements can be Optional or Mandatory, depending upon the above 4 categories, I have outlined above. Optional requirements can also fall into the scope of the system under consideration or  out of it's scope as well. Optional requirements are good means to avoid Scope Creep and defining your scope in precise terms.
Optional Requirements will always be a part of Software Engineering as they help us identify the scope and are a good means to avoid Scope Creep. You can never say that they contradict the engineering  practices of SDLC. However, requirements have to prioritized and well defined.
Comment: The question asks for a different term for "optional requirements" not for a categorization of requirements.
Comment: If he knew the categorization, he would never have said that Optional Requirements are contradictory in Software Engineering. :)
Comment: good descriptions, but I'm still a bit peeved at the phrase - either something is required or it isn't. I think we've made "requirement" into a separate entity meaning "formal client need"...
Comment: @Maxood Hmmm? The term is contradictory, not the concept, the question discusses the term. Do you have any reference that the term is part of any formal (or widely accepted) requirements model? I know it's common, but throwing stuff like "Optional Requirements will always be a part of Software Engineering" without a single reference isn't really my cup of tea.
Comment: @ Yannis Rizos When i said "Optional Requirements will always be a part of Software Engineering", I meant that in conceptual context. As engineering is about working out an effective solution within budget while balancing conflicting requirements. Also the asker never mentions Optional Requirement as a term here in the question and neither did I.
Answer: In the Volere template the term "Waiting room" is used.

...This template is intended for use as the foundation for your requirements specifications. The template provides for each of the requirements types appropriate for today's business, scientific and software systems. It provides a checklist, structure and traceability for your requirements... The template is tool independent, and has been successfully used with Yonix, Requisite, DOORS, Caliber RM, IRqA and other popular tools...
The Volere techniques are described in the book Mastering the Requirements Process by Suzanne Robertson and James Robertson...
Answer: In my business (spacecraft), they are called either "goals", indicating that they are documented and effort will be expended to meet them, but the system will still be considered successful if they are not met; "desirements" (not a real word, but there you are), indicating that someone wants them and they are trying to attain the status of goals but aren't accepted or documented yet; or "creeping requirements" which is a more derogatory version of desirements indicating things that are trying to take up resources but that aren't worth it in a project trying to achieve "good enough" where they will compromise or threaten achieving the real requirements.
Answer: If your requirements are prioritized, you might consider them to be low priority requirements.
Comment: I think "zero priority" might be closer to "optional".
Answer: I am quite surprised no one has mentioned that those are called "objectives". Every company I have worked for has called them that. They are denoted by use of the words "will" or "should" instead of "shall". Sometimes they are included in Braces when talking about numbers. e.g. The system shall operate continuously without need of operator attention for 100 {250} hours.  Meaning that the requirement that must be met is 100 hours, but the objective is 250 hours.
As a side note, very seldom does anyone ever actually design to meet the objective requirement, unless there is some sort of incentive involved.
Answer: The term "Desirement" is sometimes used for optional requirements. However, it may not be appropriate for a formal document.
Answer: I am surprised that all the responses are concerned with tracking requirements in project development. Despite being a developer I have never worried overmuch about this terminology in that context.
When i first read the question I assumed it related to user product specification, not product development.
For example, an encyclopaedia might list a color printer as an optional requirement. Its required if you want the full benefit of the app but optional if you want to view the screen.
But what if you had for example a monochrome printer?
How to make clear whether your app works with the obvuous restriction that some photos might not look so good? Or wont print at all?as another example, how should i check a printer review to check whether ink is a requirement or an optional requirement requirement in a multi-function printer? In other words can i still scan? Some hints on terminology and what to search for would be welcome both as a product developer/seller and as a consumer.
Comment: Uhm, so What's a better word for "optional requirements"?
Answer: I would call them "optional features", not optional requirements. Requirements sound like something that you have to have, while features sound like an add-on to the original product.

Better word for Optional Requirements?


Draw a PostgreSQL geometry in a PDF file with PHP

Question: Is there a way to draw a PostgreSQL geometry in a PDF file using a PHP script?
Answer: Commercial solution is use FME to export data to 3d PDF, this one supports vector data.
Answer: I guess you can execute Gdal and ImageMagick from any language.

<code>gdal_rasterize -b 1 -i -burn -9999 PG:'host=localhost dbname='unep''
               -sql "SELECT ST_buffer(the_geom, .12)
                     from coastlines where name='Poland'" Poland_elev.tif
</code>

ImageMagick will convert a tiff to a pdf.
Answer: I use a php framework (CodeIgniter) in my apps which has a pdf library plugin to create the pdf document. Then I generate a url that calls my Mapserver WMS to get a map image of the appropriate size, features and use that url as an image tag (like: img src="url" ) in the pdf doc. It's a rather complicated solution, but it shows that it can be done and works well now.


Win 7 software and HP hardware

Question: Would installing an OEM version of windows 7 on a laptop--specifically
The HP G61-320US interfere with any proprietary hardware?
Answer: OEM means is that the license is tied to the original hardware, so you can only install it on the machine it came with. However, there is nothing physical (or electronic) that will stop you installing on some other hardware.
I suppose there might be some HP or DELL or Acer specific drivers, but from what I remember they shouldn't interfere with the installation.
However, I assume that this copy came with some other (non HP) machine, so by installing it on the HP laptop you are breaking the terms of the OEM license.

Win 7 software and HP hardware


How to view the files on mnt\sdcard on PC and how to set default download and save location

Question: The directory mnt\sdcard is the location where all the downloads and the received files are saved, however this file cannot be located on the PC if connected using USB Cable. Moreover, it seems that this file is on the Phone's Internal Memory and not in the Memory card
Comment: Could you please specify the device used? On all of mine, /mnt/sdcard *is* on the sdcard (basically, it is the *root* of the sdcard). Second: If you have two questions, you should better ask them separately (you can still cross-reference if needed).
Comment: I'm using Sony Xperia Sola (MT27i) Android 2.3.7. While using File maneger Applications like Astro, I am able to see a directory called mnt\sdcard in which all the downloaded files are present. From the same application, Im also able to see a directory mnt\ext_card which contains the files that I have copied on to the memory card before mounting it in the Phone using a card reader.
Answer: It seems that, like on the Atrix, /mnt/sdcard is your internal storage, while /mnt/ext_card is your real sdcard. You can verify this if you check their seizes: You know the size of your sdcard, so you should be able to point that out. The internal will probably have a size which is not a multiple of 8 (most likely, it will be 6 GB or the like).
If you are unsure how to check this, you could e.g. use SanDisk Memory Zone1 or, even better, Storage Analyser2, which should make it easy to point out:


Convert a QStandardItemModel to a QVariant

Question: I'm trying to send a QStandardItemModel-derived object to PythonQt, but I'm a little confused on how it needs to be sent.  When I was using boost::python I had several controls like boost::noncopyable to ensure I wasn't recreating this object, but sharing it with python.  I also had constructs to provide a boost shared pointer to python from inside python.
class Scene : public boost::enable_shared_from_this<Scene>, public QStandardItemModel
In PythonQt, however, I'm not sure what's available.  The function call takes a QVariantList for all the function parameters.
QVariant PythonQt::call(PyObject* object, const QString &callable, const QVariantList &args = QVariantList))
What I'm confused about now is how to get my object to python via a QVariant.  Since its derived from QStandardItemModel, I figured it would already be register
void MyObject::someFunction(QString fileName)
{
    QVariant myObjectV = qVariantFromValue(this);
    // send to python
    ...
}

But this gives me the following error:
'qt_metatype_id' : is not a member of 'QMetaTypeId<MyObject>'
I've tried registering it after I declare my class, but this throws a different error.
class MyObject : public QStandardItemModel
{
Q_OBJECT
...
};
Q_DECLARE_METATYPE(MyObject)

QStandardItemModel::QStandardItemModel(const QStandardItemModel&) is private within this context.

I actually get the error twice--once in header where I add the Q_DECLARE_METATYPE and in another header, which has a class which always derives from QStandardItemModel but is otherwise unrelated.
Is Q_DECLARE_METATYPE even the correct way to go about converting this object to a QVariant?
BOOST_PYTHON_MODULE(scene)
{
    class_("Scene");
}
Answer: Yes, by default, QVariant can take one of te following types - http://doc.qt.io/qt-4.8/qvariant.html#Type-enum - and they are not enough for your task. You should declare additional types by yourself via qmetatype system. Thus you shoud call qRegisterMetaType() function.


How can you add an reoccuring appointment at the last day of every month in the calendar

Question: Is there a way to add a reoccuring appointment to the calender in Android at the last day of every month ?
Answer: Not exactly.  Here is what I ended up doing.  Maybe it will work for you:  In my case, I wanted an appointment to appear at a specified time on the last day of the month and remind me 1 hour early.  I ended up making my appointment on the 1st day of every month and then setting reminders to SMS message me 25 hours early and 24 hours early, respectively.
It seems that if you want it exactly on the last day, most people resort to setting up 12 separate appointments, one for each month, that repeat annually.  But, then you'll have that 29th day of February to deal with as was the case this year.  Mine worked anyway...
Comment: Yes, that is how I am doing it at the moment (1st of month and reminder one day earlier). Just thought there should be an easier way.
Comment: @Edelcom: Why mess with something that works... As long as you don't have an option that sais "Last day of month", you have to make the best of it ;-)
Comment: @awe : You are correct, of course. But is seemed such a logical option that I find it strange it is not included. Let's say you have to pay your rent in the last month, or you have to go to the bank to get your bank statements before a new month is started. I can think of several reasons why a 'last day of the month' option should be handy. I was just hoping I missed something.
Comment: Maybe you could ask if there is a calendar app on the market available that has this option.


is OPE able to produce different cyphertext for same plaintext?

Question: Given a plaintext p, is OPE (Boldyreva et al.) able to produce n different cyphertext c1...cn for the n occurrences of p?
If not, there exists an order-preserving encryption scheme able to do that?
Comment: No, but you can make an ore scheme that is not deterministic.
Answer: Boldyreva et al.'s scheme is not randomized. However, there is a folklore way to "randomize" it by choosing randomly from the range gap in the last recursive step of the algorithm. It's not clear what security improvement this buys you, though, since it only really randomizes the last few bits of the ciphertext.
There are schemes meeting a randomized version of Boldyreva et al.'s IND-OCPA definition (q.v. Kerschbaum, CCS'15) but they require large client storage.
Answer: The definition of OPE used in Boldyreva's work (section 3.1) is basically
$$\forall m_0, m_1 \in \mathcal{M}, m_0 > m_1 \Leftrightarrow E(m_0) > E(m_1)  $$
and any scheme satisfying this definition is deterministic.
To understand it, consider that $m_0$ and $m_1$ are equal messages. Then, $E(m_0) \not > E(m_1)$, otherwise we would have $m_0 > m_1$. Also, $E(m_1) \not > E(m_0)$, otherwise we would have $m_1 > m_0$. Therefore, $E(m_0)  = E(m_1)$.
That said, the answer to your second question is "no, there is no OPE scheme able to do that, unless you consider another definition of OPE".
Maybe you would be better using Order-revealing encryption schemes instead.


Order a search by oldest close votes?

Question: I'm trying to help with the effort in Close all the typo questions.  Is there a way that order the results of a search to have oldest-close-votes (those nearest to expiring) at the top of the results? Or is there a way to add number of close votes to the search critera?
Answer: We do not index the number of close votes on a question (nor would how we store them trigger a re-index), so no...sorting by this isn't possible.  You would need to use Stack Exchange Data Explorer or our public data dump to perform such a query.
Answer: To show oldest results first use Order By in Query. Like...
<code>select a.Id as [Post Link], a.Body
from Posts q
inner join Posts a on a.Id = q.AcceptedAnswerId -- only check accepted answers
where len(a.Body) < 200 -- posts less than 200 chars can be a giveaway
and q.ClosedDate IS NULL -- only search open questions
and (
      lower(a.Body) like '%typo%'
   or lower(a.Body) like '%spelled wrong%'
   or lower(a.Body) like '%spelled incorrectly%' -- add more...
)
Order By a.ID Desc
</code>
See the last line Order By a.ID Desc

Order a search by oldest close votes?


If i keep adding sulfuric acid into water, will it keep dissolving forever?

Question: If i keep adding sulfuric acid into water, will it keep dissolving  forever?
Comment: Sulfuric acid and water are miscible. Does this answer your question? https://en.wikipedia.org/wiki/Miscibility
Comment: Yes, it will continue to dissolve the water.
Answer: If you remove the last two or so percent of water from concentrated $\ce{H_2SO_4}$, it starts fuming, giving off SO3 until it again contains enough water to be stable.
$\ce{H_2SO_4 <-> SO_3 + H_2O}$
Pure sulfuric acid does not exist, so there is no clear yes/no answer to your question. Also $\ce{H_2SO_4}$ (like all other mineral acids) does not just mix with water, but strongly reacts. So it's clear there can be no miscibility gap like with water/ether or similar pairings.
Answer: When you dissolve a small amount of sulfuric acid in water then a chemical reaction occurs. The sulfuric acid dissociates into hydrogen cations (H+) and hydrogen sulfate anions (HSO4-). At very low concentrations of sulfuric acid in water the conductivity of the water is proportional to the sulfuric acid concentration.
When the sulfuric acid concentration is increased then the activity coefficents of the ions will decrease, the ions will be less free to move independently of each other. If we use the Bromley equation then the ion pairing term will become more and more important. One can regard the specific ion interaction of the hydrogen and the hydrogen sulfate ions as a reversal of the dissociation of sulfuric acid.
As the concentration climbs higher and higher, the fraction of the sulfuric acid which is dissociated into seporated ion pairs will decrease. The ions will be in the form of contact ion pairs where the two might be touching. At this point the electrical conductivity of the solution will be less than what would be predicted if we made the assumption that the conductivity is proportional to the concentration (and used low concentration data to make the prediction).
These contact ion pairs will be part way between the truely solvated ions and the intact sulfuric acid. As the concentration of the sulfuric acid goes even higher I think we will get to a situation where the majority of the sulfuric acid is in the form of molecules of sulfuric acid where a covalent bond exists between the hydrogen atoms and the oxygens of the sulfuric acid molecules. The mixture will be very viscous and it will have lots of hydrogen bonds in it.
Answer: Yes, there is no chemical reaction between H2S04 and water. it is just a dilution of H2S04. If u want to add 1000 liter water in 1ml H2SO4 , U can add and there will be clear solution without an solid or layer


Why use a closure for assignment instead of directly assigning a value to a key?

Question: I was watching this video and at 7:10 he's adding a db dependency and is using a closure to assign the value.
My question is why not just use direct assignment instead, I mean isn't doing this:
$container['db'] = $capsule;

equivalent to doing this:
$container['db'] = function ($container) use ($capsule) {
    return $capsule;
}

If not, what is the difference and which way is better?
Answer: TLDR it's because defining dependencies as closures makes it possible for dependency injection container to build them on demand, hence you don't need to worry about their order of definition and managing their dependencies manually.
Pimple is Dependency Injection Container, it is supposed to help you set up your objects by managing their dependencies in an easy and convenient way.
If you directly assign a value to a key, Pimple calls that value a parameter, and when you need to access that key, it simply returns that exact value:
$container['sample-param'] = 'foo';
echo $container['sample-param'];
//output: foo

But the point is, this sample-param does not require any set up, it is simply a value and we're fine with that. But assume the following service setup:
$container['myService'] = function($c) {
    $service = new \Some\Complicated\Service();
    //this service depends on cache service
    $service->setCache($c['cache']);
    return $service;
}

$container['cache'] = function($c) {
    $cache = new \Cache\Driver();
    //our cache driver needs a db connection
    $cache->setDbConnection($c['db']);
    return $cache;
}

$container['db'] = function($c) {
    //our database connection requires some parameters
    $dbConnection = new \Database\Connection($c['db-config']);
    return $dbConnection;
}

$container['db-config'] = [
    'username' => 'foo',
    'password' => 'bar',
    'host' => 'localhost'
];

//Now we want to user our service:
$container['myService']->doSomething();

Please pay attention to order which I used to define different keys in the container.
myService needs cache but cache definition comes after myService definition. And this is where Pimple is helping, and this is why we pass container to every closure, because Pimple is going to build our dependencies on demand. When we need to access myService Pimple looks at its internal data storage, if it has previously built and stored myService successfully, it will return that same instance, else it will call our closure to build it. And when our closure is called, it will ask Pimple ($c is the Pimple container) to give it its dependecies (which in this case is the cache service). Pimple applies the same thing on cache, if it is not built yet, it will build it and so on...till it gets to the part that requires simple params like db-config which will immediately return. And in this chain of closure calls, our object and all its dependencies are built.
Now imagine what would happen if we used simple values instead of closures? In that case, when we want to build myService we have to take care of its dependencies. We have to make sure its dependencies are defined before we define the service itself and we have to deal with other problems related to managing dependencies. In that case we couldn't just define our myService and assume there is a cache service available, which will be defined later.
Answer: In that video he is using Slim framework for the container which by default is using Pimple for it's container.
http://pimple.sensiolabs.org/
In the documentation on that page it mentions the following

Defining Services A service is an object that does something as part
of a larger system. Examples of services: a database connection, a
templating engine, or a mailer. Almost any global object can be a
service.
Services are defined by anonymous functions that return an instance of
an object:
// define some services
$container['session_storage'] = function ($container) {
    return new SessionStorage('SESSION_ID');
};

$container['session'] = function ($container) {
    return new Session($container['session_storage']);
};

Notice that the anonymous function has access to the current container instance, allowing references to other services or parameters.

By design the containers expect to call a function
Pimple's containers implement the \ArrayAccess interface (seen here), and that means they can make the object act like an array while not necessarily being one. In the source code you'll notice offsetSet and offsetGet, which are what happens when you do:
$container['a'] = function($c){ return new Blah();}

$thing = $container['a'];

tl;dr It's a Pimple container specific thing, not a PHP specific thing.


Cannot take iron anvil in dwarf-fortress?

Question: I'm quite new to dwarf fortress and trying to make my way thru it. I read most of the utterly newby guide and want to go. Now, I'm trying to make the preparations. In the item menu, it seems that i cannot take an Iron anvil with me. I know I have enough points but the anvil just won't appear in the menu. If i free 300 points, I can get a Steel Anvil tho. What's happening?
Comment: @Alexandre I'd guess it's an interesting *feature* of your civ (no iron anvils).  What version are you running?
Comment: Can you take a screen cap? Show that you don't have an iron anvil and make sure your remaining points are visible. Not that I don't believe you have enough points, it's just a screenshot will make it more clear what's going on.
Comment: lol, i dont have enough rep to do that... 10 needed
If I get to 300P free, the anvil section appears with only steel anvil in it.
Comment: I can't say I'm enough of a Dwarf Fortress expert to know why it wouldn't appear, it's always worked for me. The default embark used to set you up with an iron anvil. +1 in the meantime because I'm curious if someone can figure out what's going on.
Comment: Thx man, I added the requested screenshot
Comment: Was running on 31.16
Answer: Finally, I surrendered. I just changed the embark location and it did the trick. I would think that because it was near a volcano and it had high cliffs, maybe my dwarves could not carry stuff as heavy as iron. (I could not bring iron bars either).
Comment: The types of wood available, at least, depend on your civilization. If you picked a different civilization the 2nd time, it's conceivable that the first had no access to iron, and the other didn't. (Because of the way reactions are handled, you can get steel even without iron)
Comment: yeah, push tab a bunch and you should see a list of civs to choose from.
Comment: How do we exactly "pick" a civilisation? Do you mean the embark stuff?
Comment: in the embark screen, if you press Tab a few times, you will see a list of civilizations to choose from.
Answer: I wonder if it's because your parent civilization didn't have an iron resource next to it. I wonder if an item won't be provided to your wagon from your parent civ if they themselves don't have access to the resource. Where you able to select ANY iron items?
Answer: Once in a while, a dwarven civilization won't have access to iron at all. If this happens to your "parent" civilization, you won't be able to take any iron items during embark, particularly including anvils. However, dwarven civilizations are guaranteed to have steel, always, even if they don't have iron. (No, this doesn't make sense, just get over it.) This affects equipment other than anvils, but anvils are the only thing anyone cares about, because there are so few things they can be made out of.
If you find yourself in this situation, the thing to do is change which civilization you're from, by pressing Tab several times until you see the list of dwarven civs. By default, it picks the one whose current capital is closest to your embark location, but you can always change it (although it's recommend that you pick one that's at least connected to you overland, or you won't get migrants after year 2). Changing your embark location has the same effect, if you pick somewhere near a different civilization. Embarking without an anvil is possible, but it makes your life harder: you have to hope the first dwarven caravan brings one (they usually do, but sometimes not), and make sure you can afford it.


How to measure audio delay between two Asterisk channels?

Question: I have the following Setup:
A Centos machine with asterisk running that is connected to a Router via Ethernet. The Router answers the calls from my asterisk console and is itself again connected to my Centos machine via analogue RJ11 cable and a Digium PCI Card. (all for testing purposes of the router and running fine)
So I call and pick up the call at the same machine.
How can I now measure the delay between the audio of both channels?
I already tried to use the Monitor() function and evaluate delay signal based with cross correlation, but it seems like the Monitor function is not an accurate tool for recording at a precise time. (It doesn't start recording when I start the Playback() of my testfile)
Is there another possibility to get the delay between caller and callee?
Thanks
Answer: You can use Echo application on one end and send Beep on other end.
After that you can measure delay between beeps.
There are no any app which do such measure, but you can ask some developer do it for you.


How to start nvidia driver in console?

Question: I've downloaded and installed latest NVIDIA driver from nvidia.com. Video card works silently in X session. But when I work in console without starting X, video card fan makes a lot of noise. Seems to be that NVIDIA driver (which manage fan speed) is not loaded during system boot. Is it possible to start the driver during boot?
UPD: While in console lsmod | grep nvidia shows that driver is loaded. Seems to be it is not loading issue. Video card fan has speed 100% in console, and 65.1% in X session. Is there way to change fan speed in console?
Answer: Is the nvidia kernel module loaded?
lsmod | grep nvidia

If not, load it with
sudo modprobe nvidia

If it helps then you might want to automatically load it at boot time by appending nvidia (on a new line) to /etc/modules
I guess that source of your problem is manual installation. Had you installed it from repositories, the installer would set it up for you.
Note: I am not an nvidia user, quick google search suggests that the module is called nvidia, but it might be called otherwise. Just type modprobe n and hit TAB, your shell should autocomplete the name for you.
Answer: I found this, you might wanna give it a try:
http://www.linuxjournal.com/content/adjust-fan-speed-you-nvida-graphics-card
there seems to be a command called nvclock, and within that command there is an argument called fanspeed. This is probably what your looking for.

How to start nvidia driver in console?


Can somebody explain heisenberg uncertainty principle to 14 year old me?

Question: I'm a young student that's very curious about physics and especially some physics theories. I've watched a TED video about the Heisenberg uncertainty principle, but I couldn't fully understand it and I'm looking for a fairly easy explanation if possible.
Comment: Perhaps someone can explain it, but you have chosen the wrong place to ask.  You should try [physics.se]  where it has already been answered https://physics.stackexchange.com/questions/229168/can-the-heisenberg-uncertainty-principle-be-explained-intuitively
Answer:
I've watched a TED video about the Heisenberg uncertainty principle, but I couldn't fully understand it and I'm looking for a fairly easy explanation if possible.

A comment points to Can the Heisenberg Uncertainty Principle be explained intuitively? and notably there are 17 answers there! It is possible that a few will be helpful to any given person.
Quantum mechanics is a set of theories and equations that predicts remarkably well what happens. That doesn't mean that anybody actually understands it. Many people know how to use it, and many many more people kind-of know roughly how to use it. And at least 17 (if not 17,000) people think they know how to explain it.
But don't let them fool you.
Take it from the master explainer. Per Richard Feynman:

Nobody understands Quantum Mechanics!

Feynman was amazing but human and flawed. As smart as he was regarding physics, he didn't notice his own, profound sexist predispositions (at least for the first part of his life).

They behave in a way, that is like nothing you've seen before! Your experience with things you've seen before is inadequate, incomplete...

The behavior of things that are small is so fantastic, is so wonderfully… different. So marvelously different than anything that behaves on a large scale.
Comment: Down voters feel they're smarter than Feynman, feel that QM is easy to understand?
Comment: No. I downvoted for two reasons.  Firstly, it is an off topic question, with a good duplicate on physics. As per [answer] you should "save yourself some frustration and avoid trying to answer questions which ... are not about astronomy".  Secondly, this fails to answer the question, instead it just says "Nobody understands QM so don't bother"  This isn't a useful answer (-1)
Comment: @JamesK thanks for your candor! The first part seems petty and punitive "I didn't want the OP to receive any help here but you tried to help" Remember that if the question is migrated the answers go with it. The rest is flawed; I cite your linked Physics question and its *17 different answers* but I felt that Feynman does a better job than any contemporary TED talk. This is a good and helpful answer. QM needs a preamble like this before someone just starts 'esplainin it like it's east to understand. It's a rabbit hole.


UdpClient Exception on async reception only on Windows XP

Question: I've a c# code that works very well in Windows vista/seven, but not on Windows XP.
The problematic part is a "multicast" node, that basically read and send data over a multicast address+port.
The part that is reading/writing to the network is a singleton.
Every thread that access to this singleton must indicate when they need to start to listen, and when they stop.
Socket are listened when at least one thread need to "Start", and we stop when all thread "Stop"(they have to give a Guid token, that the Start method return).
This start/stop mecanism is to ensure that if no thread need to see what is happening on the network, we don't consume memory for that.
The problem I got is that on windows XP, I got this exception:
System.Net.Sockets.SocketException (0x80004005): The I/O operation has been aborted because of either a thread exit or an application request
   at System.Net.Sockets.Socket.EndReceiveFrom(IAsyncResult asyncResult, EndPoint& endPoint)
   at System.Net.Sockets.UdpClient.EndReceive(IAsyncResult asyncResult, IPEndPoint& remoteEP)

After some search, it appears, that on windows XP and below, when a thread ends, the OS release all its I/O resources. (VB.NET 3.5 SocketException on deployment but not on development machine ).
Is there a way to avoid this behavior? Because in my case, it's normal and often that I create a thread that will ends before the end of the execution, and I don't want to have its socket released?
If it's not possible, how will you handle this?
Answer: The calling thread, of the async operation, is terminated before the operation completes.
Async I/O operation use mechanism called IOCP (I/O Completion Port) to notify the executing thread when the I/O operation ends.
Bhind the scenes, the whole thing based on something called Overlapped I/O. In Windows Vista the behavior of overlapped i/o was changed, so when the calling thread aborted the I/O operation is no longer cancelled.
Prior to Windows Vista (for example, XP), whenever the calling thread aborted any overlapped i/o initiated by this thread is cancelled, and probably this is the reason for this exception.
You can read more about it here: http://www.lenholgate.com/blog/2008/02/major-vista-overlapped-io-change.html
You can't override this behavior, but you can make sure (using events, for example) that you won't try to use any I/O resource that the creating thread is no longer active.
Comment: Hum, I think I will rather try to remove this Start/Stop behavior and instance my socket in the singleton instantiation. Because I need to have those sockets available in my singleton for all thread, even if the first thread to access it ends. Does that make sense?
Answer: So it seems this is due to windows XP that release automatically resources created by a thread when the thread ends( VB.NET 3.5 SocketException on deployment but not on development machine ).
So, my workaround is to have a thread that has the IsBackground property set to true, that is iterating on a BlockingCollection. When I need to listen one more IP, I add this IP on the blocking collection and this thread creates it.
Since this thread never ends in the whole application life, the resources are not released. I've made this behavior checking the Environment.OSVersion.Version.Major to be bigger or equals to 6, which is the Vista version number.
Now it works like a charms onall versions
Answer: On newer .NET FrameWork versions this will do the trick.
TaskEx.Run(() => _udp.BeginReceive(AsyncCallback, state)).ConfigureAwait(false);


iOS add audio effect before render callback processing?

Question: In my app, I'm doing audio processing in the render callback (input only, no output).
Here is how I initialize the audio :
<code>-(void) initAudio {

OSStatus status;

NewAUGraph(&graph);

AudioComponentDescription desc;
desc.componentType          = kAudioUnitType_Output;
desc.componentSubType       = kAudioUnitSubType_RemoteIO;
desc.componentFlags         = 0;
desc.componentFlagsMask     = 0;
desc.componentManufacturer  = kAudioUnitManufacturer_Apple;

AUNode ioNode;

status = AUGraphAddNode(graph, &desc, &ioNode);
checkStatus(status, "At adding node");

AUGraphOpen(graph);

AUGraphNodeInfo(graph, ioNode, NULL, &audioUnit);

//Enable IO for recording
UInt32 enableInput = 1;
status = AudioUnitSetProperty(audioUnit,
                              kAudioOutputUnitProperty_EnableIO,
                              kAudioUnitScope_Input,
                              kInputBus,
                              &enableInput,
                              sizeof(enableInput));
checkStatus(status, "At setting property for input");

//Disable playback
UInt32 enableOutput = 0;
status = AudioUnitSetProperty(audioUnit,
                              kAudioOutputUnitProperty_EnableIO,
                              kAudioUnitScope_Output,
                              kOutputBus,
                              &enableOutput,
                              sizeof(enableOutput));
checkStatus(status, "At setting property for input");

// ASBD
AudioStreamBasicDescription audioFormatIn;
audioFormatIn.mSampleRate         = SampleRate;
audioFormatIn.mFormatID           = kAudioFormatLinearPCM;
audioFormatIn.mFormatFlags        = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
audioFormatIn.mFramesPerPacket    = 1;
audioFormatIn.mChannelsPerFrame   = 1;
audioFormatIn.mBitsPerChannel     = 16;//sizeof(AudioSampleType) * 8;
audioFormatIn.mBytesPerPacket     = 2 * audioFormatIn.mChannelsPerFrame;
audioFormatIn.mBytesPerFrame      = 2 * audioFormatIn.mChannelsPerFrame;

//Apply format
status = AudioUnitSetProperty(audioUnit,
                              kAudioUnitProperty_StreamFormat,
                              kAudioUnitScope_Output,
                              kInputBus,
                              &audioFormatIn,
                              sizeof(audioFormatIn));
checkStatus(status,"At setting property for AudioStreamBasicDescription for input");

//Set up input callback
AURenderCallbackStruct callbackStruct;
callbackStruct.inputProc = recordingCallback;
callbackStruct.inputProcRefCon = (__bridge void *)self;

status = AudioUnitSetProperty(audioUnit,
                              kAudioOutputUnitProperty_SetInputCallback,
                              kAudioUnitScope_Global,
                              kInputBus,
                              &callbackStruct,
                              sizeof(callbackStruct));
checkStatus(status,"At setting property for recording callback");

// Disable buffer allocation for the recorder
UInt32  flag = 0;
status = AudioUnitSetProperty(audioUnit,
                              kAudioUnitProperty_ShouldAllocateBuffer,
                              kAudioUnitScope_Output,
                              kInputBus,
                              &flag,
                              sizeof(flag));
checkStatus(status, "At set property should allocate buffer");

// Allocate own buffers
tempBuffer.mNumberChannels  = 1;
tempBuffer.mDataByteSize    = 1024 * 2;
tempBuffer.mData            = malloc( 1024 * 2 );

status = AUGraphInitialize(graph);
checkStatus(status,"At AUGraph Initalize");
}
</code>
Now, I want to add a high pass filter or band pass filter to the input audio before processing it in the render callback. So I think I should add something like this :
<code>desc.componentType          = kAudioUnitType_Effect;
desc.componentSubType       = kAudioUnitSubType_BandPassFilter;
desc.componentFlags         = 0;
desc.componentFlagsMask     = 0;
desc.componentManufacturer  = kAudioUnitManufacturer_Apple;
</code>
But I didn't manage to create / connect the nodes properly to make this work...
Thanks for your help !
Comment: Is your render chain working without the band pass?
Comment: @Dave I used to utilize classic audio unit initialization, but I started to switch to AUGraph. My code above seems to work even if I'm not sure I did it properly.
Answer: When I wanted to do a similar thing, I found your question - unfortunately without any solution :-( Now a few days later a managed to do it. So this my working solution, for everybody struggling with the same problem:

Prepare the Remote_IO's input as a STANDALONE audio unit for recording audio.

Add a callback to the input. I'll call it the "Mic Callback".
(NOTE: Apple calls this as an input callback, whereas in fact, this is just a NOTIFICATION callback, to tell your app that samples are available, and you have to "ask" the input unit explicitely to render them...)

Establish an AU Graph: converter unit -> filter -> generic output
(NOTE: generic output can convert, however the filter not. So if you want to feed in the chain anything else than the 8.24 format, then you need the converter.)

Add a callback to the input of the converter unit. I'll call this as the "Process Callback".

Now the key point is that the regular calls by the operating system to the Mic Callback will drive the whole processing chain:

In the Mic Callback, prepare a buffer, which is as large as the number of input samples available to render by the mic, and "ask" the GENERIC OUTPUT (!) to render - the same amount of - samples (by calling AudioUnitRender) into it. NOTE that you're not asking the input unit to render but the output unit, at the end of the graph!

The Generic Output will forward the render request until it reaches the input callback of the converter unit, i.e. the Process Callback. In this one, you get as in input parameter a pointer to a buffer, where you have to fill in the requested number of samples. At this point, ask the INPUT UNIT to render samples exactly onto this buffer.

And viola, you're done. You have just to start/stop the mic unit!
The key in the whole process is that always an output unit have to drive the whole rendering process and as the generic output don't have any regular "need" to get samples, you have to ask it manually to render samples. And this has to be synchronized to the A/D converter of the mic, which wants to put out at regular time intervals samples.
Theoretically you could chain the input unit and your graph, but there are two problems:

The mic input unit counts as an output unit and there cannot be two output units in a graph...

When to units are connected together then there cannot in between a callback. If you put one there, it will never be called... So you would put the callback at the end of the chain and expect that the "samples are available" notification will we propagated from the output of the mic unit to the output of the generic output. However it will not. Therefore you have to separate the process into the mic input unit and the processing chain.

Final note: if you want directly render the mic's samples into the converter unit then you have to set the same stream format (preferably the canonical output format of the remote io (i.e. 16 bit, integer) to the input of the converter unit and to the output of the mic unit (i.e. input scope of the remote io, bus 1).


Facebook Cache won't flush?

Question: I just renamed my facebook application, but the Like button and the link sharer didn't change, even I used the debug tool (no more Linter tool ??). Any Idea how can I do that?
Answer: you have to clear the facebook cache of your app/url.
you can do this on the facebook url linter. http://developers.facebook.com/tools/debug
insert the url which you are tring to like, and you will be presented with the info facebook see's. side effect is that its refreshes facebook cache from this url.
Comment: http://developers.facebook.com/tools/debug is not clearing the cache, I read somewhere that debug tool can't flush links with more than 100 connections
Comment: I tried it, no use. Debug tool won't flush cache.
Comment: yeah facebook changed a lot in the last 3 years. it seems right now it only works with https urls .. dont know why.
Comment: It should work for all URLs. You can do it programatically as well by making a post request to graph URL and pass URL as ID in data.

This might help http://alfanso.com/asking-facebook-to-clear-cached-data/

Facebook Cache won't flush?


Joomla: How to change template on a specific article

Question: Is there a way to change the template on a specific article only?
Note that it should work without linking the article to any menu.
Answer: If you want the template override not to depend on the menu position than the standard joomla way of assigning a different template to a menu will not work. You will need to get your hands dirty and write some custom code. You will need to use the article_id as a trigger for template switch.
I did something like that at work but don't remember now how exactly this is achieved. I will post my code here as soon as I locate it.
EDIT: Found the code :)
You need to edit the file /includes/application.php, specifically the getTemplate() method. At the end of this method, just before:
// Fallback template
if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) {
  $template = 'rhuk_milkyway';
}

you can add your condition for applying a custom template, like so:
//CUSTOM TEMPLATE FOR THE ARTICLE 13
if (JRequest::getVar('id')=='13' && JRequest::getVar('option')=='com_content') {
  $template = $custom_template_name;
}

This will apply the custom template which name is inside the $custom_template_name to article with id=13. You can also use it to apply a different template to components, like I did with simplecaddy:
//TEMPLATE FOR SIMPLECADDY
if (JRequest::getVar('option')=='com_caddy'){
  $template = 'shop';
}

Answer: You should really try to stay away from hard coding anything in to the template if it can be avoided. Not sure why you would specify that the article not be linked from a menu. The easiest way to accomplish this without having to write and code is to create a new menu, then add a menu item that links to the article you want to specify the template for. You don't have to put the menu in a module anywhere so it will never show up on the site, but it will show up  in the menu assignment in the template manager.
You can do this with single articles, categories, sections, or even components. As long as you have a menu link to associate the template to. I always create an Admin only menu to put links that are needed to run the site, but do not need to be accessed by users.
Answer: As Brent said, avoid the temptation to modify core Joomla code! Doing this will likely stop you from doing Joomla upgrades 'cos you know it's going to break the core changes that you made.
Apart from the "hidden menu item" technique (which is useful but can break SEF URLs in some situations), a useful tool is Chameleon. This allows you to select specific articles/categories/sections (plus things like browser type, user group, component, whatever) and use these to trigger a certain template.
Answer: Though this is an old post, I thought I'd share my thoughts: You can easily change template on a single article, by implementing the onAfterInitialize() - function in a system plugin. No need to modify the Joomla core.
This works for Joomla 1.5, but should also work in 2.5:
function onAfterInitialise(){
  if(true){ // f.ex. test for article ID or whatever
    JRequest::setVar('template', 'beez'); // change template
  }
}

In joomla 3.x versions, url-parameters are handled differently. The following was tested in joomla 3.4.8:
public function onAfterInitialise()
{
  $app=JFactory::getApplication();
  if(true){ // f.ex. test for article ID or whatever
    $app->input->set('template', 'beez3');
  }
}

More on writing plugins for Joomla here
Comment: I have create a plugin with your code but when I try to check for the  current component like this ```$app->input->get('option') == "com_content"``` nothing happens, could you help me?
Comment: Try to check if the plug-in function is actually run, f.ex. with print_r($app->input); die(); Here you will also see what parameters are defined in the $app->input object...


Preferences layout for non preferneces data

Question: I have an activity which is used for editing some object. Currently its layout as a simple form but I'd like it to be more similar to preferences activity. I'd like to use the same layouts which are available there (e.g. CheckBoxPreference) but save changes to my object rather than to preferences. Is there an easy way to have an activity which looks like preferences but doesn't use preferences at the back back-end?
Answer: You can achieve this using next 2 steps:

Set preference to be not persistent via android:persistent="false" in xml or via setPersistent(false) in code. This way default SharedPreferences will not be modified when user changes values in preference UI.
Handle value changes via OnPreferenceChangeListener listener registered using setOnPreferenceClickListener. This will allow you to intercept changes and handle them the way you need.
Comment: Thanks. The 2nd option makes sense to me since I have another global preferences page which is persistent and needs to be this way
Comment: Hi sorry for raising a year old comment but is this generally a good way to code or should I code forms from scratch? I also would like the idea of simply using the preferences forms which conform automatically to the OS theme rather than manually creating forms + themes from scratch. thanks for any help
Answer: Yes, you can provide your own implementation of SharedPreferences and save your data to somewhere that is not preferences, while still using the same UI and XML definition. See this question, and this link. The sample link is pretty complex since it is writing data back to the database directly, but it's very easy to replace with a plain Map and then retrieve the data from the Map into your object. Or, if you want the data saved immediately, just write it straight into your object.


Using Apache's remoteip module with the HTTP Forwarded header

Question: I'm running Apache behind an Nginx reverse proxy and want to show the original source IPs of the requests in Apache's logs using the remoteip module.
The official standard header for passing that information from Nginx to Apache is Forwarded. However, Forwarded contains additional information aside from the original IP itself, in contrast to the common (but non-standard) X-Forward-For. It seems that this causes problems for remoteip.
Using the following Apache configuration
RemoteIPHeader Forwarded
LogFormat "%a <Forwarded: %{Forwarded}i>" forwarded
CustomLog /var/log/apache2/forwarded.log forwarded

my log entries look like this:
127.0.0.1 <Forwarded: for=172.16.16.1; host=my-host:443; proto=https>

That is, %a is not updated to the original IP, even though the Forwarded header is present.
If I configure my reverse proxy to pass just the IP using the X-Forwarded-For header and configure remoteip to use that field instead then everything works as expected.
However, I'd prefer to use the header recommended by the standard -- is there a way to do this?
I'm using Apache 2.4.10.
Answer: The Forwarded header is currently not supported by remoteip. See this ticket in Apache's issue tracker.


Why didn't Nightcrawler teleport everyone to a far place?

Question: At the end of X-Men 2 (2003), when they're trying to escape from the flood, why didn't Nightcrawler, teleport everyone to a far place?
Answer: There wasn't time.
Although Nightcrawler's powers aren't really covered very well, in the movies he is limited as to the amount he can carry at anyone time, usually this is one person.
He'd have to grab each person in turn, teleport them away, teleport back, grab the next and continue repeating until they were all away.
This would have taken too long as there were a lot of people to transport and the physical toll would likely have killed him.

Nightcrawler is able to teleport to any place, as long as he knows where he is going. His teleportation gives him the appearance of being vaporized into a very brief puff of blue or pure black smoke or gas wherever he teleports to or from. As a teenager, Nightcrawler could not teleport mulitple people without risk of extreme exhaustion or fatigue.
Wikia

Of course, out-of-universe, it's because Jean holding back the water is much cooler.
Comment: Physical toll makes more sense, but it wasn't obvious. There were 14 people, including himself. Even if it takes 3 seconds to teleport each person and come back, it would be better than Jean holding back the water.


Youtube videos do not load completely

Question: Videos on YouTube load for a few seconds and then it shows that it has completely loaded but not really. The video plays for some seconds and then stops and doesn't load any more. What's going on?
Comment: This sounds like you have internet issues. Do you get internet problems from time to time?
Answer: I would start by finding out which version(s) of flash (or flash alternatives are installed).
<code>$ dpkg -l | egrep "flash|gnash|swf"
</code>
Also check if was installed manually (some 64-bit users do this):
<code>$ find ~/.mozilla | grep -i flashplugin.so
</code>
Answer: There is an old bug with flash and sound buffer. Videos are usually loaded OK, but as soon as the sound buffer is full videos will pause (usually around 3-4 seconds).
Try skipping through video to check if it starts playing again for 3-4 seconds. If it does you have to upgrade your flash and ALSA (probably use newer ubuntu version), if it doesn't then check your available disk space.
Answer: I have figured out over time that flash tends to have problems it crashes and refuses to play certain videos on youtube what i done to fix this issue several months ago was <code> sudo apt-get install gnash</code> installing Gnash becomes default over flash

Youtube videos do not load completely


Added SSH User, No Home Directory

Question: So, on a Yosemite system, I enabled Remote Login (ssh) and added a specific user. When I ssh as this user, my home directory defaults to /var/empty. Was I supposed to do anything else to enable a correct Home directory? (Note that the system has an Active Directory network account server.)
Comment: How / where did you add the user?
Comment: Via System Preferences > Sharing. When clicking on Remote Login, I added the user via the + button, then selected the user out of the list when clicking on "Network Users".
Answer: So not sure how you created the user but if you are expecting a locally cached home directory, and this is not a network account, you will want to user commands like the following to create the user account:
Credit for Script: http://wiki.freegeek.org/index.php/Mac_OSX_adduser_script
<code>dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME
dscl . -passwd /Users/$USERNAME $PASSWORD
</code>
If you are looking to have the user directory provided by ActiveDirectory then ensure you have the following checked in your Active directory config and that all your server side AD settings are correct for this:
'User UNC Path from Active Directory to derive network home location'

Added SSH User, No Home Directory


wxWidgets (wxRuby) with Ruby 2.0

Question: I'm looking for an Win32 wxRuby gem for Ruby 2.0, does someone know where to find it? I didn't have success trying to build it and it seems the project is dead.
Comment: What does "I didn't have success trying to build it" mean? Did it fail during the build? Did it build but not work? Show the pertinent lines if there were errors. As is, you didn't show much to help you with, other than possible search-engine results, which you should have already done as part of your due-diligence.
Comment: @theTinMan I used DevKit from RubyInstaller and I have problems and errors building Wx, Swig and Wxruby. As it is a really complex thing and I have an application on production, I didn't want to spend time testing and debbuging it. I know it is not the right "study approaching" but need to focus on my app dev, not Wxruby library.
Answer: I'm still on the battle, I successfully built wxRuby using Ruby 2.3 on linux Ubuntu (Xenial 16.04) and Mint (17 and 18), for both i386 and amd64, testing and using instructions from here and here:
<code># temporary add this source for a complete libwxgtk2.8
echo "deb http://archive.ubuntu.com/ubuntu precise main universe" | tee /etc/apt/sources.list.d/precise-copies.list
apt update

# install required packages
apt-get install libwxgtk2.8-dev libglib2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev pangox-1.0-dev build-essential curl git

# install recommended swig version
wget "http://downloads.sourceforge.net/project/swig/swig/swig-1.3.38/swig-1.3.38.tar.gz?r=&ts=1471028964&use_mirror=ufpr" -O swig-1.3.38.tar.gz
tar zxvf swig-1.3.38.tar.gz
cd swig-1.3.38
./configure
make -j8
make install

# install ruby, using RVM
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm install 2.3.0

# wxRuby
git clone https://github.com/cinnammon/wxRuby-ng
cd ~/wxRuby-ng
export WXRUBY_EXCLUDED=GLCanvas
export WXRUBY_VERSION=2.0.1
# add "Config = RbConfig unless defined?(Config)" to the top of ./rakefile
# and change 'raise "This version of Ruby (#{RUBY_VERSION}) is not supported"'
# on line 38 for "SWIG_MINIMUM_VERSION = '1.3.37'"
rake
# I got some "extern" "static" declaration errors on some files,
# just changed "static" to "extern" and all went well
rake install

# remove source
rm /etc/apt/sources.list.d/precise-copies.list
apt update
</code>
I will keep trying to port it to Windows or maybe stick to Linux, but will update this post :)
Comment: Guys, I did it, success on Ruby 3.0.1 :)
Will post results soon
Answer: Latest ruby version which supports wxruby gem is 1.9.1 (gem is named wxruby-ruby19, gem named wxruby is dedicated for ruby 1.8) and wxruby project is no longer developed. So if you need to use ruby 2.0 you are on your own now. But try to ask at http://www.ruby-forum.com/forum/wxruby where some of former wxruby developers are still active and eager to help.

wxWidgets (wxRuby) with Ruby 2.0


Who will be target of Kalki?

Question: By seeing today's world scenario, who do you think, will be target of Kalki.
Because even today, we can see the different people having different paths.
Is there, any reference, who will be actually target. (Off course those will be adharmi people, but any specific detail?)
Comment: Did you read the Kalki purana?
Comment: @Wikash_ why do you want to know?
Comment: No avatar can even move a finger without Parabrahman willing it....so basically, you will know just in time....
Answer: As per Śrīmad-Bhāgavatam (Bhāgavata Purāṇa): Skandha 12: Adhyay 2:

विचरन्नाशुना क्षौण्यां हयेनाप्रतिमद्युति: ।
नृपलिङ्गच्छदो दस्यून्कोटिशो निहनिष्यति ॥ २० ॥
Displaying His unequaled effulgence and riding with great speed, He will kill by the millions those thieves who have dared dress as kings.
Comment: So he won't be having a single target, but a collection of targets that needs killing.
Comment: Politicians seems the target
Answer: The objective role and activities of "kalki" a avatara of Lord Vishnu that has yet to come is described in various Hinduism scriptures like puranas and itihasa.
First of all let us see what Mahabharata is saying about who will be target of Kalki. It
Is mentioned in Mahabharata -Vana Parva-Chapter 191 by sage Markandeya  that  Kalki will destroy  foreigners as well as  dacoits and thieves and bandits.

ततस्चोररक्षयं कृत्वा द्विजेभ्य: पृथिवीमिमाम् | वाजिमेधे महायज्ञे
  विधिवत कल्पयिष्यति || 1 ||
Markandeya continued, 'Having exterminated the thieves and robbers,
  Kalki will, at a great Horse-sacrifice, duly give away this earth to
  the Brahmanas, and having established anew the blessed rectitude
  ordained by the Self-create, Kalki, of sacred deeds and illustrious
  reputation, will enter a delightful forest, and the people of this
  earth will imitate his conduct

Matysa Purana - Chapter 273.27  is telling us that at the time of Kalki avatara Yavanas will dwell here for sake of profit. All types of people will steadily detroit by following contrary way of life i.e. they will be adharmik. Kings will be untruthful and will be greedy. All these type of people who are following adharmik way , unrighteous way will be overpowered and will be killed by Kalki, no matter they are Mlecchas or Aryas. And only good people will remain.

कल्किनानुहता: सर्वे आर्या म्लेच्छाच्श्र सर्वश: | अधार्मिकाच्श्र
  येSत्यर्थ पाषण्डाश्चैव सर्वश: ||
The people will steadily deteriorate by adopting a contrary course of
  life , so along the kings will be greedy and speakers of untruth. All
  will be overpowered (killed) everywhere by Kalki whether they be Aryas
  or Mlecchas.

The Bhagavata Purana Skanda 10-Chapter 40- Verse 22 is suggesting that the target ogf  Lord Kalki will  also be meat eaters people who will be posing themselves as kings.

नमो बुद्धाय शुद्धाय दैत्यदानवमोहिने । म्‍लेच्छप्रायक्षत्रहन्त्रे
  नमस्ते कल्किरूपिणे ॥SB 10.40.22  ॥
namo buddhāya śuddhāya daitya-dānava-mohine
  mleccha-prāya-kṣatra-hantre namas te kalki-rūpiṇe
Obeisances to Your form as the faultless Lord Buddha, who will
  bewilder the Daityas and Dānavas, and to Lord Kalki, the annihilator
  of the meat-eaters posing as kings.

we find here  mentioning that Lord Kalki will destroy the meat eater kings of the earth. i.e. we can say that the meaning of this is that he will end the rulers who will have  indulged themselves in materialistic things.etc. and falsely considering themselves as kings and rulers.

So in conclusion Kalki would rid the earth of the unrighteous and implant dharma again and his target will be unrighteous people including people from outside of bharata as well as insiders i.e. Aryas and Mlecchas. All the people who are unrighteous including kings and thieves and bandits etc.
Comment: "meat-eaters posing as kings" - you need to find a better translation. The word used is "mleccha." It doesn't translate to "meat-eaters." Kshatriya kings are allowed to hunt and eat meat. ISKCON translations seem to convert gullible readers to vegetarians with wrong and misleading interpretations like this.
Comment: Well right now more indians are living abroad in western countries then westerners in india :p
Comment: What is the correct translation of mleccha.
Answer: According to Kalki Purana, Kalki Avatara will kill Buddhists, Mlecchas and Yavanas.
The introduction of the Purana summarizes this as follows:

Among the upa-puranas or sub Puranas, the Kalki Purana is most sacred
  and widely respected. At the end of Kah-yuga, the Supreme Lord,
  Hari, will incarnate as Lord Kalki and kill all the mlecchas, yavanas,
  atheists, and Buddhists of the world that defy the Vedic authority.
  The pastimes of Lord Kalki are the subject matter of this literature,
  which is presented in story form. Exalted personalities can see
  everything, past, present, and future. For this reason, there is no
  fault in narrating these future events as if they had already
  occurred. The Kalki Purana consists of thirty-five chapters.

And, we can find the details of these battles against the Buddhists in subsequent chapters of the Purana.
For e.g. Chapter 14 states:

Lord Kalki Conquers the Buddhists Who Opposed Him
Text 1
Suta GosvamI said: Just as a lion, the king of the jungle, attacks a
  female elephant, Lord Kalki, the life and soul of all living entities,
  attacked the army of Buddhists.
Texts 2-3
Thereafter, a fierce battle took place between the Buddhists and Lord
  Kalki When the Buddhists became disheartened and began fleeing from
  the battle, Lord Kalki, acting as the commander-in-chief of His army,
  addressed the opposing warriors, who were injured in the battle, whose
  garments and armor were scattered here and there, whose hair had
  become loosened, and who were screaming loudly in pain: О Buddhists,
  do not run away from the battlefield. Stay here and fight to the best
  of your ability so that you will avoid the shame of being considered
  cowards.
Although Jina had been injured, he became enraged upon hearing Lord
  Kalki's taunting words. After picking up his sword and shield, he
  rushed at Lord Kalki, who was sitting on His horse. In the duel that
  ensued, both fought with great enthusiasm so that even the demigods,
  who were watching from the heavens, became surprised to witness Jina's
  skill in fighting.
Text 6
The greatly powerful Jina pierced Kalki's horse with his trident and
  then made the Lord fall unconscious by his onslaught of arrows. At
  this, the wicked Jina attempted to capture Lord Kalki, but was unable
  to pick Him up.
Text 7
Lord Kalki had become so heavy that Jina could not even move Him and
  this fueled his rage. Being unable to take Lord Kalki prisoner, Jma
  finally took His crown and weapons and fled.

Text 12
Indeed, the heavy breathing of Lord Kalki's horse caused many opposing
  soldiers to fly into the sky and then fall down at distant places.
  Some of them fell upon the horses and chariots as they descended onto
  the battlefield.
Text 13
Within a short period of time, Gargya and his associates killed six
  thousand Buddhist warriors. Bhargya killed ten million enemy soldiers
  with the help of his army, and Visala killed twenty-five thousand.

And, from Chapter 16, we have:

Text 1
Suta GosvamI said. After killing the Buddhists and mlecchas of
  Kikatapura, Lord Kalki took their wealth and returned to His capital,
  along with His vast army.
Text 2
Lord Kalki, the unhmitedly powerful protector of religious principles,
  next went to Cakratlrtha and took a ritualistic bath, according to
  prescribed procedure.
Comment: I don't think atheists and Buddhists are directly mentioned. This is how Srila Prabhupada choose to translate/interpret it. Corruption in my view.
Comment: Well Buddhists and Mlecchas are mentioned in the chapters I have quoted .. @Viper91
Comment: @Viper91 The [words used](https://i.stack.imgur.com/NJkKs.png) are: 1) bauddha 2) [pāṣaṇḍa](http://spokensanskrit.org/index.php?mode=3&script=ia&tran_input=pASaNDa&direct=se&anz=100) (heterodox/heretical) 3) mleccha
Comment: Yes so Buddhists and Mlecchas were not inserted by the translator. That's what I meant. @Viper91
Comment: Please note that this about Buddhists who DEFY the Vedic authority. Not every buddhist will be killed.
Comment: "Please note that this about Buddhists who DEFY the Vedic authority. Not every Buddhist will be killed." - where did you read this exception?! Buddhists don't accept the authority of the Vedas. @Wikash
Comment: @Wikash_ It's "Buddhists" over 400,000 years in the future (and with really obvious supernatural stuff like the giant Rakshasa lady in the sky). No one really knows what they believe.
Comment: @SayNoToCensorship Actually the Buddhist's God-like figure merges with Kalki, so they are actually right to some extent in their worship if I remember correctly. Got to love Hinduism ardently sticking to its balanced outlook on villains. Probably why I believe in it so much, that's a weird thing for any human group to be completely consistent about.
Answer: https://www.sacred-texts.com/hin/m03/m03189.htm
This is how Kali will be born

And commissioned by Time, a Brahmana of the name of Kalki will take his birth. And he will glorify Vishnu and possess great energy, great intelligence, and great prowess. And he will take his birth in a town of the name of Sambhala in an auspicious Brahmana family. And vehicles and weapons, and warriors and arms, and coats of mail will be at his disposal as soon as he will think of them. And he will be the king of kings, and ever victorious with the strength of virtue. And he will restore order and peace in this world crowded with creatures and contradictory in its course. And that blazing Brahmana of mighty intellect, having appeared, will destroy all things. And he will be the Destroyer of all, and will inaugurate a new Yuga. And surrounded by the Brahmanas, that Brahmana will exterminate all the mlecchas wherever those low and despicable persons may take refuge."

Kalki will conduct a horse-sacrifice

"Markandeya continued, 'Having exterminated the thieves and robbers, Kalki will, at a great Horse-sacrifice, duly give away this earth to the Brahmanas, and having established anew the blessed rectitude ordained by the Self-create, Kalki, of sacred deeds and illustrious reputation, will enter a delightful forest, and the people of this earth will imitate his conduct, and when the Brahmanas will have exterminated the thieves and robbers, there will be prosperity everywhere (on earth). And as the countries of the earth will one after another be subjugated, that tiger among Brahmanas, Kalki, having placed deer skins and lances and tridents there, will roam over the earth, adored by foremost Brahmanas and showing his regard for them and engaged all the while in slaughtering thieves and robbers. And he will exterminate the thieves and robbers amid heart-rending cries of 'Oh, father--' 'Oh, mother!--'O son!' and the like, and O Bharata, when sin will thus have been rooted out and virtue will flourish on arrival of the Krita age, men will once more betake themselves to the practice of religious rites.

The goal of Kalki is that he should restore peace and order to earth and inagurate a new yuga, the Satya yuga (age of truth) and he will continue to subjugate countries and kill the unrighteous people who are mlecchas wherever those low and despicable persons take refuge. He will later conduct horse-sacrifice in which, he will give away the entire earth to brahmanas. He will later roam around the earth and exterminate the thieves and robbers.

Who will be target of Kalki?


Looking for postal areas for Germany

Question: Does anyone of you know how and where I can download postal area districts of Germany in shapefiles (download free of charge if possible).
Comment: Please, do not forget about ["What should I do when someone answers my question?"](https://stackoverflow.com/help/someone-answers)
Answer: A more recent shapefile can be found here:
Postleitzahlen Deutschland (http://www.suche-postleitzahl.org/downloads)
Licensing same as OpenStreetMap Copyright and License, where the data comes from.
Answer: You find a dowload here : http://arnulf.us/PLZ
However, the data is from 1999 and I'm not sure if it still is up-to-date.
Comment: Arnulf did a nice job back then and as far as I can tell it's the only freely available dataset. But there are many changes , although minor, changes to the postal area geometries every year. But on a small scale you should be fine.
Comment: The url is not responding. Any other sources?
Comment: I search for all but can anybody tell me which one is latest and matching with validate postal codes of Germany? because number of PLZ polygons what available in all shapfiles are around 8200. Is it matching with latest postal code (valid postal codes). If it is matching no doubts i will say big thanks to blogger.
Answer: Arnulf Christl's personal website arnulf.us, which contains the description of his public domain dataset of German postal codes, is unavailable at the moment. You can find an archived version at the Wayback Machine.
The dataset itself can be downloaded from the website of Arnulf's company Metaspatial  (alternatively, there's a snapshot at archive.org).
A different dataset is a GeoJSON file of postal codes extracted from OpenStreetMap by the German company Folge 3. It's a bit patchy, and not quality controlled (it includes some Spanish postal code areas, for example).
Answer: the zip-code from Arnulf 1999 is too old,
i was used this file but it was wrong - for 5digits - i check with this svg - map http://www.maps4office.com/interaction-svg-maps/ - and level 8 (zip-code) was right.
my german is not good but i change to DE:
http://www.maps4office.de/shop-detail/deutschland-citymarker/citymarker-de-postleitzahlen-fuenfstellig/  and the map is from 2014 ... but it's not free

Looking for postal areas for Germany


Menu items in Lightning Experience is in alphabetical order rather than logical order.

Question: Just curious to see the menu items in the Lightning Experience setup is in alphabetical order rather than logical order as it is in Salesforce classic. Usually, it starts with Users, Profiles, etc... Is that something we can do to get it in the logical order? Please advice. Thanks
Answer: Nope. The new Setup screen is designed to be alphabetical intentionally to make it easier to find items. I realize that people that are used to Classic have been "trained" over the past 19 years to accept the rather chaotic ordering of Setup, but the new UI is arguably better, since it is alphabetical, which is usually a lot easier for us humans to scan through.


Is an 18-55 mm kit lens enough for a beginner?

Question: I just bought a Canon EOS 200d or sl2 with single kit STM lens (18-55mm) . Is it enough for a beginner? Or should I also a buy 55-250mm lens now?  If yes, then shall I buy IS ii  lens or STM? I want to buy at cheap price.
Answer: Do you understand what kind of photography you want to do, what the limitations of the kit lens are, how the kit lens is going to hold you back and how the 55-250 would solve those problems?
If the answer to any of those four questions is "no", then certainly don't buy anything. It may be the kit lens is all that you need given your (current) skill level. It may be that you don't actually want a telephoto zoom - you might want a fast prime. You might want an ultrawide lens. You might want a better normal lens. You might actually want to invest in lighting gear instead. Etc etc etc.
Only once you understand the problem you're trying to solve and how the bit of kit you're considering solves that problem should you even consider buying it. Anything else is just a waste of money.
Answer: The short answer is you should never buy a lens if you don't actually know whether or not you need it. Your first priority should be learning and practice. Not gear acquisition.


On license process on Arxiv

Question: Suppose I have published my inventions (written in papers) in arxiv. Can any information stated in papers be stolen? Is there any license process in arxiv? I want to know what is this license process in arxiv. Can my inventions be preserved by the license?
Comment: See https://arxiv.org/help/license for information about normal academic works. For patentable things, patent law applies. And patent law has changed recently.
Comment: If you do not want to distribute your work, ArXiv is not for you.  Also, you do not deserve to be on ArXiv.
Comment: What do you mean by "inventions"? Patentable "devices"? Or just ideas and research results?
Comment: I think the main point of the license is to legally allow the arXiv to distribute your information. I doubt Cornell hire lawyers to prevent others from stealing your work...
Comment: New ideas in physics.
Answer: If you publish normal papers on arXiv (or pretty much anywhere), people would be plagiarizing if they copy it and present it as their own. You can retain most of the copyright, other than a license to arXiv to distribute what you post or you can give a broad license. But "stealing" your ideas, in the sense of decoupling your name from them is no longer ethical.
However, others can "use" your ideas and extend them. You don't "own" ideas because you hold copyright to the expression of them. In particular, if you present incomplete ideas in a publication, others can complete and extend them. In that regard arXiv is no different from any other "publication venue".

Patents are different. There was a time when the "inventor" of a device had more rights then currently (US law). But a change was made to permit patentability by the "first filer" rather than (necessarily) the inventor. (Note that this is a naive explanation.) So, it is probably necessary to hold patentable material close until you are ready to file.

On license process on Arxiv


Is Moon really rotating about its axis?

Question: Wikipedia says yes but on Newtonian arguments. From general relativistic point of view Moon is not rotating but moving along geodesic trajectory. And like parallel transport of a vector (pointing to the direction of motion) on a surface of a sphere along equator, from outside it seems like rotation. So, would Moon still be rotating if we remove the Earth? Would Foucault pendulum on Moon detect its rotation?
Comment: *"From general relativistic point of view Moon is not rotating but moving along geodesic trajectory."* I believe that from general relativistic point of view, Moon is rotating with respect to the stars and stars are rotating with respect to the Moon.
Comment: Related: http://physics.stackexchange.com/q/112356/2451
Answer: It is really rotating, with a period of one month, according to a Foucault pendulum. That's the prediction of Newtonian gravity, and GR's prediction can't diverge much from that when the gravitational field is so weak. (Also consider that a Foucault pendulum on Earth empirically measures the length of the sidereal day, not the solar day.)
Comment: Where the flaw in my argument: GR says that parallel transport in curved spacetime causes vector to rotate. This rotation is due to and depends on nonflat spacetime metric and NOT on intrinsic property of vector (angular momentum). So even if vector (Moon) has zero angular momentum it still, according to GR, has to rotate on 360 degrees every ellipse cycle (like parallel transport of a vector along equator). But with zero angular momentum Foucault pendulum will show nothing. And when we remove the Earth (flatten metric) rotation of Moon in GR picture will disappear, unlike Newtonian thinking.
Comment: @Pavel Chernov: The moon is not a vector. More precisely: The position of the moon is not a vector, it is a point on the spacetime manifold.
Comment: I agree on that. But if we associate space-vector pointing originally from center of the Moon to the direction of motion, would it rotate due to moving in curved spacetime even with zero angular momentum of the Moon?
Answer: The moon rotates once every 27 days (roughly). In order to keep one side facing the Earth, it needs to rotate. If it didn't rotate, it would look like it was rotating backwards as it orbited the Earth.

Is Moon really rotating about its axis?


Chrome Canary, Picturefill and the missing src attribute

Question: I've been working on an implementation of RoyalSlider and Picturefill, which has been working really well in all browsers. However, I've noticed that the latest Chrome Canary no longer adds the correct src attribute to an img tag when picturefill runs on a page. This is different to every other browser currently, and I assume it's something to do with srcset being supported natively in canary now, but caniuse says that it has been supported in Chrome since v34, and I don't have any errors on Chrome.
Basically the implementation is now broken for me on Canary because RoyalSlider looks for a src attribute to create the slider from. Since there isn't one, RS can't create a slider and I just get the preloader.
Here are some screenshots that illustrate what I mean https://i.stack.imgur.com/EzJms.jpg
Notice in Canary that even though the srcset attribute remains small.jpg, even though the image shown is large.webp.
I need to figure out a way of telling RS which image to load, which seems near impossible at the moment as nothing has changed in the DOM specifying which file picturefill (or possibly Canary) has deemed appropriate to use.
Answer: According to Picturefill no longer applying src in Chrome Canary #295 on Github, the reporter "got exactly the same result turning picturefill off." and closed the bug report. FYI: a src is required, not justsrcset.


Does the recent announcement of information transmission via entanglement really indicate superluminal information transfer?

Question: Given that various answers here at Physics assert that information isn't transferred (such as this Phys.SE post), and given recent announcements, does this invalidate our understanding of what's happening? Is information actually translated superluminally?
Answer: The article is extremely misleading and wrong in many important aspects. Don't read it.

Basically, quantum entanglement means that two particles are inextricably linked, so that measuring the state of one immediately affects the state of the other, no matter how far apart the two are - which led Einstein to call entanglement "spooky action at a distance".

You'll read this statement quite often. Depending on the interpretation it's not completely wrong. If you subscribe to Bohmian mechanics, there is a nonlocal effect (however, it's a randomised effect that cannot be used for signal transmission). If you subscribe to almost any other interpretation, there is no nonlocal effect, hence no "spooky action" at all. Since most people don't subscribe to Bohmian mechanics, this is mostly wrong.

Alice and Bob want to share cryptographic keys, and to do that, they need Charlie's help. Alice sends a particle to Charlie, while Bob entangles two particles and sends just one of them to Charlie.
Charlie then measures the two particles he's received from each of them, so that they can no longer be differentiated - and that results in the quantum state of Alice's particle being transferred to Bob's entangled particle.
So basically, the quantum state of Alice's particle eventually ends up in Bob's particle, via a way station in the form of Charlie.

That's just wrong, that's not how it works. The description is quite imprecise and the crucial step is missing: Charlie needs to send the result of the measurement to Bob, and this is done via telephone or whatever (classical communication). Bob then needs to perform a quantum operation conditioned on the outcome. Only then can he be sure to have Alice's state.
Finally:

And while many people assume that quantum teleportation would result in faster communication, in reality, decrypting the quantum state of the entangled particle requires a key, which needs to be sent via regular, slow communication - so quantum teleportation wouldn't actually be any faster than the internet we already have, just more secure.

That's also wrong. The whole point is to distribute the key via teleportation (this is called quantum key distribution) not the message. As mentioned above, it does indeed require classical communication. The human message - probably a bitstring - will then be send via the usual channels but encrypted with the quantum key.
If the key was shared via classical communication, the whole protocol would be exactly as secure as the classical key distribution, so we wouldn't have to go through all this trouble.
Finally, that is the most important (and correct) part of the article:

But the fact that both teams were able to use existing telecommunications infrastructure to achieve such long-distance teleportation at all is a huge deal - and something that hasn't been done outside of the lab before.

This experiment doesn't give anything new in terms of physics. It's merely implementing a technology in the real world that so far only existed in the lab (and we can achieve teleportation between labs that are farther apart than that). It's a technological achievement more than a scientific breakthrough. That doesn't make it less of an achievement though.
Comment: Excellent, thank you. The article was suspect, but it's good to have an explanation of exactly *why* it's wrong from someone who understands it.
Answer: No, nothing has occurred that is not predicted by quantum mechanics theory, and quantum mechanics theory does not predict superluminal information transport.  Quantum teleportation is not superluminal, and entanglement cannot be used to transport information.
Comment: Popular science articles don't make scientific claims, working scientists do.  If a scientist publishes a peer-reviewed paper that makes such a claim, then you can worry about their argument.  If you see it in a popular science article, it simply means that the non-expert author of the article did not get their story straight, and it's not really worth further analysis.
Comment: Can you expand on this? It seems like the author of the article is claiming superluminal transmission of information. Can you be more specific about what invalidates his assertion?


What is this odd military salute-like gesture?

Question: Is there a word or phrase in Russian for this particular salute-like gesture? I recall reading a book written by Viktor Suvorov where he described soldiers recognizing a high officer with an expression he referred to as "devouring him with their eyes".  I had always wondered what that meant, but these soldiers are making this very distinctive expressive salute-like movement, and I suspect that this is what he meant.  Can someone confirm this, and if so, tell me what the Russian word or words for it is? This is from a video of Mr. Putin making some kind of ceremonial entrance into the Kremlin.  He walks up this long stairway lined with soldiers holding their rifles at the salute, and as he walks through, each soldier holds his head back with their faces cocked towards him, tracking him.
Answer: This is воинское приветствие ("military salute").
When standing in present arms position, the military salute is performed by assuming position of attention, looking the senior in the face and turning one's head as the senior moves. No hand gestures are made.
The military regulations require that the military salute is conveyed "in a precise and dashing manner" (чётко и молодцевато).
Comment: 64. Выполнение воинского приветствия с оружием на месте вне строя производится так же, как и без оружия (ст. 61); при этом положение оружия, за исключением карабина в положении "на плечо", не изменяется и рука к головному убору не прикладывается.
Answer: "Ravnenie na" Равнение на...
Something like "alignment to"
This means all soldiers must look at a certain mark, most common are Alignment to the left / right / tribune / commander. You can see this on military parades a lot. Here's an example https://focus.ua/files/images/0/-87397.jpg Soldiers here were given a command to align to tribune and salute the president. Note how some soldiers look straight forward, the 1st soldier in each row is in charge of keeping the distance between rows, others follow his lead.
Comment: @shabunc *равнение* does not make sense when the servicepersons are not in a formation (as they are on the picture).
Comment: @shabunc: no it's not. *равнение* means "formation alignment". It makes no sense to command "dress" if there's no formation to align. *Команды РАВНЯЙСЬ и ЗАПРАВИТЬСЯ подаются при нахождении военнослужащих в строю*
Comment: I'd rather +1 with this - technically it counts as  `воинское приветствие` but actually it's more specific.
Comment: @Quassnoi as far as I know (but I'm not a military person and can be wrong) it's still `равнение` - since they are actually not just staying but aligned
Comment: ну так они ж в строю - ну опять-таки говорю - значит я не прав
Answer: Both answers provided seems to me to be correct, I just want to mention that actually the borrowed word "салют" and derived from it "салютовать", though getting obsolete, still exist in Russian.
When one says "салютовать" to Russian speaker this is more about firing, raising hand to the head (there's also an informal verb козырнуть for this) - but still, technically what we see can be counted as отдавать салют.