Physical interpretation of mathematical operations

Question: I have difficulty interpreting mathematical operations in a physical way. For example, I see many people reading Newton's second law as "Resultant force equals mass times acceleration", however I now see a theoretical physics professor reading as "Resultant force is the same as giving mass an acceleration".
The difference may seem silly, but in my view it is extremely different, in the second sentence you can physically imagine the equation.
My question is, how do I extrapolate this "reading" to the other operations? Like division, exponential, logarithm, tensioners, etc.
Comment: We don't know why it seems that math is able to describe and predict physical observations. It just seems that it does so we use it.
Comment: Are you a physics student?
Comment: Yeah! First year of bachelor's degree in theoretical physics.
Comment: In my opinion one of the lovely things about the subject is how one equation can be understood in so many ways.
Comment: Not sure, but you might find Wigner's "Unreasonable Effectiveness of Mathematics" (google that phrase) relevant to your thinking, e.g., https://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness_of_Mathematics_in_the_Natural_Sciences
Comment: @SrAAlb, in my opinion, you are going to have to be exposed to a LOT of equations and work a lot of problems before you can actually read the physical reality behind those equations.  As you gain more experience, patterns will begin to emerge, but it is likely to take several years of experience to get to that point.
Comment: Thank you @eigengrau! The link is great, it answers a lot of my questions!
Comment: @David White, That's what's appearing my friend, thank you for the comment!
Answer: There are two separate things here.
There is the universe. It is a collections of stuff like electrons, light, and rocks, together with repeatable patterns of behavior. For example, if you put electrons near each other, they will repel each other.
Then there is physics. Physics is a mathematical description of the behavior of the universe. It is a set of laws like $f = ma$. Each law precisely (or sometimes approximately) describes some piece of behavior.
Physics and the universe are connected through measurement, or more generally experiments. You use a ruler to find the distance between two events, and a clock to find the time interval between to events. From this you can divide to find velocity. And so on.
So you can approach mathematical operations in two ways. First you have numbers taken from measurements that fit a mathematical relationship. Given m and a, you can calculate F.
And second, you can look at how the math describes the behavior. m represents a measurement of the amount of stuff in an object. a represents how quickly the object changes velocity. F represents a force, which might mean how hard two electrons repel each other. The math makes the description of the behavior precise in a way that words cannot.
Is this the distinction you are asking about?

Or is it this? You can approach $F = ma$ different ways.
Given $m$ and $a$, you can figure out how big is the force that caused that mass to accelerate that hard.
Or given $F$ and $m$, you can figure out how much acceleration you get from that force acting on an object of that mass.
Or given $F$ and $a$, you can figure out how much mass is in the object that that force caused to accelerate that hard.

Edit: Added an answer to the question.
The link in the comment below is to the 3blue1brown video Divergence and curl: The language of Maxwell's equations, fluid flow, and more. This is a good video that gives an intuitive feel for the divergence and curl operators.
Physics is often abstract and counter intuitive. Developing an intuitive feel can make it more understandable. However, don't carry it too far. As Feynman said, you can get farther using the abstract equations than intuition.
Physicists often take it the other direction. They think in terms of math to the point that they confuse the mathematical objects with reality. For example, they say two electrons repel each other because they generate electric fields, which are vector fields. They forget that vectors are mathematical tools used to describe reality.
This is a useful thing to do. Mathematical tools describe reality well. If you know how the math behaves, you know the universe behaves the same way.
So I recommend that you watch the video to get an understanding of what divergence and curl mean and why they are useful tools to describe the universe. But then get familiar with the math. The math will begin to feel natural as you get used to it.
Don't learn to read all equations by intuitive analogies. The analogies are almost always a less detailed description of reality than the math. They are generally approximately right. The incorrectness will bite you when you take it too far. The behavior of the universe is complex, and so the math describing it must get complex. Likewise an analogy would have to get just as complex to be a faithful description. You might as well use the math. It is a better tool.
To answer your question about how he went from the divergence operator equation to the intuitive picture: He skipped a few steps. Divergence is a kind of derivative. He has other videos that describing derivatives and vectors. The missing steps are in them. They are worth watching for both the intuition they provide, and the math in them.
Comment: I think my question is for the second approach you commented on more. My question is more about how I ´´convert´´ the mathematical operations into something physical. I want to look at math equations and ´´read´´ them in a physical way. The best example I can give is from this link: https://www.youtube.com/watch?v=rB83DpBJQsE
Comment: Basically, he treats the divergent operator as a "drain", the question is, how did he go from the equation that describes the divergent operator to this way of interpreting it? (it is something more physical to imagine a drain)
Comment: Based on this video I went on to ``read`` Maxwell's first and second laws in completely different ways.At minute 6:15 he explains the physical reading of the first law. I want to learn how to do this for all equations.
Comment: *Mathematical tools describe reality well.* – More poignantly, one could say that (well-known) mathematical structures were conceived that way because reality behaves similarly. For example, mathematical addition is commutative because many real operations like combining weights or the duration of time periods is commutative.
Comment: I was thinking about your conclusion, it makes sense and I agree! R. Feynman said when summarizing the Copenhagen interpretation as "Shut up and calculate!". Basically it's like you said, but it's sad to know that up front even the brightest minds only use mathematics (there is no physical interpretation)
Answer: You are asking how to extrapolate the physical reading of some equations to other equations and math operations.
There is no way but to learn more math and more physics. It is like the job of a good translator from one language to another. Only by mastering and practicing both languages, the translator can grasp the nuances of a text. The example of Maxwell's equations and their reading in terms of the description of fluids should make evident this point: it is possible to become proficient in this translation only by knowing the mathematical meaning of div and curl and the way they appear in the equations of hydrodynamics, understanding their meaning in that context.
Comment: Your conclusion makes a lot of sense, but as the other colleagues stated above, there will come a time when I should only base myself on math, right?
Comment: @SrAAlb  Maybe I see things in a different way. I would say that there will come a time when your mastering of Physics *and* Math will be such that you will have a hard time separating them. Your thoughts won't be *based on math*, but you'll be able to express physical ideas directly and fluently with the language of math.
Answer: In my teaching, I distinguish physics-equal-signs, math-equal-signs,
special-case-signs, and definition-equal-signs.
Essentially, it tries to remind you of WHY something is true.
$$\vec F_{net}\stackrel{PHY}{=}\frac{d\vec p}{dt}$$
$$(a+b)^2\stackrel{MAT}{=}a^2+2ab+b^2$$
$$a_x \stackrel{HERE}{=} 0{\ \rm m/s^2}$$
$$\vec a \stackrel{DEFN}{=} \frac{d \vec v}{dt}$$
So, I would say "Resultant force equals mass times acceleration (because of Newton's Second Law)."
In looser talk, I might say "(In solving a particular problem,) Resultant force is the same as giving mass and acceleration"... but I would use the previous sentence as more fundamental.
In trying to interpret mathematical operations "physically",
I often try to use the phrase "as if..." in order to suggest
that a particular physical interpretation is
merely one (possibly very useful, but not the only one)
such interpretation.
Comment: Very cool, I've never seen anything like it. Did you learn this from a book or was it based on lessons?
Comment: @SrAAlb I came up with it by myself. I was my way of seeing the logic of a derivation.


Dynamic typecasting in asp.net mvc Edit action: how can I handle multiple datatypes without throwing an exception?

Question: I'm making a generic MVC viewer/editor for data objects I've designed, modeled after ActiveRecord.
The data objects are completely generic, they can have primary keys that are strings, ints, int16s, whatever the database uses (the persistence layer at this organization uses all sorts of datatypes for primary keys and I want this MVC "browser/editor" to handle them all).
Creating the Edit links in the Index view is easy:
Response.Write("" + Html.ActionLink("Edit", "Edit", new { id = pkValue }) + "	");

The problem is on the other side, in the Edit action:
public ActionResult Edit(object id)

Anything other than a string throws an exception when I try to use id as the sole element of an array of parameters to a static "select" method invoked via reflection to retrieve a hydrated data object to edit from the database:
object[] parameters = { id };
list = (List<T>)select.Invoke(null, parameters);

I know the CLR type of the parameter, and I know the "real" type of object id. Am I supposed to use some kind of gnarly case statement to do the type conversion manually, or is there a trick I can use to do the type conversion using the type of the parameter?
Can/Should I overload the ActionResult Edit() to take int, int16, int32, etc?
What should I do here to ensure that no matter the "real" type of id, I can pass it into the database without an exception being thrown?
Here's what I've tried so far:
I made my generic controller take two type parameters, one for the data object and another for the primary key datatype:
public class CoreDataController<t,T> : Controller  where T:IDataObjectBase<T>

Then I tried this move:
id = (t)id;
object[] parameters = { id};

BZZZRT! "the specified cast is invalid". id is "2" and t is int?
Answer: Can you supply more code details for the select method and the Stored Proc or Query that you are executing to the pull data.
I would currently suggest to pass the value of id parameter to select in the following manner.
if(id != null)
  Select(id.ToString());


Transferring Apps from One iPod to another

Question: I had to have my daughter's iPod motherboard replaced, and in doing so have had to re-download all the apps she had.  That wasn't an issue until she tried playing one of the games, and it was like she had never played it before...when we tried connecting through her game center (it still showed she was on the level she should have been), it wouldn't work because she had an older version, and the new version requires her to connect through Facebook to save her progress...I refused to sign her up to Facebook (she's 7), so wondered if I could copy the app from my son's iPod (the version she had before the repair) and put it on her iPod?  Would it copy the older version so she can continue to play (and still have access to her friends through game center)?
Comment: I'm voting to close this question as off-topic because questions about the particulars of specific games, such as game account or in-app purchase issues, should be directed to the game's developer.
Comment: I'm sorry..I just figured the more information I included, the easier it would be for others to see the whole picture...sorry if I bothered anyone with too much info
Answer: You can't really transfer apps between two IOS devices with different Apple IDs, unless you are up for jailbreaking, then I cant help you.
If you want to get the version your son uses on your daughter's device you will need to sign into the App Store with the AppleID on his device. But that will give you all of his settings as well. As you can see, problematic.
However you mention an older version and the App Store will always download the most recent version compatible with your system. So you may end up with the same version you don't want.
Perhaps there is someone else who knows a trick or two that I am not aware of, but if not you may be out of luck.
Comment: Thank you...I was thinking if I did like a back up of his iPod to iTunes and then put the back up onto hers, it might work.  I realize that I would have had to use his apple id in order to do this, and then I would have just changed back to hers after completing the transfer.


Bash: Why is eval and shift used in a script that parses command line arguments?

Question: As I was looking this answer https://stackoverflow.com/a/11065196/4706711 in order to figure out on how to use parameters like --something or -s some questions rised regarding the answer's script :
#!/bin/bash
TEMP=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \
     -n 'example.bash' -- "$@"`

if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi

# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"

while true ; do
    case "$1" in
        -a|--a-long) echo "Option a" ; shift ;;
        -b|--b-long) echo "Option b, argument \`$2'" ; shift 2 ;;
        -c|--c-long)
            # c has an optional argument. As we are in quoted mode,
            # an empty parameter will be generated if its optional
            # argument is not found.
            case "$2" in
                "") echo "Option c, no argument"; shift 2 ;;
                *)  echo "Option c, argument \`$2'" ; shift 2 ;;
            esac ;;
        --) shift ; break ;;
        *) echo "Internal error!" ; exit 1 ;;
    esac
done
echo "Remaining arguments:"
for arg do echo '--> '"\`$arg'" ; done

First of all what does the shift program in the following line:
        -a|--a-long) echo "Option a" ; shift ;;

Afterwards what is the purpose to use the eval command in the following line:
eval set -- "$TEMP"

I tried to comment the line in script mentioned above and I got the following response:
$ ./getOptExample2.sh  -a 10 -b 20 --a-long 40 -charem --c-long=echi
Param: -a
Option a
Param: 10
Internal error!

But if I uncomment it it runs like a charm:
Option a
Option b, argument `20'
Option a
Option c, argument `harem'
Option c, argument `echi'
Remaining arguments:
--> `10'
--> `40'

Comment: Your outputs with and without the comment are the same. Is that the problem?
Answer: One of the many things that getopt does while parsing options is to rearrange the arguments, so that non-option arguments come last, and combined short options are split up. From man getopt:
Output is generated for each element described in the previous section.
Output is done in the same order as the elements are specified  in  the
input,  except  for  non-option  parameters.   Output  can  be  done in
compatible (unquoted) mode, or in such way that  whitespace  and  other
special  characters  within  arguments  and  non-option  parameters are
preserved (see QUOTING).  When the output is  processed  in  the  shell
script,  it  will  seem to be composed of distinct elements that can be
processed one by  one  (by  using  the  shift  command  in  most  shell
languages).

[...]

Normally, no  non-option  parameters  output  is  generated  until  all
options  and  their  arguments  have  been  generated.   Then  '--'  is
generated as a single parameter, and after it the non-option parameters
in  the  order  they were found, each as a separate parameter.

This effect is reflected in your code, where the option-handling loop assumes that all option arguments (including arguments to options) come first, and come separately, and are finally followed by non-option arguments.
So, TEMP contains the rearranged, quoted, split-up options, and using eval set makes them script arguments.
Why eval?  You need a way to safely convert the output of getopt to arguments. That means safely handling special characters like spaces, ', " (quotes), *, etc. To do that, getopt  escapes them in the output for interpretation by the shell. Without eval, the only option is set $TEMP, but you're limited to what's possible by field splitting and globbing instead of the full parsing ability of the shell.
Say you have two arguments. There is no way to get those two as separate words using just field splitting without additionally restricting the characters usable in arguments (e.g., say you set IFS to :, then you cannot have : in the arguments). So, you need to able to escape such characters and have the shell interpret that escaping, which is why eval is needed. Barring a major bug in getopt, it should be safe.

As for shift, it does what it always does: remove the first argument, and shift all arguments (so that what was $2 will now be $1). This eliminates the arguments that have been processed, so that, after this loop, only non-option arguments are left and you can conveniently use $@ without worrying about options.
Comment: @actual_panda so you need a way to safely convert the output of `getopt` to arguments. That means safely handling special characters like spaces, `'`, `"` (quotes), `*`, etc. To do that, the output of `getopt` escapes them for interpretation by the shell. Without `eval`, the only option is `set $TERM`, but you're limited to what's possible by field splitting and globbing instead of the full parsing ability of the shell. (contd.)
Comment: At least in the GNU enhanced getopt, you can prevent the re-ordering of the options list by setting the scanning mode to `-`. To do this, the first character in the short arguments list should be `-`, as in `-o -ab:c::`
Comment: "and using `eval set` makes them script arguments" Could you kindly explain why `eval` is needed to do that and whether it's safe? Thank you!
Comment: (contd.) Say you have two arguments. There is [no way](https://unix.stackexchange.com/q/318460/70524) to get those two as separate words using just field splitting (e.g., say you set `IFS` to `:`, then you cannot have `:` in the arguments). So, you need to able to escape such characters and have the shell interpret that escaping, which is why `eval` is needed. Barring a major bug in `getopt`, it should be safe.
Answer:
Afterwards what is the purpose to use the eval command in the following line:
eval set -- "$TEMP"

The util-linux version of getopt produces output that's usable as input to the shell. It surrounds strings containing whitespace with quotes, and handles escaping of literal quotes and other special characters.
E.g.
$ getopt -o a:b -- -a 'foo bar' -b "single'quotes'here"
 -a 'foo bar' -b -- 'single'\''quotes'\''here'

The quotes won't be processed from the result of a plain expansion, but a full round of parsing is required. And that's what eval does.
If the output is assigned to $tmp, then after eval set -- "$tmp", the positional parameters $1, $2, ... contain -a, foo bar -b -- single'quotes'here, and that's relatively easy to process in a loop.
Merely using set -- $tmp would set the positional parameters to -a, 'foo, bar', etc..., which is not what you want. (Also you'd get globbing on top, if one of the args was e.g. *.)
The problems are similar to those in How can we run a command stored in a variable?, both cases involve lists of arbitrary strings.

Note that the behaviour where getopt produces shell-quoted output is specific to the util-linux version of it. Other systems often have a getopt that is used without eval, and which happily breaks arguments that contain whitespace or look like globs. As in this one, there's no way to tell from the output that foo bar is supposed to be a single argument.
$ getopt a:b -a 'foo bar' -b "single'quotes'here"
 -a foo bar -b -- single'quotes'here

When using getopt, make sure to use the -T/--test option first to see if you have the safe version that can deal with arbitrary strings.
Answer: The script works correctly when it gives you an error for -a 10. The -a option needs no parameter in this script. You should only use -a.
The shift described in the man page as the following:
shift [n]
              The positional parameters from n+1 ... are renamed to $1 ....  Parameters represented by the numbers $# down to $#-n+1 are unset.  n must be a non-negative number less than or equal to $#.  If  n  is
              0,  no  parameters are changed.  If n is not given, it is assumed to be 1.  If n is greater than $#, the positional parameters are not changed.  The return status is greater than zero if n is greater
              than $# or less than zero; otherwise 0.

So basically it drops -a and shift the remaining arguments so the second parameter will be $1 in the next cycle.
-- is also described in the man page:
 --        A -- signals the end of options and disables further option processing.  Any arguments after the -- are treated as filenames and arguments.  An argument of - is equivalent to --.


Roll-up Summary field | OR filter criteria

Question: I have a Roll-Up Summary (SUM Opportunity Product) field. The field gives an option to Only records meeting certain criteria should be included in the calculation which is really good because it allows me to filter but the filter criteria only has AND option but not an OR. Why is that? And how can I workaround  it? Please assist.
Comment: why not just put a formula field on the detail that includes the OR logic and then your filter just is `myFormula__c = true`
Comment: "Why is that?" Because they didn't want to make the engine overly complicated.
Comment: @cropredy Rollup fields do not show formula fields.
Comment: @apz They do show up BUT they cannot be cross object formulas
Answer: there is posibilty to choose more than one option in a row in a value field, just pick two or more quadrats.
Answer: There's a couple of ways to work around this limitation.
One option, using native functionality, is to decompose your OR Roll-Up Summary into more than one Roll-Up Summary, each of which has only a single criterion, and then using a separate formula field to sum those component Roll-Up Summaries. The downside to this approach, of course, is that you consume more of your scarce limit for Roll-Up Summaries.
Another option would be to use Declarative Lookup Rollup Summaries, which (belying its name) can also work on master-detail relationships and which supports the full breadth of SOQL in defining the set of records to be included in the rollup.
Comment: DLRS is exactly what I recommend whenever you need something more complicated than the out-of-the-box feature, which is pretty common given its limitations.
Comment: Same here - unfortunately some orgs are extremely reluctant to install packages and/or are in Apex limit trouble.


Where to find PySAL toolbox for ArcGIS?

Question: I installed PySAL but i can't find the toolbox for ArcGIS.
Answer: pysal is a Python module, not an Esri product.  You'll have to write your own pySal tools and place them in a toolbox.
Comment: No longer the case; Xing Kang from ASU interned at Esri this summer and worked on integrating PySAL into ArcGIS. [There are now TBX files for PySAL tools, though they are apparently not yet online anywhere for download](https://geodacenter.asu.edu/arc_pysal_install). There is a powerpoint presentation on the PySAL web page that suggests they will be integrated in ArcGIS 11.
Comment: PySAL is now available as a toolbox for download on this page: https://geodacenter.asu.edu/software, see this download: https://geodacenter.org/downloads/unprotected/PySAL_ArcToolbox_v3.zip
Comment: @JasonScheirer The toolbox is not Esri, it's still 3rd party.  The question was specifically referencing a product.
Answer: The most current version of this project is on github:
https://github.com/Esri/PySAL-ArcGIS-Toolbox
We are in the process of updating the install documentation and creating a homepage for the project.
Regarding installation... for all ArcGIS Pro Users, SciPy is already in the build.  Further, Conda is used as the Python Distro/Env for all Pro Versions 1.3 and beyond... so a simple 'conda install pysal' is the only command needed to get the cloned project to work.  For info on using Conda in ArcGIS Pro see: http://pro.arcgis.com/en/pro-app/arcpy/get-started/what-is-conda.htm
Conda is not used in ArcGIS Desktop (Classic).  For newer versions of Desktop (I think 10.4.1 and Beyond) SciPy is already in the install... so you just have to 'pip install pysal'.  For older versions you must use the Table in the current instructions to identify the correct Python/NumPy Combo to link with SciPy.  Again, see the doc and make sure you do not install the SciPy Stack which can override your NumPy version and break the ArcGIS DLLs (pyds).
Please check back with the github page in the coming weeks to see the updated installation instructions.  Hope this helps :-)
Answer: You can find the ArcGIS PySAL Tool for ArcGIS 10.1 available for download on this page where its functionality is described as:

Spatial weights and regression PySAL tool for ArcGIS. Additional PySAL
  functionality will be integrated with ArcGIS 11.

Where to find PySAL toolbox for ArcGIS?


Where is the base domain stored in database D7

Question: Is there an equivalent row to the Wordpress "Home" and "Site"? In otherwords, where can I look in the database to figure out what the domain the site is on?
 I'm using mysql
Answer: I think you're looking for $base_url in /sites/default/settings.php.  As far as I know everything in the database works off this value, and it is not explicitly set in the DB
Answer: It can be one or more of the following:
<?php
print $GLOBALS['base_url'];    // Set by drupal_settings_initialize() or settings.php.
print $_SERVER['HTTP_HOST'];   // Set by apache.
print $_SERVER['SERVER_NAME']; // Set by apache.

You can also check the database with this query
SELECT * FROM variable WHERE value LIKE '%example.com%'

where example.com is the domain; this is not guaranteed to be correct though.
Comment: Interesting. I think the php commands will probably get me what I need. To clarify, the problem I'm trying to solve is that I have numerous Drupal sites set up on the server. I know that the directories that they live in are not correlative to the domains the sites are at. So, I'm trying to figure out how to determine if the sites are live from files and database. (most of the time our default set up doesn't include base_url in the settings file, *sad*
Answer: There really isn't a perfect analog to wp_options.siteurl & wp_options.home in Drupal. The closest thing is variable.site_frontpage for home path & $base_url in settings.php that contains the site domain URL root.
Answer: This can be easily evaluated from the code in drupal_settings_initialize() in file includes/bootstrap.inc
As seen in the code below, Drupal first tries to get it from $base_url, if not set then Drupal reads it from $_SERVER['HTTP_HOST']
function drupal_settings_initialize() {

    if (isset($base_url)) {
        // Parse fixed base URL from settings.php.
        $parts = parse_url($base_url);
        ...
    }
    else {
        // Create base URL.
        $http_protocol = $is_https ? 'https' : 'http';
        $base_root = $http_protocol . '://' . $_SERVER['HTTP_HOST'];
        ...
    }

WARNING: Since $_SERVER['HTTP_HOST'] could be easily spoofed using an http request header "Host: something.com", this means you should, I repeat, you should assign a value to $base_url in the settings.php file to avoid the }else{ condition above.


How to send POST request with Dev HTTP Client

Question: I use Dev Http Client for testing REST API. I can't figure out how can I send POST requests. Whatever parameters or query String that I put in body does not show up in request parameters in chrome developer console.
Answer: I'm one of the developers for Dev Http Client. As far as I can see, there is a bug, but it is only a problem with Chrome Dev Tools itself, for some reason request body isn't displayed. I've tried with multiple APIs and multiple sites, requests are actually sent, but DevTools simply doesn't display them.
You can check it by yourself via postcatcher , it will give you and URL where you can direct post requests, and if you keep this url opened in browser, it will show you all the post requests you've send (including their bodies).
Comment: Thanks, but I could see request body sent by another chrome extensions Advanced REST client
Comment: Well I'm aware of that, we can fix this on our side, but I'll report this to Chrome team as well, because it is also bug in Dev Tools (you can't see body if it is blob type, and Dev Http Client wraps all requests with bodies into blobs). Anyway POST requests are working in dev http client
Comment: Already? Thanks. Also you can share the chromium bug number if you would like for future readers.
Comment: I seem to struggle to issue POST request with body... Are you sure this has been fixed?
Comment: My fault, I was missing ```app.use(express.bodyParser());``` in my node app. Having said that - http://i.imgur.com/MXJVzkR.png - sadly there is no post data in Chrome Dev Tools :(


What are the conditions of co-planer vectors?

Question: Under what condition three vectors A, B, C will be co-planer? I want to learn this rules and theorem.
Answer: Since it is a homework question i will just give hints.
Hint no 1:
If you take cross product between two vectors you get a resultant vector which is perpendicular to the plane where the two vectors are.
Hint no 2:
Dot product between two mutually perpendicular vectors is zero.
Answer: A totally antisymmetric product of three vectors will give zero if they are zero, colinear, or coplanar and if any of those three things happen then they are coplanar.  Basically an antisymmetric product of three vectors gives the oriented 3-volume they span, and if coplanar, zero is all you can get.
Comment: This answer is correct, but level of sophistication is, I think, beyond the spirit of the original post.
Answer: In $\mathbb{R}^3$, three vectors are co-planar if they are linearly dependent, i.e. if there is a solution to the equation $C=s \cdot A + t \cdot B$.


Correlation of variable corrected for age in SPSS

Question: We have measured reading speed in patients with diabetic eye disease. What we have found is that reading speed is faster in younger patients and in those who has better vision as you would expected. However, we have developed an novel measurement which is much faster to do than measuring reading speed. Both reading speed and the novel measurement correlate well with each other but we would like to see whether this correlate is independent of age and vision level. How can I do that in SPSS. Many thanks.
Comment: Are you asking how to design an experiment to determine this, or do you already have the data? Do you only want to know how to get SPSS to do this (in which case, the question is off-topic, per our [FAQ](http://stats.stackexchange.com/faq)), or are you wondering about the statistical methods involved in assessing this issue?
Comment: We have the data but what statistical methods should I use to determine that. V
Answer: I see an easier but fragmented way and a more difficult but comprehensive way.
The easier way is to divide up your subjects into, say, 3 age categories and 3 vision-level categories, and to compute correlations for each group.  (In SPSS, use the "split file" command). Then you could assess the degree to which these 9 correlation coefficients differ by group.  You could do it graphically in any number of ways and/or using formal statistical tests of the difference between correlations; the latter would involve first transforming each correlation using Fisher's Zr method (available through online calculators but not in SPSS).  In order to test every difference, you would need to run 9!/(2!(9-2)!) tests, or 36 of them.
The more difficult, but also more elegant, way would be to preserve age and vision level just as they are--not truncating into groups--and use them to build interaction terms into a regression.  Your question would now be, "To what extent does the connection between the new measurement (Y) and the old measurement (X1) vary depending on the level of X2 (age) and X3 (vision level)?"  You would need to get familiar with linear regression, its assumptions, and the use of continuous variables to test for interactions.
Comment: +1 but I think the "more difficult" way is actually in the end simpler and far better.  One of the main uses of regression is to answer this sort of question.


Lightroom Crashes on Launch

Question: Hey everyone I have a weird bug Lightroom seems to crash every time I launch it except when I delete Lightroom 5 Preferences.agprefs after its removed Lightroom launches correctly every time. I have the latest version of Lightroom 5.3 installed. This is more of a question of has anyone elses encountered this bug? If so how did you fix it?
Comment: Apparently you fix this by deleting the preferences file... It's not uncommon for a pref file to become corrupted and crash an application. Just delete the file, set the preferences again to your liking and move one. If it crashes again quickly probably another problem is at play.
Answer: If you have a backup program (online or NAS backup, for example) running, it can sometimes lock files that Lightroom needs to modify and cause a crash. I've seen this happen both when Lightroom starts and when it is exiting and trying to backup the catalogue file. I have reconfigured the backup program that I am using to not do backup of the Lightroom work file areas, this fixed the startup crashes.
Answer: Doing a quick search, there are more people that have ran into this problem. Here are some general troubleshooting steps you could have tried as well:
http://www.photokaboom.com/photography/learn/Lightroom/h_more/troubleshooting.htm#6_-_Rename_the_Preferences_File
Removing the preferences file is one of the suggestions here. Apparently your Preferences file did get corrupted, somehow... Removing/renaming it, and starting Lightroom anew should resolve it. Unfortunately you will lose your preferences with this step, so be sure to regularly back-up your files!
J.
Answer: Protip for the mac version run the Lightroom executable directly from the command line. For me this means running /Applications/Adobe Photoshop Lightroom 5.app/Contents/MacOS/Adobe Photoshop Lightroom 5 and exposed for me:
$ "/Applications/Adobe Photoshop Lightroom 5.app/Contents/MacOS/Adobe Photoshop Lightroom 5"
<snip>
2014-11-19 19:08:10.535 Adobe Photoshop Lightroom 5[87968:507] An uncaught exception was raised
2014-11-19 19:08:10.535 Adobe Photoshop Lightroom 5[87968:507] AgPathUtils.getStandardFilePath: can't create directory at: /Users/myusername/Library/Application Support/Adobe/Lightroom
2014-11-19 19:08:10.535 Adobe Photoshop Lightroom 5[87968:507] (
    0   CoreFoundation                      0x00007fff85b0525c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff87589e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff85b04e09 -[NSException raise] + 9
    3   AgKernel                            0x000000010061c742 AgTransitQueue_enqueueToQueue + 3966

'lo and behold, when i checked out the file it was complaining about (at Library/Application Support/Adobe/Lightroom), it was a broken symlink created by Mackup. Goes to show me for using some fancy software that just "takes care of backups"... Removing that file fixed lightroom

Lightroom Crashes on Launch


Cocoa: Global Shortcuts in Lion

Question: I've been looking for a way to implement a global shortcut for my app that would work like shortcut recorder. The problem is I haven't found one that works with the current version of xcode, every single one I've found throws an error in xcode about legacy stuff. The only one i've found that is any good in Lion is DDHotKey, which does exactly what I want, but it has the downside that the user doesn't record the shortcut in a nifty smart textfield sort of thing, its a preset shortcut.
Can anyone tell me how to add a smart textfield to DDHotKet, or a fix for SR in Lion? It seems that for ShortcutRecorder the specific problem has to do with the actual textfield in IB using old plug-ins, so I can't use the text field (which is what I really want). I've looked up a whole bunch of different frameworks but they all have outdated stuff. To be honest even if I found a fix for running SR I still have no idea what to do since it seems to be waaay more complicated than all the others i've found.
Answer: This fork of ShortcutRecorder builds in Xcode 4:
https://github.com/youknowone/shortcutrecorder
It also has a nice demo project that shows how to use the API.

Cocoa: Global Shortcuts in Lion


Can jinns reveal my private thoughts and feelings to other people?

Question: Assalamu Alaikum. Recently, I'm getting this feeling that someone can know every single thoughts of mine with the help of jinn.  I'm  also doing Zikr. But I still get this feeling that someone can know my private thoughts and feelings through jinns.  Am I overthinking and being paranoid or is it real?  Please tell me..
Comment: If you analyse the Hadith that elaborates on the meeting between Prophet Muhammed & `Abdullah ibn Sayyad with respect to Surah Dukhan, you will understand that Jinn can't fully grasp the unseen. They catch part of it and then add lies upon it before passing the information to the sooth sayer. Also there is no need to be paranoid if the Jinn. They are but a creature of Allah. And Angels far outnumber Jinns so stay pure and increase your iman. May Allah keep you under His Mercy.
Answer: No they can't. Like humans, Jinns can't read your mind
Comment: What do you mean by jinns like humans?
Comment: Any reference or proof?


Why type I error rate is rejection area in hypothesis testing?

Question: In hypothesis testing, we set up a rejection area for rejecting $H_0$ in favor of $H_1$ with $\alpha$. I don't understand why type I error (rejecting $H_0$, when $H_0$ is actually true) is the area that we choose to reject $H_0$. Why does it makes senses that we reject something from error rates?
Comment: If the null hypothesis is correct, then a rejection (i.e. being in the rejection area) is a Type I error, while a non-rejection (i.e. not being in the rejection area) is not
Comment: Then why rejecting null hypothesis when it is correct constitutes an acceptance of  $H_1$ when the null hypothesis is actually correct? Isnt that an error?
Comment: Yes - and that Type I error is precisely what happens when the null hypothesis is correct and the observation is in the rejection region.
Comment: Then why we accept an alternative hypothesis if the null hypothesis is in fact correct? To my understanding, it is just weird that we made an error (type I) and we still think alternative hypothesis is correct. I just couldnt wrap my head around this.
Comment: You do not know which hypothesis is correct: you use the observations to make a decision, knowing that it is possible that you may make an error when you make that decision.
Answer: by wiki,

a type I error is the mistaken rejection of an actually true null hypothesis

$\alpha$ has the same value as type 1 error but you can distinguish them by going thru the following story.
In your hypothesis test of recovery rate of a drug, you first assume your $H_0$ is correct, which means the drug gives you the same recovery rate as not using the drug. In this case, you assume the recovery rate distribution of the drug is the same as the distribution of not using drug.
Then you calculate the average recovery rate of patients using the drug, and find a value $r$. Then you look at where $r$ is in the $H_0$ distribution. and you calculate the $\alpha$ by summing the area under the distribution $>=r$, so this $\alpha$ value is actually the total probability of observing a recovery rate $>=r$ assuming that $H_0$ is correct. Let's say this value is 0.021, meaning that if $H_0$ is true, you have 2.1% chance observing $r$ or greater than $r$. It is quite unlikely judging from the size of the value, but it is NOT IMPOSSIBLE.
Then you need to decide whether you want to reject $H_0$, you can reject it like a dictator or you can reject it by saying that "OK, now $\alpha$ is smaller than a threshold which I decided to be 0.05, so let's reject $H_0$.
Now we finally introduce "type 1 error".
We can reject $H_0$ because we think the chance of observing $r$ is small, so it is merely not likely, but not impossible. Therefore we can be wrong!
If we are wrong, then $H_0$ should actually be true, and how likely it is that we are wrong (error)? It is how likely it is for us to observe $r$ or greater than $r$, which is $\alpha$, which is 0.021. Therefore the error value has the same value of $\alpha$, and this error is named as type 1 error.


Is it cultural appropriation to write historical fiction with a character from another culture, using elements of that culture and language?

Question: I've been thinking about writing a historical fiction novel about the Korean War. It is told from the perspective of a Korean character and includes many elements of Korean culture and language. I am not Korean. Is it cultural appropriation for me to write this?
Answer: The short answer is no. Not the way you are describing your intent.
For it to be considered Cultural Appropriation you'd need to be representing elements of Korean culture as your own.
As a writer, you are supposed to present the reader with the viewpoints of your character, whatever their situation is. In your case, its about a human in the middle of a terrible war that had a long lasting impact on the history of the world. It sounds like a good subject for a story. Having just finished "The Things They Carried" by Tim Obrien, the author shares details and perspectives of the people he fought against as a infantryman in that war, as well as his own experiences in combat.
If you, like him, treat the subject with the respect and integrity it deserves, its perfectly fine to writing on any subject or topic that you find inspiring enough to come up with a story about.
Doing the research to make it as realistic as you are capable of is important. Talking with people who were there is also an excellent idea.
Answer: No. Life and literature would be very boring if all writers felt themselves compelled only writing about things they know personally and experience(d) first-hand.
Now, another thing is, if you are going to write about a culture strange to you and from the viewpoint of a representative of that culture, you've got to do a huge lot of homework and do it well. Reading everything you can about the time and place, and make sure you try to learn different points of view and perceptions (women vs men, country folks vs city-dwellers, military vs civilians, different social classes...) Try and find people who lived through it (it is still quite possible) or their children and interview them. Travel to South Korea, if you have such a possibility; otherwise, do your online touring of places and museums. Study maps and transportation technical specs (you would need to know, e.g., how people were getting from point A to point B in 1950, how long it would take them, and where they could stop for meals/overnight etc.) Eat traditional food of the region you are writing about (cook it yourself, if you can.) Etc. etc. That would let you immerse in that time and culture and make your story convincing, immersive, and respectful (even when you are writing about negative things or portraying negative characters - readers can feel whether the author knows what they are doing!)
Answer: The other answers have already explained that even within the concept of cultural appropriation, well-researched and respectful representation of a culture the writer isn't part of is not cultural appropriation.
Another approach to your question would be to consider the validity of the concept of cultural appropriation itself. People have learned from each other and tried to understand each other since the beginning of time. If peoples didn't adopt the inventions of other peoples, progress in all areas of life would be painstakingly slow, if not impossible, and we would probably still live in the bronze age and do human sacrifice. Did the Germanic tribes "steal" the technique of iron production from Anatolian cultures? Yes, sure. Is it cultural appropriation to adopt democracy, iron smelting or modern medicine? I think not.
And how do we come to understand and respect other people? By trying to imagine what it would be like to be them. Children play family, mentally healthy writers write about psychopaths, musicians from Europe play the Sitar. So what? Sitar players are free to play the chembalo, psychopaths can write about mentally healthy characters, and adults can play with their children. That's just how we learn about what it means to be the other person and it is the best method against prejudice and intolerance. And if some white people play blues, do they do it to belittle and suppress black musicians? Quite the contrary! Usually those that adopt music from foreign cultures or write about, to take your example, the Korean War from a Korean perspective, do so out of interest and respect. And often the public develops an interest in aspects of a foreign culture after they have learned about it through works that have "appropriated" that culture. It is not like the native voice got silenced by the "appropriation", rather it is often only heard because of it.
Also look at the criticism summarized on the Wikipedia page: https://en.wikipedia.org/wiki/Cultural_appropriation#Criticism_of_the_concept


Finding ISBN of books on Goodreads

Question: With the new page, I find it pretty difficult to find ISBN information about books. ISBN gives you some idea when and where it was published, published. But now that the information is not there, it simply is difficult to find.
Comment: I'm not sure I understand your problem - you cannot find ISBN on the book's goodreads page? Which device do you use? On my laptop I see it quite ok. Or what is it you mean?
Comment: Desktop. Alternatively, is there any site where you give a book's name, author details and it would find the ISBN for you. Using firefox as a browser.
Comment: @Andra For some books, Goodreads actually doesn't provide the ISBN, but I don't know how large that share is.
Comment: @Tsundoku yes, of course, because there are 1) books published before isbn was invented and 2) texts published in internet that we may consider to be books but they just do not have an isbn. In other cases it's a mistake made by a person who added/edited that book. But in most cases there is a isbn - I open in goodreads 30 books in a row and see the isbn and I don't understand what is it OP means.
Answer: You can still find ISBN information on Goodreads, but apparently not for every book. For example, I can't find the ISBN for The Thinker's Guide to How to Read A Paragraph: The Art of Close Reading (2006). But the ISBN is under "Book details and editions" (a small expandable section) for the following books that I looked up: The Glass Menagerie (New Directions, 1999), Shakespeare et son double (L'Harmattan, 2011), Java: A Beginner's Guide (McGraw-Hill, 2005) and Shakespeare, in Fact (Continuum, 1999).
If Goodreads doesn't give you the ISBN, you can always search WorldCat, which provides a kind of federated search over many library catalogues. See for example *Shakespeare, in Fact in WorldCat. (You need to expand the section "Show more information" to access a number of details including the ISBN.)
In addition, many online bookshops (and a famous e-commerce site named after a long South-American river) also provide ISBN information.
Note that does ISBN does not "[give] you some idea when and where [a book] was published". In the 13-digit ISBN (which usually begins with "978"), the so-called "registration group element" can refer to a language rather than a country. And there is nothing in the number that tells you when a book was published. If a book has only a 10-digit ISBN, it was probably published before 2007. If it has no ISBN, it was probably published before the 1970s or published privately (see also the concept of gray literature). (You might still find books that have an SBN instead of an ISBN; these were published between 1966 and the adoption of ISBN, which took a few years.

Finding ISBN of books on Goodreads


If running on discrete card with Bumblebee, will games on Steam also run on said card?

Question: I have Steam running on Ubuntu and loaded using 'optirun'. Will it follow that games that are started through Steam will also be using the Nvidia discrete card? It doesn't seem to look that way.
What commands can be used to tell that it's running on Nvidia?
Answer: No, they will not be using nvidia's discrete card. You're not alone in trying to find a solution for this, I'm currently trying to figure out a way that doesn't involve running
LD_LIBRARY_PATH=~/Steam/ubuntu12_32 optirun ~/Steam/SteamApps/common/$GAMEYOUWANTTOPLAY/$NAMEOFTHEIRBINARYFILE
in a terminal every time you want to run a game. On the plus side, it does mean you don't need to optirun steam at all, invoking that launch command will run the game itself with the discrete card regardless of what steam is running with.
Answer: Yay! Steam posted an official support page for this.
https://support.steampowered.com/kb_article.php?ref=6316-GJKC-7437
I haven't tried it yet but hopefully it works.


What is actually the difference between the GNU C Library and the C standard Library?

Question: I sometimes see these two terms be used interchangeably.
What is the actual difference between these two terms? How are they used differently? Are there any other alternatives to these two libraries?
Comment: I assume you have performed an online search before asking here. What did you find so far? How does that information not answer your question? Please [edit] the question to show your effort, so that the answers don't have to repeat something you already know. See also: [How do I ask a good question?](https://softwareengineering.stackexchange.com/help/how-to-ask)
Answer: The C standard library is part of the C programming language, so it is a specification (written in English in some technical report). For example, the n1570 document is explaining what is malloc and how it should behave.
There is also another relevant specification, the C POSIX library (which is more or less a superset of the C standard library). For example both dlopen and fork are specified by POSIX (but ignored by the C11 standard).
The GNU glibc library is an implementation of (a superset of) the C standard library and of the C POSIX library. It is some free software (mostly written in C for the GCC dialect with a bit of assembler). It uses system calls (listed in syscalls(2)) processed by the kernel. You could use some other implementation of the C standard library, like musl-libc (or dietlibc).
You could avoid any libc  and make direct system calls to the kernel by writing assembler code. This is rarely done (an example is the Bones Scheme compiler, or BusyBox). Most programs do system calls thru the libc and take advantage of functions provided by that libc. Hence libc is a corner stone of Linux systems...
By the way, the GNU glibc has useful functions outside of the standard, such as backtrace functions, or some additional ways to parse program arguments.
Notice that there are subtle differences between what the standard requires and what happens in practice (for example, memory overcommitment affects malloc in a non-standard way, or Linux dlopen has more flags than what POSIX requires).
Th man pages on Linux in general explain how standard conforming is a function. Look for example in dlopen(3).
See also libc(7) and vdso(7).
Answer: If you read "UNIX" for "GNU", for a long time the terms were interchangeable because they were the same thing.
Until BSD got off the ground, AT&T's UNIX library was THE C library -- because their compiler was THE C compiler (for the most part).
After BSD, then you had System V UNIX, BSD UNIX, GNU (GNU's Not Unix), and pretty soon there were C compilers everywhere, each with their own implementation of the standard library.
Answer: Every implementation of C has to supply the standard library, but not every C compiler is written by the FSF! So the GNU C compiler will use the GNU C library, and Intel's C compiler uses a different standard library (with a less catchy name). Both will be instantiations of the standard library that the C standard requires.


Sources to Learn about Bechina

Question: I'm studying Chovos Halevavos. Can you provide me with some further sources to learn more about Chovos Halevavos's "bechina", i.e., reflecting on God's kindnesses in creation. Books/articles/shiurim would be ideal. I am not particularly looking for commentaries, but for additional ways to work on "reflection". Thus, secular books or sources relating to this topic are welcome as well.
Comment: Like with all things said in Chovot HaLevavot, the first thing you should focus on is careful understanding of the precise meaning of the words he is using, understanding what kindness means and בחן, what you are translating as "reflection", which actually means to examine, distinguish & probe all of Creation. It means deep scientific inquiry and examination of the natural world. What is often called חכמת העולם or גחמת הטבע. Through that, one better comprehends what the Torah is teaching.
Answer: I would recommend Chapter 2 of Gateway to Happiness by Rabbi Zelig Pliskin.
You might be able to get it at this link. The website claims the author made that chapter available for free download.
Answer: Rabbi Avigdor Miller zt"l was a firm proponent of admiring G-d's creation and regularly spoke about how little things were representative of Hashem's great kindness.
He has a two volume series (Vol 1 & Vol 2) called Rabbi Avigdor Miller Speaks which mentions a number of ideas with a Q&A at the back of both books which addresses further examples.
His biography Rav Avigdor Miller: His Life and His Revolution also contains lots of anecdotes about how he taught about the importance of recognising Hashem's kindness in creation. My favourite story is when he was found with his head immersed in a bowl of water. When his family asked him what he was doing, he answered that he was appreciating how important air is, and how Hashem blessed us with the ability to breathe!
He also has a famous piece on acknowledging the apple seed. (In fact there is a kid's book written about it). Here is an excerpt from Tape #812 (Nov 1990):

So when you pass a fruit stand, don't walk by like a horse walks by. Take a look! Those delectable fruits are resplendent testimonies to the niflaos ha'Borei, the wonders of Hashem. A fruit is a miracle! Every fruit has a skin around it, that protects it and keeps it fresh for some time. And inside when you finish eating the delicious content of the fruit, you find a coupon that entitles you to another package - the seed! You spit out that seed and it's more niflaos ha'Borei. What that seed has inside is remarkable! That seed contains more information than the most sophisticated computer!
Comment: @Shalom I'm not sure I totally agree. And I'm sure if you said such a thing to Rabbi Miller he would be aghast at such a comparison.
Comment: Not negating any of this. Just be aware that Rabbi Miller also then segues into the same arguments for literal Creationism that many fundamentalist Christians employ. If that's your thing, great. If not, be prepared to read selectively.

Sources to Learn about Bechina


Trigonometric Substitution

Question: I have been working on some homework problems and there is one problem that has me completely stumped. The question reads: "Evaluate the integral $\int \sqrt{24+4x^2}\,dx$ using trigonometric substitution." I am really unsure how to approach this problem, so if someone could walk me through it I would greatly appreciate it!
Comment: Well, the question gives you a huge hint how to approach the problem: use trigonometric substitution. Have you tried that yet?
Answer: Recall that $\sec^2\theta=1+\tan^2\theta$. Multiplying this equation by $24$ gives
$$
24\sec^2\theta=24+24\tan^2\theta=24+4\cdot(6\tan^2\theta)
$$
Can you use this equation to find your substitution?

Trigonometric Substitution


Scooter shutting down after letting off full throttle

Question: So i have Aprilia Leonardo 125 and i have this weird problem with it.
It starts normally and i drive it for as long as i want on half throttle or for a shot period of time on full throttle, but if hold throttle longer and then release, it starts shutting down. When it starts shutting down i can let bike slow down and then try to give some throttle and sometimes it works, but most of the time if i give some throttle it shuts down. After that it starts normally and i can drive it on half throttle without any problems.
Comment: Does the carburettor have a blocked jet? Is your fuel dirty or contaminated?
Comment: Have you replaced the fuel filter, checked the fuel tank breather is clear and that the fuel pipe isn't kinked? All of those will limit air getting from the tank to the carb, which can give exactly the problem you are having.
Answer: Problem I've found with any 2 wheeled vehicle is usually related to the gasoline sitting in the tank, going bad and gumming up the works.  I'm taking for granted your Aprllia has a carb or is it fuel injected?  If its carbureted, or even fuel injected you might try using a carb cleaner in the gas, or better yet use an Ethenol treatment.  Certain times of the year gasoline is blessed with Ethenol for emissions issues.  This separates from the gasoline and lines the tank and inside the fuel system.  An anti Ethenol treatment like Amsoil Quickshot makes quick work of that.  Go by the instructions on the bottle and have at it.  They have some at your local parts store as well.  I also use "Gumout" fuel injector/carb cleaner.  Had people come to me expecting a carb overhaul and two tankfuls with that stuff in the gas and I saved them a couple hundred bucks.  Try it, if that don't work,. Then I got more, but you need to start someplace, might as well start out with a cheap fix that has a good track record.
Comment: Thanks for advice Michael. It has carb, I tried to clean it but same thing happens. I hope that will work.
Answer: If cleaning the carb doesn't fix the issue, and the engine idles fine, you probably just need to adjust the carburetor mixture. There are plenty of guides online, but once the engine has warmed up, adjust the idle-speed knob (you may need a special tool - Amazon, etc. sell kits) one direction until the engine stutters, and then the other direction until it stutters. You want to leave the knob right in-between those two points.
Once you have the low-speed dialed in, open the throttle to bring the engine up to speed and repeat the adjustment procedure for high speed.


Posting videos and asking for criticism

Question: Would it be okay to post a video that I've made, asking for constructive criticism? I would like to know what I could have improved, what's good in the video, and an overall rating. Is that ok?
Answer: Based on the FAQ, this kind of question doesn't fit well, because it's not not very easy to answer, so much as discuss.

You should only ask practical, answerable questions based on actual problems that you face. Chatty, open-ended questions diminish the usefulness of our site and push other questions off the front page.

We don't have the "push other questions off the front page" problem right now since the site is fairly slow-moving, but I think any precedent we set now ought to be done with the understanding that the site will grow.
That said, the chat can be great for this kind of question- I'd encourage you to post your videos and get a discussion going there! If specific questions come up from it ("People recommend I try this one effect, how is it done?") they can be asked on the main site.
Comment: we have allowed critique questions on writers.se and photo.se if the poster is very clear about specifically what *technique* they need feedback on. A general "here's my video, let me know what I can do better" is not valid. http://meta.photo.stackexchange.com/questions/585/can-i-use-the-site-to-get-feedback-on-a-photo
Comment: @Jeff that makes sense - at that point, the question becomes "how can I improve this particular technique" which is specific enough to be answerable.
Answer: Posting videos (and audio) for critique should definitely be on topic, although probably not in the way you presented it here. You can't simply post a video and ask "how can it be improved?" or ask for an overall rating.
In order for us to successfully "critique" your video, it will need to fit within a few criteria. Please take a look at the meta posts from Writers SE, which has successfully adapted the criteria for a good subjective to provide constructive Q&A-style writing critiques.
Adopted from Guidelines for asking for a critique:

Are you coming to AVP SE with a specific question about a specific video you have produced? Great. AVP is a community of professional and aspiring engineers, producers, editors, and enthusiasts spanning the fields of audio, video, and media creation, and we would love to answer your question.
In order for us to be able to successfully answer your question, it will need to fit within a few criteria.

You must have either a specific question about your sample or specific guidelines for the critique.
Your video piece must be a concise illustration of your larger question. Do not post entire videos and ask "what do you think?"
Your question must be phrased in such a way that answers can be objectively voted on by the community here
Your question should encourage answers which explain their reasoning and back up any subjective statements with experience or recognized authorities.
While your question should give us an idea of your own style and what you intend to do with your included video, the question should encourage fair and impartial answers.
Please do not submit and entire video piece and ask us for a general critique or suggestions for improvement.

When it comes down to it, Audio-Video production is largely a topic about doing. The idea that a site about Audio-Video Production doesn't allow talking about our specific videos isn't the way the industry works. It isn't the way we get better at what we do.
Yes, critiques can be subjective, but subjective topics can be okay as long as you make efforts to focus them on contructive criteria. We think that video critiques — as long as you keep them specifically directed — can fit firmly in the "constructive" category.
Bottom line, a video site should be about video. Same goes for audio.

Posting videos and asking for criticism


Egit rejected non-fast-forward

Question: I am getting this message while pushing to github repository.  Can you tell me step by step procedure to fix it?  I pushed only once and it was successful. But, when I updated a project and tried to push my second commit, it shows "master rejected non-fast-forward" and does not allow me to push.  Please explain the procedure.
Comment: I`ve got the same problem after creating a new repo with "Initialize this repository with a README". I removed that one and create ones again without this chechbox.
Comment: @andrew is right
Answer: I had this same problem and I was able to fix it.  afk5min was right, the problem is the branch that you pulled code from has since changed on the remote repository.  Per the standard git practices(http://git-scm.com/book/en/Git-Basics-Working-with-Remotes), you need to (now) merge those changes at the remote repository into your local changes before you can commit.  This makes sense, this forces you to take other's changes and merge them into your code, ensuring that your code continues to function with the other changes in place.
Anyway, on to the steps.

Configure the 'fetch' to fetch the branch you originally pulled from.
Fetch the remote branch.
Merge that remote branch onto your local branch.
Commit the (merge) change in your local repo.
Push the change to the remote repo.

In detail...

In eclipse, open the view 'Git Repositories'.
Ensure you see your local repository and can see the remote repository as a subfolder.  In my version, it's called Remotes, and then I can see the remote project within that.
Look for the green arrow pointing to the left, this is the 'fetch' arrow. Right click and select 'Configure Fetch'.
You should see the URI, ensure that it points to the remote repository.
Look in the ref mappings section of the pop-up.  Mine was empty.  This will indicate which remote references you want to fetch.  Click 'Add'.
Type in the branch name you need to fetch from the remote repository.  Mine was 'master' (btw, a dropdown here would be great!!, for now, you have to type it).  Continue through the pop-up, eventually clicking 'Finish'.
Click 'Save and Fetch'.  This will fetch that remote reference.
Look in the 'Branches' folder of your local repository.  You should now see that remote branch in the remote folder.  Again, I see 'master'.
Right-Click on the local branch in the 'Local' folder of 'Branches', which is named 'master'.  Select 'Merge', and then select the remote branch, which is named 'origin/master'.
Process through the merge.
Commit any changes to your local repository.
Push your changes to the remote repository.
Go have a tasty beverage, congratulating yourself.  Take the rest of the day off.
Comment: This should be marked as the answer. Worked like a charm. This problem occurs even though I didn't add any files (the usual README-file) upon creation of the repo on GitHub for my project in Eclipse. Thanks a lot for the easy to follow step-by-step explenation.
Comment: While this does work, it creates an unnecessary merge commit. You should use rebase here, which is fine because your changes are only local so you're not changing any published history (and if you did that, git would yell at you for a non-fast-forward push anyway). I like MYN's answer.
Comment: Right click on the project and then `Merge` in master and then right click again on project `push branch Master` worked
Comment: This problem took me a year to sort out, until I read your post. In my case, I had no remote but Eclipse created a default one called 'origin'.
Comment: Sweet, finally i can merge with Eclipse.  The key point here is to use the Git Repositories view to do the merge, and not the usual Team Synchronise view.  It would be good if in the team synchronise view eGit could have disabled all the options that do nothing.
Comment: Better than a dropdown, they now have autcomplete on the form ;) Thanks!
Comment: oooo.... this "solution" blows up my project... it adds some strange line with ">>>>>>" signs and "HEAD" text... And now I have a lot of errors... OMG, i hope I will be able to disassemble a jar file which I made before do this s...
Comment: AnotherReasonToHateGit ++
Comment: This helps me only once, but in any another change, if it's clear that nothing was changed on the remote, it's throwing again rejected-non-fast-forwad
Answer: In my case I chose the Force Update checkbox while pushing. It worked like a charm.
Comment: This worked for me too. I had the condition of the OP after "amending" a commit. And fetch gave me "nothing to fetch"
Answer: In the meantime (while you were updating your project), other commits have been made to the 'master' branch. Therefore, you must pull those changes first to be able to push your changes.
Comment: in this case git is quite stupid, I pushed all the changes to the remote. and I am the only one work on the project. Why on earth I need to pull the remote before I can push again???? the pulled change would come from my local originally
Answer: Applicable for Eclipse Luna + Eclipse Git 3.6.1
I,

cloned git repository
made some changes in source code
staged changes from Git Staging View
finally, commit and Push!

And I faced this issue with EGit and here is how I fixed it..
Yes, someone committed the changes before I commit my changes. So the changes are rejected.
After this error, the changes gets actually committed to local repository.
I did not want to just Pull the changes because I wanted to maintain linear history as pointed out in - In what cases could `git pull` be harmful?
So, I executed following steps

from Git Repository perspective, right click on the concerned Git
project
select Fetch from Upstream - it fetches remote updates (refs and objects) but no updates are made locally. for more info refer What is the difference between 'git pull' and 'git fetch'?
select Rebase... - this open a popup, click on Preserve merges during rebase see why
What exactly does git's "rebase --preserve-merges" do (and why?)
click on Rebase button
if there is/are a conflict(s), go to step 6 else step 11
a Rebase Result popup would appear, just click on OK
file comparator would open up, you need to modify left side file.
once you are done with merging changes correctly, goto Git Staging view
stage the changes. i.e. add to index
on the same view, click on Rebase-> Continue. repeat 7 to 10 until all conflicts are resolved.
from History view, select your commit row and select Push Commit
select Rebase Commits of local....... checkbox and click next. refer why - Git: rebase onto development branch from upstream
click on Finish

Note: if you have multiple local repository commits, you need to squash them in one commit to avoid multiple merges.
Comment: I agree with using rebase instead of merge. It's better as it doesn't create an unnecessary merge commit. (Off topic: Stack Overflow is being entirely ridiculous and rejects my comment solely based on the fact that I originally wrote "+1 for". My comment is perfectly constructive, thank you.)
Answer: Configure
After pushing the code when you get a rejected message, click on configure and click Add spec as shown in this picture

Drop down and click on the ref/heads/yourbranchname and click on Add Spec again

Make sure you select the force update

Finally save and push the code to the repo
Answer: Open git view :
1- select your project and choose merge
2- Select remote tracking
3- click ok
Git will merge the remote branch with   local repository
4- then push
Answer: This error means that remote repository has had other commits and has paced ahead of your local branch.
I try doing a git pull followed by a git push. If their are No conflicting changes, git pull gets the latest code to my local branch while keeping my changes intact.
Then a git push pushes my changes to the master branch.
Answer: In my case i forgot to pull the new changes from git

Right click on the project Fetch From Upstream
Right click on the project Pull
Right click on the project Push to Upstream
Answer: I have found that you must be on the latest commit of the git.
So these are the steps to take:
1) make sure you have not been working on the same files, otherwise you will run into a DITY_WORK_TREE error.
2) pull the latest changes.
3) commit your updates.
Hope this helps.
Answer:
Go in Github an create a repo for your new code.
Use the new https or ssh url in Eclise when you are doing the push to upstream;

Egit rejected non-fast-forward


Ushahidi No Input File Specified

Question: I have been trying to install Ushahidi platform for weeks but without any luck. I recently started over using Ushahidi latest release ushahidi-Ushahidi_Web-2.0.1-140-g0991172.zip and extracted it to folder ushahidi under my root.
I am using godaddy Linux server. I have tried both the manual and wizard to setup Ushahidi. In all cases, after installation, I get the same error when I try to access admin page. The error reads:
No input file specified.
I have tried tried installing using the wizard and the manual process. My PHP version is as required.
Any help will be appreciated. I need it to work so I can move on and customize it. Very disappointing such a good open source tool has poor installation guides!
Thanks.
Sting
Answer: there are a few things that can trip up following the installation.
Make sure that:

mod_rewrite is turned on in apache "a2enmod rewrite"
AllowOverride All is set in your apache config for your site (/etc/apache2/sites-available/default)
your .htaccess file points to the correct webroot

Ushahidi No Input File Specified


What logic does the Curve modifier use when deforming using a Bézier Circle?

Question: I was expecting the Curve Modifier to deform a mesh based on the curve's shape. So when I use a curve with a circular shape, I would expect the mesh (a hexagon mesh with an Array modifier and Subdivision modifier) to deform or wrap around along the circular path without any weird unexpected center stretching. Here on the left image, I'm using a Bézier Circle curve. On the right I'm using a simple Circle (using the NURBS circle curve has the same effect). Why does the Curve Modifier with Bézier Circle as Object handle this deformation differently and what is the logic behind this? I'm using X as Deform Axis in both scenarios and all objects are on the XY plane. When you convert the shape to mesh and then back to a curve then it works like on the right image. I tried adjusting both curves' Object Data Properties but nothing changes this behavior.
Comment: Just a guess. Have you scaled your deforming curve in Object Mode, and then applied the scale? That bakes the scaled radius into the control-points, normally desirable for preserving the appearance of a profile, but scaling deformed 2D instances non-uniformly. TLDR; Check the radius.
Comment: @RobinBetts ah interesting. I did apply the scale so it should have worked. When I uncheck *Radius* in the *Curve Deform* of the *Object Data Properties* it works. What gives? Why does the radius not change even after applying the scale?
Comment: It also works if I don't apply the scale and leave *Radius* checked. So I'm not allowed to apply the scale but I'm used to apply the scale of any object I resize in Object mode.
Answer: I'm used to Apply the scale after scaling an object in Object mode. I didn't realize you cannot apply the scale when you use a curve as deformation in the Curve modifier. In the case when you have already applied the scale which I think is irreversible, unchecking Radius option in Curve Deform fixes the issue. That's the case for every curve object. Always better to resize in Edit Mode.
Comment: I never scale _anything_ in Object Mode during modelling.. except if dimensioning, and then I apply straight away. We could chuck out half the questions on BSE if everybody did that. :)
Comment: Applying the scale may be irreversible, but you can set the Radius back to 1 in the curve's N panel in Edit Mode 3D View. You may need to reset other Object Mode transforms.. by the look of your reference, Location, relative to the array. The rule: 'Never scale in Object Mode during modelling' (at least,  without a slight shudder) holds up, IMO :)
Comment: @RobinBetts thanks! out of curiousity i tried scaling it back to dimension 2m (1m radius) and then applied but it would look different. not like the original 1m radius it was. but yeah i will keep that in mind not to scale curves in object mode.


Tip vs Hint (advice)

Question: If we are refering to advice on how to do something or archive something, a short message like in software when you hover your mouse over an item, is there a difference between a tip and a hint?
Answer: The difference between the two terms is one of directness. A hint is indirect; when you're giving someone a hint you're usually trying to impart the smallest amount of information to lead them to an answer or conclusion. A tip is more direct; while the relative amount of information given is the same, it's usually the bit of missing information the other person needs.
In other words, a tip is an obvious small piece of helpful information. A hint is a not-as-obvious small piece.
Comment: Is this a difference between the two English words in general, or in the context of software and user interfaces?
Comment: @J.R. This is in general.

Tip vs Hint (advice)


CodeIgniter Upload Class again

Question: Hi I have been building a website for about 3 months now and was today getting my girlfriend to fill it up with dummy content for testing purposes. There she was happily testing and uploading files when suddenly once she had done about 8 articles the uploader decided without any changes to code etc to start rejecting the upload saying the filetype is not allowed.
Now needless to say I have been uploading images through this for over a month and this is the first time this problem has arisen. What makes it even more confusing is that I am using the CI upload class in other sections with the same mime params and it works fine! I have checked the mime in $_FILES and this is image/jpg or image/png etc, all of which are recognised by CI. I have also seen about the bug in CI 2.1.0 but I am on 2.1.1 which I assume the bug was fixed for (or not) as the code within the upload lib where the error was before is slightly different.
Either way I deduce it is a mime error as setting the allowed types config param to * works fine! Of course this is no where near ideal as the potential security breaches are phenomenal. I am now reaching crunch time with this as I have other work to be getting on with. I have attached the portion of code that handles this upload incase I am doing something glaringly stupid but otherwise if anyone else has developed this problem out of nowhere I would love to know any work arounds/solutions...... Also any knowledge on how this could have only just reared its ugly head would be great. I often struggle with the mystery side of these things.
if(isset($_FILES['article_main_image']) && $_FILES['article_main_image']['size'] > 0){

    $filename = $this->input->post('article_title') . '_' . time();

    $config['upload_path'] = './resource/data/tmpstore/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['file_name'] = $filename;

    $this->load->library('upload', $config);

    if ($this->upload->do_upload('article_main_image'))
    {

        $uploadData = $this->upload->data();
        $filename = $uploadData['file_name'];

        //Other stuff here

    } else {

       $this->session->set_flashdata('validationErrors', $this->upload->display_errors());
       $this->session->set_flashdata('postVars', $this->input->post());

       redirect('/admin/contenteditor/editarticle?id=' . $this->input->post('articleId'));
    }
}

Comment: http://stackoverflow.com/questions/9815208/codeigniter-the-filetype-you-are-attempting-to-upload-is-not-allowed/10923319#10923319
Comment: What happens if you change your `jpg`/`jpeg` (or whatever image type) mime in mimes.php to `array('image/jpeg', 'image/pjpeg', 'application/octet-stream')`?
Comment: Is this still an issue? Have you upgraded to the latest CI now? (2.1.2).
Answer: Try to debug your upload data array by using print_r($uploadData); and see what file_type says, maybe the image which she try to upload might haven't the correct mime type.

CodeIgniter Upload Class again


Catching asserts in NUnit

Question: I'd like to log some contextual information when tests fail (like capturing screenshots). Is there any extensibility point in NUnit framework where i can do it? Ideally it would be:
    [TearDown]
    public void Down(AssertionException ex) {}

but we don't have it. I tried to create an add-in but don't know how to register it in run-time:
[NUnitAddin]
public class UITestCase : TestCaseBase, NUnit.Core.EventListener, NUnit.Core.Extensibility.IAddin {
   .............
    public void UnhandledException(Exception exception){}

    public bool Install(NUnit.Core.Extensibility.IExtensionHost host) {
        IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
        listeners.Install(this);
        return true;
    }

}
UITestCase is my base class for all UI tests. Install() method is just not get called. Any tips would be appreciated.
Update: for an add-in to be registered tests have to run with NUnit runner (in my case it was TestDriven.Net plugin for VS) and EventListener members are get properly called. The problem is that they all called after TearDown/TestFixtureTearDown methods (my context is lost).
Tried to use TestContext.CurrentContext.Result in my TearDown but accessing either State or Status property throws NullReferenceException :(
Answer: I think that the IAddin approach has the most promise, although the EventListeners might not by the appropriate extension point for your needs.  Have you tried the TestCaseBuilders or TestDecorators extentions?
For example, the TestDecorators documentation states:

Purpose
TestDecorators are able to modify a test after it has been
  constructed.
Extension Point
Addins use the host to access this extension point by name:
IExtensionPoint testDecorators = host.GetExtensionPoint(
  "TestDecorators" ); Interface
The extension object passed to Install must implement the
  ITestDecorator interface:
public interface ITestDecorator
{
    Test Decorate( Test test, MemberInfo member );
}

The Decorate method may do several things, depending on what it needs to accomplish:

Return test unmodified
Modify properties of the test object and return it
Replace test with another object, either discarding the original or
  aggregating it in the new test.

That sounds like a good place to try wrapping the test with custom code.
Comment: Thanks, but i can't see how it can help. Looked at the members of NUnit.Core.Test and see no appropriate points to get test result :(
Answer: If your intention is to run tests of your application in action, NUnit is not the best choice, it just wasn't intended to be used that way. NUnit is for unit tests, not integration tests, which would test how your UI integrates with logic and data. When unit tests are running (including those under nunit), there is no screenshot to be captured - the test runner directs output to a log file which contains everything you could want to know about the test, including exceptions.
If you are trying to do UI testing, I recommend Watin for WebApp tests, and White for WPF/Winforms app tests.
Comment: There's also Coded UI, which is in-the-box with VS2010 Premium/Ultimate.
Comment: I do UI testing with Selenium that generates NUnit compatible c# code. However what i want is framework agnostic. I just need to catch test failures. No big deal especially when NUnit has the means for it (extension points and TestContext).
Answer: After upgrading to NUnit 2.6 TestContext.CurrentContext started working as expected.
Answer: I think you can use try catch inside your test method to catch exception and then do some custom action like capturing screenshot inside catch.
Comment: Oh no. When you have few thousand tests it's not an option.
Comment: Can you please tell me whether it's a data driven test or you have thousand different test cases.

Catching asserts in NUnit


How do I access the Drupal class from a standalone PHP file?

Question: How do I use the \Drupal class in an standalone PHP file?
Answer: You can make use of drush php-script command.
drush scr /path/to/file.php

Answer: You can use drush in a shebang, if you have drush installed.
This is an example for a standalone php file, where you can access Drupal classes:
#!/usr/bin/env drush

$sitename = \Drupal::config('system.site')->get('name');

echo "This is the site $sitename\n";

See http://www.drush.org/en/master/shellscripts/
Answer: Since most of the drupal core components are composer packages you can load them quite easily using composer:
composer require drupal/component_name

You just need to require the composer's autoloader into your PHP script and you can quite easily use these classes in your own scripts.


Decorators must precede the name and all keywords of property declarations

Question: I created a decorator called @Inject in typescript file, like this
export class A{
    @Inject()
    private b!: string

    @Inject()
    private c!: string
}

But vscode told me there was a mistake
export class A{
    @Inject()
    private b!: string

    @Inject() //error : Decorators must precede the name and all keywords of property declarations.
    private c!: string
}

But when I execute the TSC command, the terminal does not display any errors.
The strangest thing is that when I end with a semicolon, the error disappears.
export class A{
    @Inject()
    private b!: string ;

    @Inject()
    private c!: string ;
}

Answer: you must to change version typescript in visual studio code. for me version typescript is 4.3.2
Answer: You need to search after your Typescript version and change it to your current workspace version instead of the vscode typescript version which is currently a dev verison.
First search after >Typescript: Version

Than you can selest the current workspace verison

You also can click on the bottom right corner on the typscript version and change it to your current workspace version.


Data-driven sharing rule?

Question: Is there a way to set up a sharing rule that shares a record with a user who is specified in a user field on the record being shared?
Answer: Brad,
You can consider using Apex Sharing for your use case.
When a record is created or updated with a value in the user field, then using a trigger on your object, you can create the sharing with the user being populated on the record.
the reference link has some sample code as well.

Data-driven sharing rule?


"Any question is a good one for 48 hours."

Question: Could we make it a rule that any question asked in good faith will be allowed to stay open for at least 48 hours? This would give honest retrocomputing-related questions that don't adhere to Stack Exchange's strict rules enough time to (1) provide something useful to the person who submitted the question, (2) without littering the site long-term. I believe goal (2) should not be allowed to override (1) and I think this would be a good compromise.
Comment: I share your wish to see more questions answered than closed (I'm typically reluctant to vote to close a question, and will usually edit it or skip), but I don't feel this is a good mechanism to do it.
Comment: If it's an RC.SE related question, why do you assume it gets closed? And what does 'good faith' has to do with that - beside, I think, that it's safe to assume every question is asked in good faith. So basically you're saying on topic questions should not be closed - which AFAIK is the very basic rule for RC.SE, isn't it? So what's the logic of this request?
Comment: @Raffzahn Are you saying that retrocomputing questions never get closed here?
Comment: @snips-n-snails There are many reasons to close a question, being about retro computing isn't one of them. But instead of asking what seams a rhetoric question, wouldn't you mind to add some content to your original question, especially what it's about and what the logic is you (want to) apply?
Answer: No.
There are many, many issues with this, including:

What's good faith?
If a question is answerable, why should we be trying to close it?
If a question isn't (easily) answerable, we have to be able to put it on-hold before answers come in so it can be fixed.

It also doesn't provide clear benefits:

If people still want to help the asker of an off-topic / shopping recommendation question, comments are still available.

It'd also provide a bad example:

If all questions are allowed, then all questions are allowed.
If not all questions are allowed, then which close-worthy questions are temporary-exemption-worthy?

I'm struggling to articulate why this is a bad idea, but… just no. Really, no.
Comment: "If a question isn't (easily) answerable, we have to be able to put it on-hold before answers come in" appears to contradict itself.
Comment: @snips-n-snails It's badly worded; I've never had to put this into words before. (I feel like this is an exam, and I'm not passing. ☺) If it's too broad, we need to put it on-hold in order to narrow it down before answers come in, or else we'll have answers that don't answer the question.
Comment: I think even those answers have value.
Comment: @snips-n-snails They do have value – but to different questions. If a question is narrowed so the answers no longer answer it, the answers shouldn't be there; they should be on different questions instead. Asking multiple, specific question is better than asking one broad one.
Comment: Even today, if an answer doesn't answer a question, we write a comment and/or downvote it, and the person who submitted the answer can modify or delete it. Anyway, earlier you asked, "If a question is answerable, why should we be trying to close it?" Here's a question that could easily be answered by a person with the necessary inside information, and yet there are 4 votes to close it: https://retrocomputing.stackexchange.com/questions/11838/why-is-the-original-altair-basic-for-the-8080-cpu-source-code-not-available-on
Comment: @snips-n-snails [And three review votes to keep it open](https://retrocomputing.stackexchange.com/review/close/7958) – the maximum the system permits. You haven't picked an uncontroversial example there.


What is "Stotterlaut" in the phonetics?

Question: What is "Stotterlaut"? Is this term used in the phonetics? If so, what sound exactly does it indicate? I guess that it might belong to one of the plosive or affricate sounds from the context, but I couldn't find any definition or enough reference. Thanks!
Comment: Where did you encounter that word? A source would be nice.
Comment: It was used in the context that unlike Phoenician there were no "Zischlaut, Knacklaut and Stotterlaut" in Ancient Greek.
Answer: Stotterlaut itself is the sound you make when you stutter (literally stutter noise). This article mentions

Nun ist d nicht nur Verschluß-, Dental-Laut, sondern wie die Erfahrung ergibt, bei häufiger Wiederholung geradezu ein Stotterlaut

My translation:

Now d is not  only a plosive and dental sound, but as experience shows downright a stutter sound, when frequently repeated

This is illustrated with some examples, among which is the following

Die, die die Didaktik Diderots zum Gegenstand ihrer Studien machten [...]

The beginning of the sentence, which causes you to say /di/ 4 times, sounds like a stuttering person trying to say Didaktik.
Comment: Thank you for the detailed answer! Still I wonder whether "Stotterlaut" is a phonetical term or not.. As far as I can understand from the passage you mentions, the word Stotterlaut is used in its literal meaning, stutter noise as you explained, whereas for the other two, Verschluß-Laut and Dental-Laut, I could easily follow that they are Plosivlaut and Zahnlaut in the phonetical terms...

What is "Stotterlaut" in the phonetics?


Grey stem on Butterfly Palm

Question: I'm a new plant mum and my butterfly palm doesn't seem to be too happy! I've got a grey growth on one of the main stems and it appears at the roots too - any advice what to do? I don't over water it (once a week or so, when soil is dry) and it's kept out of direct sunlight.
Answer: Has it been repotted recently? Hard to tell from the photos, but it looks like it might be planted too deep. That kind of palm (dypsis lutescence,  aka Areca) typically has some roots at or above ground level.  Sometimes an entire stem will grow off the side of another stem, not even touching the ground at all.
The gray stuff on the dirt looks like a fungus. I'd remove all of it I could, and repot the palm if it goes very far into the soil. I'd use a cactus mix or something more sandy than ordinary potting soil.
Don't worry about the dark spots scattered on all the stems; it is natural and common and doesn't seem to bother those palms.
Not sure about the gray on the main stem. If it is sickly or looks too bad, on this type of palm, you can safely cut it off and the others will continue to grow.
Good luck!

Grey stem on Butterfly Palm


Uploading Videos and Image

Question: Does anyone have any idea about what does snapchat uses to upload videos and images to the server? I mean does it compress the images and video? if anyone has any idea, please help me.
Comment: because its uploading the videos and images to server very fast
Answer: I think your question re snapchat specifically is not going to get you a response, or at not least one you want (unless @Ronak really does have the code and is going to share it!!).
Also, this is a core part of SnapChats business so they have a lot more resource to throw at the solution and hence may be able to implement something that is beyond the budget or resources of others.
Assuming what you really want is the ability to compress images on Android so you can upload them more quickly, then you can either build your own solution, for example using ffmpeg on Android (possibly through a wrapper like: https://github.com/WritingMinds/ffmpeg-android-java) or, probably a better approach, use a well supported open source solution or library such as:

https://github.com/zetbaitsu/Compressor

Uploading Videos and Image