Time complexity of CAS integration algorithms. Can we always integrate the integrable expressions with guaranteed closed form solutions?

Question: For a given set of operators, if we construct an arbitrary expression that is valid in terms of syntax, and given that,

the integration is valid (that is, the limit of the sum within the interval as the base tends to infinitesimal place is defined and has finite value). (One example that does not follow this would be
$$\lim_{k \rightarrow \infty }\int_0^k \sin(x) \mathrm{d}x$$
I am not talking about the undefined limit here),

the integration can be simplified to an expression with existing operators (+, -, *, /, $\sin$, $\cos$, $\sinh$, $\cosh$ ...). (In this case the case for calculating $\pi$ by integrating $$\sqrt{1 - x^2}$$ is discluded), only considering closed form solutions.

(to be more specific,  this simplified form of expression should not consist any components constructed by new power series, that is, no limit and error terms used)
is there sufficient methods to guarantee that we can always find the expression that is guaranteed to be closed? And is there a "time complexity" for such algorithms?
Compared with differentiation for which we have quotient rule, chain rule, although we have inverse chain and integration by parts, the transformation is less systematic and if we come up with some valid expressions, for example, the integration of
$$\sin(\sin(\sin(x))$$
with the interval $(0,3]$,
then it is defined but requires certain method to simplify. It would be hard to find among books but also hard for CAS ,
If I plug this into Wolfram Alpha
https://www.wolframalpha.com/input/?i=integrate+sin%28sin%28sin%28x%29%29%29 (Links to an external site.)
Other widely used systems, like SageMath, SymPy, and AbstractAlgebra.jl also have troubles finding the symbolic expression.
to derive $$\sin(\sin(\sin(x))$$ is easy, find
$$cos(x)cos(sin(x))cos(sin(sin(x))) $$
derive it
https://www.wolframalpha.com/input/?i=d+sin%28sin%28sin%28x%29%29%29+%2Fdx
however, from this result, wolfram alpha cannot find the origional
integrate back
https://www.wolframalpha.com/input/?i=integrate+cos%28x%29+cos%28sin%28x%29%29+cos%28sin%28sin%28x%29%29%29+dx
So I have guessed the situation below:
Conversely, if I make a string processing program that randomly generates very long expressions, the CAS will find, if valid, the derivative of which. And the derivatives are formed by the same set (or may be class) of operators. If I then put the found derivative expressions into a CAS, then it MAYNOT be able to find its integration from this expression. In this way it MAY be possible to exhaustively search for new integration rules. Then maybe using meta-programming we put the new rules into the CAS and let it continue to find new rules.
There is still one thing that it depends, that most found methods must be programmable in certain CAS (and that the maintainers had done that).
A type of algorithm can be:

generate some random math expressions with strings(using single variable $x$, +, -, *, /, $\sin$, $\cos$, $\tan$... and rational numbers),
expand, simplify the expression, save it as $f$, compute with CAS, its derivative stored as $\mathrm{D}f$,
use CAS to integrate $\mathrm{D}f$ with a given time tolerance $t$, if time out, store the $f$, $\mathrm{D}f$ and status "TIMEOUT",
Then we can get a dataset of expressions hard to integrate but have closed form integration expression with finite length

However, as I think further, could there be some "time complexity" of the CAS integration algorithm with respect to the component and structure of the string?
And I did some calculations on CoCalc with these thoughts:
with CoCalc:
f(x)= 1-x^2
integrate(f, x)
x |--> -1/3*x^3 + x
g(x)= sin(sin(sin(x)))
integrate(g,x)
x |--> integrate(sin(sin(sin(x))), x)
1 case when integration does not stop in tolerated time
h(x) = sin(cos(tan(x+sinh(x-1/log(sinh(x))))))
show(h)
x ↦ sin(cos(tan(x+sinh(x−1log(sinh(x))))))
h1(x) = diff(h,x)
timeit("""
h1(x) = diff(h,x)
""")
625 loops, best of 3: 85.1 μs per loop
show(h1)
x ↦ −((cosh(x)log(sinh(x))2sinh(x)+1)cosh(x−1log(sinh(x)))+1)(tan(x+sinh(x−1log(sinh(x))))2+1)cos(cos(tan(x+sinh(x−1log(sinh(x))))))sin(tan(x+sinh(x−1log(sinh(x)))))
print(h1)
x |--> -((cosh(x)/(log(sinh(x))^2*sinh(x)) + 1)cosh(x - 1/log(sinh(x))) + 1)(tan(x + sinh(x - 1/log(sinh(x))))^2 + 1)*cos(cos(tan(x + sinh(x - 1/log(sinh(x))))))*sin(tan(x + sinh(x - 1/log(sinh(x)))))
h_reverse(x) = integrate(h1,x)
RuntimeError                              Traceback (most recent call last)
 in ()
----> 1 tmp=var("x"); h_reverse = symbolic_expression(integrate(h1,x)).function(x)
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/misc/functional.pyc in integral(x, *args, **kwds)
751     """
752     if hasattr(x, 'integral'):
--> 753         return x.integral(*args, **kwds)
754     else:
755         from sage.symbolic.ring import SR
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:64013)()
12403                 else:   # all arguments are gone
12404                     R = ring.SR

12405             return R(integral(f, v, a, b, **kwds))
12406         return integral(self, *args, **kwds)
12407

/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.pyc in integrate(expression, v, a, b, algorithm, hold)
824         return integrator(expression, v, a, b)
825     if a is None:
--> 826         return indefinite_integral(expression, v, hold=hold)
827     else:
828         return definite_integral(expression, v, a, b, hold=hold)
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/function.pyx in sage.symbolic.function.BuiltinFunction.call (build/cythonized/sage/symbolic/function.cpp:11837)()
996             res = self.evalf_try(*args)
997             if res is None:
--> 998                 res = super(BuiltinFunction, self).call(
999                         *args, coerce=coerce, hold=hold)
1000
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/function.pyx in sage.symbolic.function.Function.call (build/cythonized/sage/symbolic/function.cpp:6917)()
490                     (args[0])._gobj, hold)
491         elif self._nargs == 2:
--> 492             res = g_function_eval2(self._serial, (args[0])._gobj,
493                     (args1)._gobj, hold)
494         elif self._nargs == 3:
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.pyc in eval(self, f, x)
89         for integrator in self.integrators:
90             try:
---> 91                 return integrator(f, x)
92             except NotImplementedError:
93                 pass
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/symbolic/integration/external.pyc in maxima_integrator(expression, v, a, b)
30         expression = SR(expression)
31     if a is None:
---> 32         result = maxima.sr_integral(expression,v)
33     else:
34         result = maxima.sr_integral(expression, v, a, b)
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.pyc in sr_integral(self, *args)
789         """
790         try:
--> 791             return max_to_sr(maxima_eval(([max_integrate],[sr_to_max(SR(a)) for a in args])))
792         except RuntimeError as error:
793             s = str(error)
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/libs/ecl.pyx in sage.libs.ecl.EclObject.call (build/cythonized/sage/libs/ecl.c:7785)()
804         """
805         lispargs = EclObject(list(args))
--> 806         return ecl_wrap(ecl_safe_apply(self.obj,(lispargs).obj))
807
808     def richcmp(left, right, int op):
/ext/sage/sage-8.8_1804/local/lib/python2.7/site-packages/sage/libs/ecl.pyx in sage.libs.ecl.ecl_safe_apply (build/cythonized/sage/libs/ecl.c:5447)()
376     if ecl_nvalues > 1:
377         s = si_coerce_to_base_string(ecl_values(1))
--> 378         raise RuntimeError("ECL says: {}".format(
379             char_to_str(ecl_base_string_pointer_safe(s))))
380     else:
RuntimeError: ECL says: Console interrupt.
show(h_reverse(x))
NameError                                 Traceback (most recent call last)
 in ()
----> 1 show(h_reverse(x))
NameError: name 'h_reverse' is not defined
For simple cases, integration does work but takes relatively more time
H(x) =sin(sin(sin(x)))
show(H)
x ↦ sin(sin(sin(x)))
p1 = plot(H,(x,-5,5))
show(p1)
H1(x) = diff(H,x)
show(H1)
x ↦ cos(x)cos(sin(x))cos(sin(sin(x)))
H1reverse(x) = integrate(H1,x)
show(H1reverse)
x ↦ sin(sin(sin(x)))
differentiationCode = """
H1(x) = diff(H,x)
"""
integrationCode = """
H1reverse(x) = integrate(H1,x)
"""
timeit(differentiationCode)
625 loops, best of 3: 86 μs per loop
timeit(integrationCode)
625 loops, best of 3: 714 μs per loop
G(x) = sin(sin(x)+1)
plot(G,(x,-5,5))
show(G)
G1 = diff(G,x)
show(G1)
Greverse =integrate(G1,x)
show(Greverse)
x ↦ sin(sin(x)+1)
x ↦ cos(x)cos(sin(x)+1)
x ↦ sin(sin(x)+1)
show(plot(G,(x,-5,5)))
show(plot(G1,(x,-5,5)))
timeit("""
G1 = diff(G,x)
""")
625 loops, best of 3: 10.6 μs per loop
timeit("""
Greverse =integrate(G1,x)
""")
625 loops, best of 3: 426 μs per loop
show(G)
x ↦ sin(sin(x)+1)
Causation of failure
J(x) = sin(cos(tan(x)))
plot(J,(x,-5,5))
J1(x) = diff(J,x)
show(J1)
x ↦ −(tan(x)2+1)cos(cos(tan(x)))sin(tan(x))
plot(J1,(x,-5,5))
Jreverse = integrate(J1,x)
show(Jreverse)
x ↦ sin(cos(tan(x)))
timeit("""J1 = diff(J,x)""")
625 loops, best of 3: 20.1 μs per loop
timeit("""Jreverse = integrate(J1,x)""")
125 loops, best of 3: 1.37 ms per loop
y(x)=1/(2+1/x)
iy=integrate(y,x)
show(iy)
x ↦ 12x−14log(2x+1)
plot(iy+,(y,-5,5))
verbose 0 (3635: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 90 points.
verbose 0 (3635: plot.py, generate_plot_points) Last error message: 'can't convert complex to float'
y1(x)=2*x+log(x)
plot(y1,(x,-5,5))
verbose 0 (3635: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 100 points.
verbose 0 (3635: plot.py, generate_plot_points) Last error message: 'can't convert complex to float'
Answer: Modern serious CASes do have an algorithm (in addition to heuristics) to compute antiderivatives. The name's Risch algorithm. It is really difficult to even start explaining due to both

its sheer complexity (no complete implementations exist as of today even if you don't count stuff like constant problem that is an open mathematical problem, and the lack of knowledge regarding transcendence degree of certain constants like pi+e),
its immense prerequisites (a good math postgraduate would probably understand the basics)

If you're curious, you can try reading Manuel Bronstein's Symbolic Integration Tutorial, a rather advanced article that outlines what the modern CASes are supposed to do. Unfortunately, most CASes fail at some of his examples even now, more than 20 years after his tutorial was published.
Regarding the integrand $f(x)=\sin(\sin(\sin(x)))$, modern CASes easily prove that the antiderivative is not elementary. In fricas, for example, if the integral was proven non-elementary, the output will have the input integral with the free variable replaced with %A. If, on the other hand, the system failed to prove that the antiderivative is not an elementary function, the output usually contains the error message.
Here's an example of an integral that fricas fails to prove non-elementary:
<code>integrate(sqrt(x+sin(x)),x)
   >> Error detected within library code:
   integrate: implementation incomplete (has polynomial part)
</code>
...although $\int\sqrt{x+\sin(x)}\mathbb{d}x$ is indeed non-elementary.
As for the time complexity, indeed, certain parts of the general algorithm are very time-consuming, for example, certain symbolic calculations in rings where the factorization is not unique.
There indeed are big cached tables of antiderivatives, and sometimes the general Risch algorithm is not invoked, but no heuristics could replace the generality of an algorithm, even if it's implementation is not complete.


All is fair in the "equity" tag

Question: I am looking at the equity tag and its two questions. Please give me some guidance on the accepted reasons why entry in to CS is considered 'unfair', as in 'inequitable'?
Comment: The upshot is that it is about bias instead of inequity. Completely different thing.
Comment: Aaaandd... after reading research, no diff. So, your call.
Answer: First and foremost, I am answering here as a community member, not as a moderator. If others disagree, I hope they feel free to speak up.
I think that to seriously get into the weeds of this matter would be needlessly divisive in what is currently a tiny community, so I am providing an answer that is agnostic to whether or not the problem is real. I do this because I do not believe it actually changes whether or not the questions are within our scope.
Topicality: The discussions are clearly about and targeted towards CS education, so that aspect is a non-issue.
The problem itself: Some substantial portion of the community considers it a problem.  Some other subset does not.  The subset of the community that considers it a problem finds value in the discussion.  Not every community member must find value in every question.  If the line of questioning is both narrow-minded enough to produce thoughtful answers, about CS education, and has perceived value to a substantial portion of the population, then I believe it belongs here.
Those who do not find value in the question itself may down-vote the question, or simply ignore it (as we all do to questions that seem irrelevant to our practice).
Comment: Maybe the unclarity is due to an incorrect use of terms? See my answer, I don't think anyone could disagree or say that those two circumstances do not exist.
Comment: Personally, I'm not a huge fan of the word choice itself either, tbh, but it is the word that society has come around to, and I just roll with it.
Comment: Maybe society can't solve the problem because the wrong word is being used? X-Y Problem? (no irony intended)
Answer: Ben's answer focuses on whether or not questions about bias/difficulties entering the field due to personal features are on topic. Mine examines more the topic itself (it is derived from a now deleted comment conversation with nocomprende). I'd be glad to answer any further questions about this in the comments or in chat.

I just [want] to understand the problem.

I can tell you I have had one awkward conversation with someone on stack exchange in chat in terms of nerdy interests and gender; thankfully someone I know (from SE) stepped in and helped me out. And that was a minimally offensive sort of conversation. There's people out there that for some reason (background, personal belief, whatever) are of the mindset that gender does play a role in ability in certain fields. ::shrugs::

If the idea is that some people are biased, I can take that as an answer. But the tag says "... promoting fairness, especially in groups under-represented..." Sometimes I read wording too narrowly, but I didn't see what is unfair in starting to learn about computing? It is not unfair in the way that sports are, where people have built-in differences in strength, etc. What is the source of the unfairness? Programming tools are free and laptops are cheap, so it can't be that.

some groups of people are hired more than others. For example, those who are female, or are of a different color of skin, or who are older, have a harder time, at least in the united states, and in other countries too (as far as I know). Look up, for example, some of the statistics of silicon valley employees. Further, there are people who can't always afford a laptop, or who may not have the time (because they have a job, family obligations, gender roles, etc) to learn coding, so they are at a disadvantage by the time they start learning. Look at some of the articles in Ellen's question/answer. Another source of "unfairness" is the way managers may treat employees of different ages/genders/orientations/colors of skin (I'm trying not to exclude a group here; but hopefully my point is clear).

but that is inequity in the workplace, and we are talking about education. I will look at the articles, probably should have already [...] Maybe you could summarize your points in an answer? The answer above says nothing except why people don't want to talk about it. (Whatever it is.)

Well, the question with the equity tag is about preparation for entry into industry i.e., how to respond to that sort of attitude towards those of different gender/color of skin/etc. Further, the same sorts of things happen in college, or education - there are unfortunately professors out there who do not have the best attitude and to which the same points apply above. But yes, please do read the articles and the experiences of those in industry and education - there is plenty of bias and unfairness out there =)
As for the matter BenI. is talking about - he is saying that the issue of whether or not there is actually bias could divide this community very deeply and it is probably something that we shouldn't argue over too much. The point is that the questions are on-topic and the tag exists to provide a categorization to those questions.
I hope this helps!
Comment: @nocomprende I removed the section of the comment I think you were referencing; I apologize for not removing it when I copy-pasted over your comments; I didn't notice it. But yes, there is a general bias in industry and education (or, as you say, inequity).
Comment: Looks like I made another "colorful metaphor", perhaps you could elide that from where you quoted me? Anyway, the tag is apparently about biases against our students, possibly in the future rather than actual inequity of the learning process in the present. I think it would be helpful if someone would correct the description. Thank you for your reply.
Comment: @nocomprende, nope, it's also about biases against students in the learning process in the present - it's about biases against students period. Also, what do you mean by "colorful metaphor"?
Comment: Ok. To me, a 'bias' is something a person has, and so we reprimand and then dismiss the person if they don't change. 'Inequity' is systematic, and requires changing a system, not a person. "Colorful metaphor" is from *Star Trek The Voyage Home*. My comment included a joke in poor taste, which of course I did not mean literally.
Answer: The equity tag refers to 'fairness', yet people are talking about 'bias' which is as far as I know, a different concept.
Bias refers to a prejudice or belief, which by definition is held by a person. Fairness is about a system, such as laws or an admissions process. Laws can be 'unfair' such as for women being unable to drive or own property. This could be the case even when no one wants to uphold those laws, that is: when no one has a bias.
I suggest that these be treated as separate problems and that the tag be clarified. The solution when an individual has a prejudice is to take it up with that person. The solution when a system is unfair is to get the system changed. Conflating the two is incorrect.

All is fair in the "equity" tag


Please help me....I want to know how to code for background subtraction

Question: I'm just getting started with OpenCV. I came across this question, and I'm trying to find where that code came from. Any ideas?
Comment: I *think* this is what Linetor meant, but if anyone else has a better idea feel free to edit.
Answer: If you don't have reference image of the background then you could try to make an average of first n frames and use such resultant image as a reference. This number, n,  could be 20 or similar and it should be enough if the scene isn't too complex. I recommend you to read a chapter about background subtraction in  official OpenCV book (http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134) as there are some of other similar techniques presented.


will elementary run on a Centrino 2 duo core @ 2000 Mhz?

Question: My question is will elementary run on a Centrino 2 duo core @ 2000 Mhz?
Comment: You can always try elementary OS in a Live session to check hardware compatibility. Then you can check your internet connection, sound, graphics... Have in mind that a Live session is much slower than installation but it will give you an idea of your hardware compatibility with elementary that can prevent problems later.
Answer: Yes you should be able to. I recently replaced chromOS on the Acer chromebook 14 and it hasn't had any problems running simple tasks. This machine has the Celeron N3160 which runs at 1.6GHz. I have not done anything very system intensive to see if there are any problems but the OS animations all run smooth and the CPU doesn't seem to be struggling and heating up. Hope this helps.


USB or external power

Question: I have an arduino mega that i am using as a clock. I would like it to detect if it is connected to a USB or external power supply (e.g. a battery). I then want to set a variable to different values depending on the result, so i can display it on an OLED.
Answer: Use a simple transistor where the Vin (external power) is connected to the base, which switches the transistor. Than connect the collector to +5V, and the emitter to a GPIO input pin and read the status with the Arduino. If it receives a HIGH you know external power (via Vin) is used.
See the useful 'good' answer as comment of Majenko below ... I will leave the answer above as is, to keep his remarks clear.
Comment: Slightly more involved than that - you want to have the transistor (NPN or N-channel FET) between the GPIO and Ground, not +5V, and a pullup resistor (or enable the internal pullup resistor of the GPIO pin) and look to see if it's reading LOW for "External Power Applied". Also a resistor in the base of an NPN is needed.

USB or external power


Color management between Mac and PC

Question: I have seen posts for color management between computer and printer, but I'm having a hard time finding the answer to color management between a mac and the printer and a pc and the printer.
I work in a small office – in my role, I use a mac while the rest of the company uses a PC. The problem occurs when pc users print certain color documents (e.g. our letterhead) on our color printer (HP CP 4025 – yes, it's old!), the colors are off.
Our logo is a shade of purple, but it will print out blue. How do I determine the correct colors to use to create the letterhead so it prints correctly from the PC?
When I print from my Mac, it's correct. The error occurs when the PC users print a Word document or PDF.
Comment: Hi bdmnn, Welcome to Graphic Design Stackexchange. Colour management is effective when all components of the network are under the control of the colour management system. Are the PCs using any system of colour management? Are the Macs?
Comment: What programs are they using on the PC side? The more sophisticated graphics/layout programs under Windows may be able to do color management, but not Office or similar programs.
Answer: Before printing check this:

Mac Monitor Calibration is well done
PC Monitor calibration is well done
The documents profile are the same as the color printer profile

Having all this, there won't be any problem (or at least not so big) matching colors when printing from any computer.
Comment: - Calibrate the printer as well.

Color management between Mac and PC


gnu assembly RET instruction on x86-64 architecture FAIL

Question: The below program causes an SEGMENTATION FAULT. The RET instruction don't recover RETURN ADDRESS TO SYSTEM.
Debugging session with gdb, I can read that the return address IS NOT on the stack. Before the first instruction pushq %rbp the %rsp stack pointer reference the 0x00000000 address that is not the return address  and cause the SEGMENTATION DEFAULT.
On debug session when I set the breakpoint on _start label the first instruction to execute is not the Epilogue.... it is the Prologue.
It is clear that the system calling operaion don't operate correctly with the stack pointer and don't save the return address.
I had not this problem on a old 32 bits platform.
¿Some idea?
Thanks in advance.
gdb session:
Reading symbols from /home/candido/tutoriales/as_tutorial/examples/basicos_64/nada/ret_fault...done.
(gdb) b _start
Breakpoint 1 at 0x40007c: file ret_fault.s, line 15.
(gdb) run
Starting program: /home/candido/tutoriales/as_tutorial/examples/basicos_64/nada/ret_fault
(gdb) x /x $rsp
0x7fffffffe068: 0x00000000
(gdb)

as source code:
###  Simple Prologue Epilogue Module
###  System call don't save the RETURN ADDRESS
###  Assembling: as -gstabs -o ret_fault.o ret_fault.s
###  Linking: ld -o ret_fault ret_fault.o
###  Execution: ./ret_fault
###  System warning:    SEGMENTATION FAULT
###  System platform: Linux lur 3.2.0-33-generic #52-Ubuntu SMP  x86_64 GNU/Linux
    .text
    .globl  _start
_start:
    ## Epilogue
    pushq   %rbp        # save calling frame pointer
    movq    %rsp, %rbp  # set called frame pointer
    ## Prologue
    movl    $0, %eax    # set return value
    popq    %rbp        # restore calling frame pointer
    ret         # return to system. Get return address from stack and load on RIP register.
    .end

Answer: You can't use ret to end a program. You can use eg. syscall:
movq $0x60, %rax
xorq %rdi, %rdi
syscall


Creating a mail approval on sharepoint lists

Question: Does anyone know the easiest way for applying the possibility of reply to the workflow notifications from SP lists? Let's say that recipient could just reply to the email 'Approve'.
It'd be great if it worked on all SP lists. Should it be done via exchange or mailanable list directly in sharepoint?
Answer: I have done this scenario before. It isn't exactly what you are looking for, but it will work.
I'd probably have something like a discussion board that was open to incoming email, and in the workflow have a link at the bottom of the workflow notification email for Approving, which would open a new email to the discussion board incoming email address. That incoming email discussion board list has a workflow that reads the Subject and parses out the ID, finds the task in the task list, and makes sure the user that submitted the discussion board email is the "Assigned To" user to that task. Then cross reference the ID and Assigned To to find the task and set the Outcome to Approved to complete it.
It's a little ugly, but it works all with out of the box components.
Comment: it really seems to be ugly :) How about safety? Basing only on element ID that might be easy to guess, seems to be risky.
I was wondering if there are some kind of free workflow solutions or addins that would have such option. Office365 or Webhook seems to be too heavy for that.
Comment: The user that sends the email must match the user in the "Assigned To" field of the task of that ID, which would be logic in the workflow. Otherwise it won't pass.
Answer: I've made a quick research within some commercial solutions and tested WEBCON and NINTEX. They seem to be fine with this options, especially WEBCON seems to be more friendly and easier.


How do I share plugin settings across WordPress network?

Question: I am using multisite to translate WordPress website and I have the plugin https://wordpress.org/plugins/nmedia-user-file-uploader/
which I want to be accessible from all languages. From all site you should see the same uploaded content and settings.
How can I achieve that?
Currently if I upload in one language I won't be able to see in another.
Comment: @Nilambar - Since the question of how to get settings to propagate across blogs is plugin-agnostic, I think it is on-topic.  Besides, where else could Rob ask such a question?
Comment: Support for specific plugin or theme is off-topic here.
Answer: The generic way to do it, is by using the pre_option_{option} https://codex.wordpress.org/Plugin_API/Filter_Reference/pre_option_(option_name) filter to override the "local" settings and use the value being stored in your "main" sub site.
something like
add_filter( 'pre_option_the_plugin_option_name', function () {
  // Code assumes that "blog" 1 is the main one in which the relevant settings are stored.
  if (get_current_blog_id() != 1) {
    return get_blog_option(1, 'the_plugin_option_name');
  }

  return false;
}

Depending on the complexity of the plugin, it might not be enough and you will need additional overrides, but this type of code should be enough for simple cases.
Answer: I almost thought this was a duplicate to Network-Wide Plugin Settings Management , but I see you also want shared content.
Basically, this is tough and situation and plugin dependent.  I'm a fan of WPMUDev's premium New Blog Template for copying content and settings upon blog creation, but it doesn't help with subsequent settings and content changes.
WPMUDev also has MultiSite Content Copier which might work for you.  I haven't tried it myself, but it looks reasonable.  There may very well be other, and cheaper, options, too.
I hope this helps - good luck.
Comment: copying content means that you always have to keep in mind that you need to copy it on every change, and that you are not allowed to change it by mistake on other sites. This might be good enough when you intent to "fork" the content and settings, but not when you need them in sync


Broken image on mouseup when MVC ActionResult called for file download

Question: I originally created a button that changed the src based on mouseup and mousedown to give it the appearance of being depressed when clicked as well as playing a click sound.  This worked out fine until I tried to force PDF download through MVC action.  I've tried to skin this cat a few different ways but I've settled on using the mouseup function to set the window location to my pdf download action passing in the needed file download path information.  Now when I click the button it depresses (correctly executing mousedown), then on mouseup it correctly plays the click sound and also downloads the pdf file as I want, but makes the button image appear to be broken.
When I first load the page and the button hasn't been clicked yet the image looks like it's supposed to.  Then after running mouseup it's broken (using Chrome or disappears or appears garbled in IE and Safari) but when I inspect the source the src attribute looks to be identical so I'm not sure why it's returning a broken image if the src is the same as it was before.
Code-
View jquery:
var audio = document.getElementsByTagName("audio")[0];

    $('#MAAX-DGB-Button').mouseup(function () {
        $(this).attr('src', '../../Content/Images/AdLandingViews/MAAX-DGB.png');
        audio.play();

        var pdfDownload = '/Locator/ForcePDFDownload?PDFURL=<file location info>';
        window.location = pdfDownload;
    });
    $('#MAAX-DGB-Button').mousedown(function () {
        $(this).attr('src', '../../Content/Images/AdLandingViews/MAAX-DGB_press.png');
    });

View HTML:

ForcePDFDownload MVC Action:
public ActionResult ForcePDFDownload(string PDFURL)
    {
        string path = @"\\<server location>\" + PDFURL;
        string filename = Path.GetFileName(PDFURL);
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
        return File(path, "application/pdf");
    }

You can test the code here:
https://maaxspasportal.com/Locator/AdLandingLocate/MAAXCollection but you'll have to fill in some dummy data and submit the form to get to the results page where this issue is occurring on the "Download Green Brochure" button.
Tested Browsers:
Chrome Version 28.0.1500.95 - Image appears broken.
IE 10 - Image disappears or looks garbled.
Safari 6.0.5 - Image disappears.
FireFox 22.0 - Works!
Thanks for any help getting this to work correctly.
Answer: Well I never determined the exact root cause for the issues, however I did find a way to fix the problem.
On mouseup I applied a setTimeout delay on the forced pdf download function:
var audio = document.getElementsByTagName("audio")[0];

    $('#MAAX-DGB-Button').mouseup(function () {
        $(this).attr('src', '../../Content/Images/AdLandingViews/MAAX-DGB.png');
        audio.play();

        var pdfDownload = '/Locator/ForcePDFDownload?PDFURL=assets.maaxspas.com/docsources/1/138ee0a8-e0f0-47d5-9447-fca6f538d74f.pdf';
        setTimeout(function() { window.location = pdfDownload }, 1000);
    });
    $('#MAAX-DGB-Button').mousedown(function () {
        $(this).attr('src', '../../Content/Images/AdLandingViews/MAAX-DGB_press.png');
    });

Would still be interested to know what was going wrong but at least it's functioning the way I want now.
Thanks.


What is the point of getting the bootstrapped skewness and kurtosis in a Cullen and Frey graph?

Question: I have two examples of a Cullen and Frey graph (obtained using the fitdistrplus package in R). The first is from this question, and the second is from some data I have. I don't understand what the use of the bootstrapped values are. In the first graph, do they simply confirm that the empirical bootstrap sample have observed kurtosis and skew that match that of a beta distribution, thus giving support to the hypothesis that the original data is beta distributed? What about in my data where the bootstrapped values are all over the graph. What am I meant to conclude?
Comment: They are alternative pictures of the data that can help show the distribution.  Think of each tool a a foggy window, but with multiple windows you can get a better picture.  Ecdf, qqnorm, this, and others are tools, hammers, but not every problem is a nail.  They will show not only the tails, but the center.  They can show modality.  They are also frameworks for determining the nature of the distribution.
Comment: Can you graph either qqnorm or ecdf?  Can you list numeric summary statistics for your data?  What was the text output of the descdist function?
Comment: Why would doing these things help me understand what the bootstrapped values do?
Comment: I see. But using your analogy, I am really asking about how to use a hammer. I ended up choosing a distribution for my data but I am still curious to know how I am meant to interpret the bootstrapped kurtosis and skew values.
Comment: I am still figuring out this graph, for my own uses too.  My best guess is to look at the blue point, my distro, and what it is near.  If it is on one of the lines, such as gamma or lognormal, then it can be gamma, lognormal, or weibull.  I think (my guess) that the bootstrap gives you a heuristic sense of where the point could be, and helps pick nearer vs. farther points.  That is why I asked my related question about how to plot a 2d nonparametric density on the bootstrap values.
Answer: What is the point of the bootstrapped skewness and kurtosis in the plot? Well, they represent some reference distribution to judge the plot. Referring to your first plot, which shows both skewness and kurtosis way too large for the named distributions shown with only one point in the plot.
Look at the dotted line representing the lognormal family. The bootstrapped cloud lies clearly above this curve, so the skewness/kurtosis relationship for the lognormal cannot represent your data.
Then look at the dashed line representing the gamma family. The bootstrapped point cloud at least intersects with this curve, so at least the gamma family could be contemplated.
Then finally look at the blue-grey area representing the (four-parameter) beta family. Most of the bootstrapped points lie within that area, so the (4-parameter) beta family could also be contemplated.


What is the importance of compassion in stoicism?

Question: I am quite attracted to a lot of buddhist ideas, but have always had a problem in that compassion is a cornerstone of the buddhist way, and I don't have any. There are tools for developing compassion, but you have to want to, so in 10 years I haven't really used them. I wouldn't like to suggest that stoicism is a kind of buddhism lite. Still there are parallels, so I would like to know what importance is attached to compassion in the stoic way of life.
Comment: I can't vouch for the accuracy of the content, but [this link](https://dailystoic.com/stoic-compassion/) seems to address your question.
Comment: To link in with it requires a breakthrough of insight. It can't be achieved be thinking. However, you are more likely to have the insight when looking for it. But it could happen while driving home from work one day... You see a jogger running across an overpass ahead and you think: "*He has a life, too.*"
Answer: I believe that suffering is the corner stone of Siddhartha's teachings (the Dharma). To overcome dukkha (dissatisfaction) one follows the Four Noble Truths.
While compassion (for others) is a worthy trait, it does not lead to the understanding of, or the over coming of, suffering.
This suffering is of the self not of others.
Comment: Yes. I think the general idea is to be firm with oneself, and empathetic towards others, because of having insight into the nature of suffering. So Stoicism includes both, but the compassion is not emphasized as much in literature, being the easier thing to achieve.


Schengen visa for the non-EU spouse of the EU citizen

Question: I'm married to an EU citizen and I have my EU marriage certificate apostilled. I'm currently in my native country, but I want to visit Europe. Can I apply for the visa for every Schengen member country or I can only apply the visa for the country of my spouse?
Answer: You should apply to the country you are going to, like every other visitor.  If you happen to go to the country your spouse is from, different rules might apply but otherwise the visa should be free of charge.
These rules only apply if you are travelling with your EU spouse (or to join him or her). If you are travelling alone, then you have to apply for a Schengen visa following the regular procedure, with all the supporting documentation and associated fee.
See also Travel documents for non-EU family members on Europa.eu.


Does this Dewalt corded drill have multi-speeds?

Question: I can't tell if this Dewalt drill has multiple speeds.
Comment: Do you mean the torque setting?  See http://diy.blogoverflow.com/2012/04/clutches-torque-and-you/ for lots of useful information
Comment: Drills are for drilling, drivers are for driving (screws).
Comment: **"0-2,500 RPM VSR trigger for versatility in drilling and fastening applications"** stated as a bullet right at the top of the page.
Comment: **"Enjoy the drill's variable-speed trigger ..."** stated in the first paragraph of the product description.
Comment: **"Variable-speed control from 0 to 2,500 RPM"** stated as a bullet item in the highlight box.
Answer: If you see the letters VSR in a description for a drill, that means it is variable speed.
More to the point VSR stands for:
<code>Variable
Speed
Reversable
</code>
which means the drill/tool can run from 0 RPM to the max RPM for the drill/tool in forward and reverse.
Answer: I have one of the cheaper Dewalt corded drills. It does have variable speed (according to how far in you press the trigger), but seems to not go as slow as my battery drill. It also does not have a clutch. I would never use it for screwing.
Comment: The best tool for screws is an impact driver, other than a screw driver of course
Comment: Impact drivers are fantastic for screws, just don't use them on finish work, soft wood, or soft screws (brass).
Comment: so do you have to have a cordless for screwing?  should I just get a separate screwdriver since I already have the drill?
Answer: This drill definitely has speed control (I've got the data from the DeWalt site in Russian, pretty sure that USA site has that data too) - it is claimed to have 0-2500 RPM controlled by how deep you press the switch button. However it will have rather low torque - around 11 Hewton-meters maximum and that's likely on the highest speeds (that's how drill motors work). The other problem is that you don't have fine control over rotation speed - all you have is a button with about 10 millimeters range and that range is mapped onto 0-2500 RPM so you will likely have hard time controlling the speed and you have virtually no direct control on the torque.
For your application you'll be much better off with a drill that also has a "maximum RPM" wheel on the switch - the wheel sets the maximum speed and how deep you press the button controls the speed in the 0-SELECTEDMAX range. This has virtually no control over the torque either.
The bottom line is this drill can be used for driving screws, but it's definitely not the best selection because of poor control over RPM and torque.


What are the consequences if we try to attach a Native Thread permanently to the DVM (JVM)?

Question: Is it feasible to attach a native thread permanently to the JVM (AttachCurrentThread) (or) is it better to attach when ever required (calling java functions) and detach immediately once the work is done
I wrote a sample native app with the above cases, didn't find any difference. But by googling, vaguely I came to know that, when attached to JVM , JVMs thread scheduling is responsible for scheduling else OS will schedule the native thread (if not attached). Is this true?
It is important to detach any thread that has been previously attached; otherwise, the program will not exit when you call DestroyJavaVM. - http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniref.html#attach
Will there by any performance issues?
Please let me know if anyone knows, its one my important design aspect.
Thanks & Regards.
Comment: Can you provide info on why you want to attach to a native thread?
Comment: We are developing some application in which usually it calls the Java code once in a while. At some point of time native will call the Java code rigorously, so every time attaching and detaching the thread is hindering the performance of the application (as it is not a for loop of calling Java functions I cant avoid from attaching and detaching). This is the reason I am working for the pros and cons of the above article.
Comment: http://groups.google.com/group/android-ndk/browse_thread/thread/6aaf28efb838a9eb/5e66ad0af35c15c3
Answer: Generally speaking, the main performance cost is the thread creation at OS level. Either the thread is creating natively and then attached or directly created as java.lang.Thread from Java API.
If you re-use the same native thread, performance will be good. By the way, do not create dozens of native threads.
The JVM does not schedule threads itself. It may force them in sleep state for various reason like garbage collection. In that specific case, it has to wait for a JNI call from a native thread before collecting. So you have to avoid too long code execution without JNI call to keep the VM heap consumption low.
Moreover, you have to take care to call DeleteLocalRef before detaching a native thread or else your VM will leak memory.
Comment: Took so much time for understanding as I am novice to JAVA & Android
Answer: When a native thread is attached permanently, not able to exit the native thread. Its crashing when we try exiting the native thread without detaching. But when we detached, native thread was able to do graceful exit.
Answer: I haven't experienced any consequences except for boosted performance.
That is exactly what I do in an application that is shuffling directly-allocated ByteBuffer data between the two layers. I discovered the cost of constantly attaching/detaching was very high, as one might expect. My approach is to launch a single Java-managed thread that makes a blocking JNI call at launch, which in the C/C++ layer contains a condition/signal-style loop (so as to not eat CPU cycles). I can then signal down to the loop anytime data is ready for processing, and conversely I can signal up to Java when the hard work is done.
new Thread(() -> myBlockingJNICall()).start();

Then down in the C layer:
#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus

    static JavaVM *jvm = nullptr; // captures the JVM on load

    JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *the_jvm, void* /*reserved*/)
    {
        jvm = the_jvm;
        return JNI_VERSION_1_2; // must export 1_2 to use any of the new functions, 1_1 otherwise
    }

    JNIEXPORT jboolean JNICALL Java_myBlockingJNICall(JNIEnv *env, jobject)
    {
       // loop forever waiting for work and using env for signalling
       // jvm is stored in case we need to manually attach (or perform more complex work requiring jvm access)
       return JNI_TRUE;
    }

#ifdef __cplusplus
}
#endif // __cplusplus


Can I report the same study twice but with different authors?

Question: I successfully defended my dissertation in November. Through the process, my chair (member A) was a terrific cheerleader. My second committee member (member B) was encouraging in a more specific,academic manner. At times, only because of Member B's feedback, I advanced in the dissertation process. Committee Member B broached the notion about co-authoring my study. Two days later, Member A called to discuss possible authorship opportunities. I have not given a firm answer. Is it possible to write two articles in separate journals with two different authors using the same study(not the same article)? How does one handle this issue?
Comment: This sounds like you don't want to talk with A + B, together, in advance, but keep them in the dark? Bad, bad, bad idea, and totally unprofessional.
Comment: Could you please edit your title into something more descriptive?
Comment: Thanks for the response.I am actually trying to be professional. I am simply new to this process and did not know if there was protocol.  A&B did not seem to be friendly to one another, and I was stunned that both approached me about publishing opportunities.
Answer:
There is a general prohibition on publishing the same work twice, whether with different co-authors or not.
One option is just to add both of them on same paper.  Put yourself as first author.  After that, it's other people riding the sled.  Most people understand the main contribution is first author.
Potentially there is some way to carve the study into different pieces and do different papers with each person without violating (1).  Or maybe give one of them some later co-authorship (say on a review or followup study).  I wouldn't go through too many contortions though just for the purpose of doing separate co-authorships.  Divide your overall work as you think it makes most sense to the reader and most benefit to you.  Then figure out what coauthors are deserved where.
Also consider to use the "acknowledgements section" if a contribution was made but you do not think it rises to coauthorship.
Finally, I would make sure that A knows about what B is asking for.  They may be buddies/colluders or rivals or whatever. But he can advise you. I bet he says go with (2).
Comment: Thank you for your comments and advice. I appreciate your thoughts.
Answer: Some studies are rich and complex enough that it is perfectly reasonable to publish more than one paper, each detailing some particular novel aspect of the study. Not all are like that, of course, but if yours is you can certainly proceed as you suggest. You aren't limited to just two.
For example, if a math paper has many lemmas to reach a specific result, some of the lemmas may, themselves, be worth a publication. This is especially true if the dissertation is longer than most journals would accept.
On the other hand, in my day (changed fields and am retired now), it was perfectly ok for a student to publish his/her own work without any co-authorship by advisors or others. I don't know if that is still true, but it seems a better practice to me. I would never consider being a co-author with one of my doctoral students on their dissertation. The work was theirs, even when I contributed some things.
Comment: It may depend on the field, but in biophysics in Europe the PI is always the co-author of a paper (in my experience from 4 different labs at least), even if they did not contribute anything except funding and laboratory equipment.


How do I prevent my phone from syncing contacts with Google with xPrivacy?

Question: I have installed xPrivacy on my phone. Which rights for which app do I have to set?
Answer: Why that complicated? There's no Xprivacy or other tool required to prevent your device from syncing contacts with Google. It's rather a question of your settings:

If on account creation you decided to "Backup your data with Google", you might want to re-consider this, as this might include more personal data than just your contacts
in Settings→Accounts & Sync you can define what should be synced with your online accounts (not restricted to Google). Switch off what you don't want to be synchronized.
in your contacts app, you can chose the "default storage". Using something other than "Google" here would also keep new entries from being sync'ed with Google. Note, however, that you cannot move existing entries between the several possible storages directly; you might need to export them, remove them, and (after switching your default storage) re-import them.

Btw: Same applies to your calendar. Except there I don't know of any export/import feature in the calendar app, so for this part you probably need a 3rd party app.
Comment: **+1** still for **option 3.**. I should do this before doing anything on my new phone
Comment: The first two points were exactly what I was doing, but still it "somehow" happened that all my contacts were synced into my Gmail Contacts nevertheless! So next time I want to be really sure that cannot happen again with the correct xPrivacy setting.


Binomial Expansion

Question: If $f(x)= \dfrac{1}{(2x+1)} + \dfrac{4}{(x-2)} + \dfrac{8}{(x-2)^2}$ show that when $x$ is sufficiently small for $x^3$ and higher powers to be neglected, $f(x)= 1- x + 5x^2$
How do I do this without using the Maclaurin expansion.
Comment: Binomial? In which sense?
Comment: What do you mean by not using the Maclaurin expansion? You are basically asking for the first three terms of the Maclaurin expansion. Maybe you just mean: without computing $f'(x)$ and $f''(x)$ for all $x$?
Comment: I do not recommend the following approach, but it will work, and doesn't use any Calculus: combine the three fractions into a single quotient of two polynomials, and then work out as much of the quotient as you need, by polynomial long division. Actually, you could do that on the three fractions individually, and then add the results of the three divisions.
Answer: HINT : you have $x$ sufficiently small ie you can use the following two expansions :
$$\frac{1}{1-x} = 1+ x + x^2 + O(x^3)$$
$$\frac{1}{(1-x)^2} = 1 + 2x + 3x^2 + O(x^3)$$
Make sure you transform what you have in the above forms before expanding.
EDIT : If you really want to use the binomial theorem which is :
$$(c+y)^\alpha = c^\alpha + \alpha y c^{\alpha-1} + \frac12\alpha(\alpha-1)y^2 c^{\alpha-2} + O(y^3)$$
Then go ahead substituting $c = 1$, $y = -x$ and $\alpha = -1$ and you will get the above geometric series. That said you can just use it directly without the need of using my hints above.
Comment: And how did you get these expansions?
Comment: @user140161 : The first is the geometric expansion. The second is simply the square of the first one.
Comment: We don't have geometric expansions in our course. Or the Maclaurin series. This is supposed to be done using the binomial theorem
Comment: @user140161 : binomial theorem will give exactly the same. I'll edit so that you see.

Binomial Expansion


Quickly removable external disk unit

Question: I am planning a Windows Server 2012 backup unit, and NAS backup could be a natural choice, however for safety reasons, the client will be forced to perform disk rotations, hence weekly the backup unit will be detached and NAS units aren't made for this as the connectors may get teared during time. So I thought about external USB portable disks (cheap solution nowadays) for backup and weekly rotation, however USB units may require console intervention on detachment to allow safe disconnection.
I am aware of fast disconnection of disk units, but I wonder if this is safe, and if there could be a better solution for this task
Answer: Nah, it's safe. It's a synchronously mounted filesystem with a disabled on-disk write buffer (that's the only difference). Both of these are software controlled, and you can do this with any media. This is controlled in the drive properties within the device mangler.
I won't say this is a particularly terrible solution for the task, but it will be a bit more manual than a well-automated form of secure backup that does not use disk rotation and instead uses diff / incremental transportable snapshot rotation to disparate cloud resources.
However, since you're already having to do disk rotations, it won't actually be much more work. There are auto-loading disk systems out there that could do the job, but they're VERY expensive and generally pretty archaic.
Almost as archaic as manual disk rotations. But this will work in a small scale situation.
Comment: Actually the backup plan is achieved: over the internet (nightly google drive), over the server disks (daily plain backup and weekly VHD), over external disks (copy of plain backup and VHD, with weekly rotation).
Comment: BTW what strategy do you use?
Answer: Don't go for USB backup with large amount of files - I unfortunately implemented this solution to backup >4TB data and >12000000 files to 5TB usb 3.0 drive... the I/O is so slow, that backup takes almost tree days (weekend).
here You have backup performance with usb disk an native sata:

About disconecting - I'm not sure what You are afraid for? just disable cache write on usb disk - this solves the possibility of data loss on disk unplug on idle (we are using 2 USB drive for rotating backup - on monday I just disconnectin drive, works like a charm)
Comment: Thanks for sharing. USB 3 and not so large number of files will help ;-)

Quickly removable external disk unit


PS4 plus free games

Question: Hello guys I got a question if an example I have downloaded the free game plus of august can I play them at anytime if my subscription is on like in 3 month would they be available
Answer: You can play the PS Plus games only while you have PS Plus Subscription.
While you don't have subscription you can't access the games.
If you have 1 month subscription, you can play the game during that month. After that you can't play it. If you then get a new subscription you can again play the game.
Comment: Note that any game you paid money for will still be playable after your subscription ends, even if you got it for super cheap due to a PS+ discount.

PS4 plus free games


Scroll ListView smoothly and programmatically

Question: I have searched a lot but I couldn't find an answer.
I want to implement something like in Go Launcher. When you drag an icon in app drawer and move it out of container top or bottom bound, the list begins to scroll.
So far, I have tried following things:

Dispatch touch events to simulate scrolling - impossible while touching the screen
Use smoothScrollBy() method - almost there, but it scrolls only screen height distance
Use scrollBy() - it moves only the container and leaves blank space. I would put there some rows if only I could be able to reuse views that went off the screen.

I need the ListView to scroll SMOOTHLY.
So here goes ma question. Anybody knows how can it be done? I'll put a gratitude in About section of my app to person who will help me:)
Comment: have u found any solution?
Answer: using listview  and try scrollToPosition(),or smoothscrollBy()


What is the reasoning behind Kara no Kyoukai numerical movie order?

Question: After planning to rewatch and seeing Kara no Kyoukai Remix: Gate of Seventh Heaven, it made me curious; if the chronological timeline is quite clear, why did they decide to kind of scramble the chronological order for the 1st to 6th movie? Aside from the direction, does it have any meaningful reasoning plot-wise than to do it chronologically?
Comment: Note that the movies are adapted from the light novel, and that's the order of the original chapters (reference: [Are the Kara no Kyoukai movies based off chapters from one book or seperate books?](https://anime.stackexchange.com/q/5396/2516))
Comment: @AkiTanaka ah, I didn't know about this, thanks, now I feel my question is a duplicate
Answer: Kara no Kyoukai was designed to be out of order, just like the movie Memento was designed to go backwards.
I watched it chronologically once, but it doesn't work very well. Some of the slower movies are used to set the mood early on, putting them where they are supposed to go chronologically wrecks the flow.


Using PHP to get number of google search results for strings?

Question: I want to run a PHP script that takes a list of strings, google searches them, and then returns to me (so I can insert into a database, write to a file, whatever) the number of search results.
Is there a way to use a Google API to do this programatically from PHP? Any other methods?
Thanks for any pointers.
Answer: The most straight forward way is to simply use contents of the websearch.
<code>foreach($list_of_strings as $string)
{
    $result_in_html = file_get_contents("http://www.google.com/search?q=$string");
    //parse the html however you see fit
}
</code>
However, a Custom Search API does exist.
With the Custom Search API, you have to create an app to receive an authorized API key. With that key, you get 100 free queries per day, and can get results in both JSON and ATOM formats.
Answer: No, and if you use cURL to do this from your website, be prepared to get blacklisted by Google rather quickly as this is strictly against their TOS.


Macbook Pro stopped syncing photos to and from iCloud suddenly

Question: I know there is a similar question but nothing suggested there worked, unfortunately...
I have an iMac (OS v10.13.6) which has the original photos and it syncs flawlessly with an iPhone X, iCloud.com, with iPad mini and, until recently with my MBP (OSv 10.13.6) . The latter, all of a sudden, stopped syncing while the others are in sync!
I have tried:
1. unchecking "iCloud photos" and rechecking.
2. Repaing the photo library
3. Unchecking iCloud photos >> Repair >> Recheck
4. Unchecking iCloud photo >> New library >> Recheck
5. Numerous restarts of the OS in between...
Nothing seems to help!
Any ideas?
Thank you in advance!
Answer: Here are some solutions found on this Link

1) Check the Internet connection on your devices, As you may know, a
  stable network connection on your iOS device and Mac is required to
  upload photos to iCloud. Thus, you need to make sure the Wi-Fi network
  connection works properly on your Mac and your iPhone (or other iOS
  devices). If you find Wi-Fi not working on your devices, learn how to
  fix it from the related article.
This is the first solution you should try when iCloud photos do not
  sync to Mac or photos are not downloading from iCloud to Mac.
2) Check your Apple ID To sync photos across your Mac and iOS devices,
  you have to sign in to iCloud on these devices with the same Apple ID.
  When you find iCloud photos not syncing to your Mac, go to check your
  Apple ID and see whether it's the cause of the issue.
3) Turn on iCloud Photo Library and My Photo Stream To access photos
  your photos and videos from all your devices, you need to turn on
  iCloud Photo Library/My Photo Stream on both your iOS device and
  computer. If iCloud photos are not syncing to your Mac, you should
  also check whether the options are set up correctly.
On iPhone/iPad: Go to Settings > [your name] > iCloud > Photos and
  then switch on iCloud Photo Library and My Photo Stream. On Mac: Go to
  System Preferences > iCloud, make sure Photos is selected and click
  Options next to it. Then turn on iCloud Photo Library and My Photo
  Stream.
4) Check your iCloud Storage Apple provides 5GB of iCloud space for
  free. But 5GB is generally not enough for you to store your iPhone
  photos and videos. It's possible that iCloud Photos Not Syncing to Mac
  is due to insufficient storage in iCloud. If that's the case, you can
  either buy more iCloud storage or go to Apple Menu > System
  Preferences > iCloud to manage iCloud space on your Mac.

I hope this helped fix your macbook pro.
Comment: Thank you. Wifi and network in general are fully functional. All devices are on the same Apple ID. I have iCloud photos on on all devices. My storage on iCloud is 2TB. That means that, unfortunately, i need something else to try...


Inaccessible Boot Device after switching to SSD

Question: I cloned my Windows 10 installation from an HDD to a smaller SSD using Clonezilla. It was harder than I expected, but I was successful. Once my SSD installation was running smoothly, I used an Ubuntu Live USB to wipe my old HDD clean so I could use it as a secondary drive. Now whenever I try to start with the HDD connected, Windows won't start and will show the "Inaccessible Boot Device" message. I tried everything I could think of, and spent one hour on the phone with MS customer support. Their solution was to perform a fresh installation, but I'd rather fix this without losing all my programs and data.
Note: I lost somehow the hidden partition at the end of the drive, but it doesn't seem to affect my computer in any way.
Answer: I ended up fixing it my making a bootable Windows 10 USB drive, and using the repair option. Quite simple actually.


Has Blob Ever Been Shown to Be Injured by Electrocution?

Question: One of the main reasons I have started to wonder about this recently, is I can't find any instances of this happening, although I imagine that there are several characters who could use electrocution as a means of assault. Can anyone help?
Comment: It has to be pointed out that in the 1958 B-movie _[The Blob](https://en.wikipedia.org/wiki/The_Blob)_,  which undoubtedly  inspired this character, a live wire falling on the monster didn't faze it at all -- it took something completely different  to stop it.
Comment: Do you mean Fred "The Blob" Dukes, enemy of the X-Men or the movie monster? (I'm assuming by the tags, you mean the Marvel character, but just making sure)
Comment: @Mgmills1968-Fred "The Blob" Dukes, not the movie monster, actually forgot about that film
Comment: What version of Fred Dukes ? He has been in movies, cartoons and of course comics.
Comment: @BjornEriksson-Any version will work, although I don't think you'll get much luck from the movies side, since he's only been in X-Men: Origins: Wolverine, fighting Logan and had a brief cameo early in X-Men: Apocalypse where he gets knocked out by Angel (which, sorry, that ain't happening, Blob beats Warren every time)
Answer: Yes, in Wolverine and the X-Men, Storm shocks him a couple of times and he falls:

This is episode #8 "Time Bomb" and it happens towards the end of the episode, when they're fighting on the ice.
Comment: Hey, sorry it took me a while to accept, i thought i already had. Computer must have glitched out


Can I get 'Lion/Windows-like' window resizing in Snow Leopard?

Question: I'm using Snow Leopard, and I'm finding it unbelievably frustrating that I can only resize windows using a single corner. Is there something I can install that will let me resize any window with any edge/corner?
Comment: I'm developing on Snow Leopard, for backwards compatibility. I have no choice in the matter.
Comment: Just curious, what's preventing you from upgrading to Lion?
Answer: The only way I have seen to do this in Snow Leopard is through the addition of an application such as Right Zoom or Mega Zoomer. Until you can move to Lion it seems this is your primary option unless you want to write your own scripts to do it.

Alrighty then, resize from any corner. You may want to take a look at Afloat. May not be EXACTLY it but it claims that you can resize a window from anywhere. Zooom
Comment: Right Zoom is good, but it's not solving the problem I have (being able to tweak the window size by dragging an edge).
Comment: Check out the edit and see how those work for you.
Comment: I installed afloat, it doesn't do what I want at all! It seems to be all about making windows transparent, nowhere can I find, in the documentation or otherwise, a way of enabling resizing from any edge!
Answer: You can also use an application like Moom or Divvy if you want to resize the windows via hotkeys, but I haven't seen an any-edge resizing solution.


What are the basic game activities?

Question: So there are genres like FPS, RTS and RPG, but every game is created around some sort of activity, like exploration, resource collection, storytelling or combat. What other basic activities exist?
Comment: Why is this down voted?
Comment: explained in the close plaque − not a good kind of question for the site
Comment: What specifically is not a good fit? I'd say the question of what are the core activities we can provide to players is an essential game design question.
Comment: Maybe but there's no way the answers won't be long lists, which SE people don't like. I suppose somebody could make an exception but here we are.
Answer: Here is a list of genres, description of possible gameplay/activities, and an example game demonstrating that genre/gameplay:

Action Arena

Fast-paced game where combat/conflict occurs in a closed arena. Often    top-down view
Smash TV

Action FPS

First-persion shooter: fast-paced game viewed from first    person    perspective, where gameplay centers around shooting
Doom

Action Other

Any fast-moving, timing/twitch-dependant game not fitting into other
Action subgenres:

Action Platformer

Fast-moving or coordination-dependent game centered around a
character navigating a maze or level to pursue goals
Cloning Clyde

Action Puzzler

Action games with a significant puzzle-solving    component
Roboblitz

Action RPG

Action game with RPG features (i.e. experience levels, item
acquisition, etc)
Diablo

Action Schmup

Aka 'shoot 'em up', any vertical or horizontal scrolling game       involving blasting through an onslaught of enemies.
Heavy Weapon, Scramble

Casual Action

Casual games with a faster pace, time-pressure, or twitch mechanic
Feeding Frenzy

Casual

Card/Board Electronic adaptations of traditional card and    board    games
UNO, Backgammon

Casual I-Spy

Object-finding games
Mystery Case Files

Casual Match3/Chain-pop

Match 3-or-more of same color or shape to clear
Bejewelled, Zuma, Luxor

Casual Other

Any casual game not fitting into other casual categories

Casual Puzzle/Word

Logic or word games
Sudoku, Hangman

Experimental

Games with an utterly new/novel mechanic. This is an extremely rare
classification; be honest with yourself before selecting it. The very
first version of Warioware would have qualified; subsequent versions
no longer would.

Fighting

Person vs. Person combat
Street Fighter 2

Kids

Forgiving, simple-to-comprehend game with child-friendly content.

Music

Beatmatch, or any game where music is core to the gameplay
Boom Boom Rocket, DDR

Party

Games primarily designed around 4+ player, same-console play
Trivia games, Smash Brothers, etc

Racing Arena Combat

Vehicle combat in an arena
Novadrome, Mario Kart

Racing Toon/Fantasy

Fanciful racing environments and/or physics
Gripshift

Racing Traditional

Straight-up realistic racing
Need for Speed

Retro/Greatest Hits – Arcade

Arcade classics

Retro/Greatest Hits – Computer

Computer classics

Retro/Greatest Hits – Console

Console classics

Sims

System simulator, life simulator, work simulator, etc
SimCity, Nintendogs

Sports: Extreme

Themed around 'extreme' sports
SSX

Sports: Fantasy

Themed around make-believe sports (fantasy, future, etc)
Cyberball

Sports: Pub

Themed around real pub games
Darts, Billiards

Sports: Traditional

Themed around popular sports
Football, basketball

Strategy

Turn-based or realtime games of strategy; little to no twitch element
Advance Wars
Answer: Extra Credits has devoted an episode to so-called 'core aesthetics', the main reasons a game appeals to us, and provides a non-exhaustive list as a more accurate basis for defining genres than what we normally base our distinctions on. Nearly all games I've played fall into a few of these categories:

Sensation
Fantasy
Narrative
Challenge
Competition
Fellowship
Discovery
Expression
Abnegation
Answer: There are numerous "basic activities" that are found in games, usually dependent on the genre.  For example, "empire management" games like Sim City, Civilization, and Dwarf fortress require the player to macro or micro manage cities and/or people.  In these games, the player's goals generally involve keeping his "empire" stable and growing.
However, games can be based off just about any kind of activity.  There are video games about dancing, exercising, sports, board games, card games, etc.  Multiplayer can expand these into cooperative or competitive games.  Even the activities you mentioned can be combined into unique activities, or broken down into simpler activities.
LostGarden.com has several articles that go very in depth into this subject.  Here's one I particularly like.

What are the basic game activities?


Cone size for Shimano Type D on Schwinn Cruiser

Question: What size wrench do I need for the rear hub on my Schwinn cruiser?  It is a Shimano Type D. Also, what grease is recommended that I might be able to by locally.  Thanks to all.
Answer: You probably need a 15mm cone wrench and a 17mm regular wrench. If you're going to buy a cone wrench, the 13/15mm double-ended wrench covers most hubs.
I recommend any PTFE-based bearing lubricant. You can buy a huge tub of it from an automotive store for very cheap.


Change IBD Location Prior to Download

Question: I'd like to run Bitcoin Core but my laptop can't handle the load. I have an external drive with enough space, but I'm unsure if/how to change the file destination upon opening the program. Is this possible?
Comment: Hi, yes it is possible, you can easily find this information about Bitcoin Core on Google, and I'm pretty sure that Bitcoin Core will ask on first startup for data location. Besides, if you're a bit short on storage, I can also suggest you to prune the blockchain, you can trim it down to 550MB if you want (at the cost of some advances features becoming unusable though)
Answer: This and this should be helpful.
You start Bitcoin Core with the -datadir=<path> option where <path> is the path to the datadir on your external drive.
You can put the path to the datadir in your bitcoin.conf file with datadir=/your/path if you don't want to have to always start Bitcoin Core with that datadir flag.
Answer: If about 5 GB is affordable for your laptop drive, you could still keep the datadir on it, and move the block storage only to the external drive by adding blocksdir=/path/to/external/blocksdir to your bitcoin.conf. This solution allows you to keep your wallets on your laptop drive using default wallet location. If your laptop drive is SSD, while external one is HDD, this approach will give additional performance benefit by keeping the chain state and the block index on SSD.
Answer: You can change the data directory

https://bitcoin.org/en/full-node#linux-instructions

Change IBD Location Prior to Download


What are the ramifications of open cannibalism?

Question: Let's say that I'm about to engage in some good old-fashioned American cannibalism, but instead of [Hidden], I see [Detected] on my HUD. If someone sees me engage in cannibalism, I know that the perk describes it as a "crime against humanity," but what does that actually mean? Do I lose reputation with the faction of the guy who sees me? Does he (and any other witnesses) turn hostile? What exactly happens?
Comment: In Fallout 3, any observers would turn hostile. I am not familiar enough with the differences in New Vegas to say what additional effects your "crime against humanity" might accrue.
Answer: I couldn't resist trying this perk. I didn't opt for it in Fallout 3, so I can only speak of New Vegas.
If you drag a body to the corner where no one can see you, there are no problems. You gain health, gain rads, and lose a little karma.
If you do it in the open (while [Detected]), everyone turns hostile against you. But they forget soon enough... if you leave the town and come back, all is good. It won't change how a faction thinks of you.
It's the same thing as stealing from or killing a random person. Take out a leader... and there are problems. But otherwise, no biggie.
Comment: +1 for a right and well written answer.. but one thing to correct: eating corpses does not raise RADS.
Comment: +1: Take out a leader... and there are problems. But otherwise, no biggie.
Comment: Also, doing it in the open on The Strip doesn't affect anyone. I Dine and Dashed the McCaffery guy that the Atomic Wrangler wanted assassinated. Did it right in front of Gomorrah, and no one batted an eye.


What is the purpose of the section tag

Question: It seems that the HTML 5
 tag doesn't really add much beyond a
 tag. Why should I use it, especially as it will not be compatible with anything below IE9?
Comment: Voting to close. This is [basic documentation](http://www.w3.org/TR/html5/the-section-element.html#the-section-element) and there are [thousands of articles](https://www.google.com/search?q=html5+section) explaining why `section` versus `article`, `div` etc.
Comment: did the OP did any research at all before this?
Comment: @Su' - the question appears to be on-topic (SEO) and specific enough to be practically answerable - and, if we closed every question that can be answered with a Google search, this site wouldn't turn up in Google searches; if you post your link to the documentation as an answer I know you'll get at least one upvote.
Comment: @jack I think I'm getting a better feel for what you're really after, but could you go read [this](http://html5doctor.com/the-section-element/) and [this](http://html5doctor.com/you-can-still-use-div/) and edit your question with some more detail re: what bothers you about the tag? The problem is `section` is weird as far as where or even *if* you should use it("if article, aside or nav is more appropriate"). Frankly you can just not use it if you don't want to and nobody will really care. It adds some semantics and organization to the document, but you won't lose much of anything without it.
Comment: @danlefree I disagree pretty much completely. But the votes will decide if it stays. If you want to discuss, start a thread in meta. No point hijacking the question.
Comment: @Su' [Done](http://meta.webmasters.stackexchange.com/questions/769/html5-and-the-semantic-web-relevance-to-pro-webmasters) - let's dialogue.
Comment: @slow diver, yes, I typed this question into google, and into SE, and the only answers I got were the definition of , not what the actual purpose of it was, or why I should care.  Please feel free to educate me.
Answer: The HTML5 Living Standard describes a section as:
... a thematic grouping of content, typically with a heading ...

Consider an electronics product's page on an e-commerce site, for example, in which you list a product's "marketing-speak" description under one heading, a list of technical specifications under another heading, and a blurb about the manufacturer under yet another heading - each of those units of information could be considered a section of the document about the product.
You might be interested in using sections to help search engines and bots interpret these chunks of data as discrete logical entities with equivalent relation to the topic of the document, rather than as entities with relative relation to each other in order of appearance (as opposed to a story or expository essay).*
Because sections can effectively represent multiple themes with roughly-equivalent relevance to the document, it might make sense to use the section tag to organize panels on an interactive tabbed display (in which only one section displays at a time) - an unobtrusive Javascript could then scan documents for the section tag and, when it finds multiple sections, it could alter their CSS position and draw tabs to create the tabbed display.
*
it is presumptuous on my part to state that search engines are presently analyzing content at this level, but I wouldn't be surprised in the least if Google were, and when you author an HTML document and put it on a public server, it's safe to say that it's going to be analyzed by algorithms well into the foreseeable future.
Comment: On the IE9 support point, there are utilities like [html5shim](http://code.google.com/p/html5shim/) that will trick older versions of IE into behaving with most of the newer HTML5 tags. (HTML5shim is about the minimum, but do a little reading about "browser polyfills" and find one you like if you need more than just tag support; it's a whole topic on its own.)
Comment: but why should I be interested in helping a search bot "understand" versus having a web page that "works"
Comment: In this case the most-likely unnoticeable boost in rankings and traffic you could receive by making your site more accessible to bots is probably less valuable than the potential impact to users... but eventually your IE8 users will upgrade - at which point helping search bots understand your content will give you a competitive advantage. (Which is why it pays to take an interest now - you're in the best position to determine when to prioritize search bots' needs over the dwindling number of users on an obsolete browser)
Answer: The most important difference is that section plays a role in the outline of the document, div not.
Document 1:

foo

…

bar

Document 2:

foo

…

bar

Document 1 has this outline:

foo (h1)

bar (h2)

Document 2 has this outline:

foo (h1)

(unnamed section heading)
bar (h2)
Comment: As per @danlefree's answer, and as mentioned [here](http://html5doctor.com/the-section-element/), the heading should perhaps go _inside_ the `section`.
Comment: @w3d: _Moving_ one of those two headings inside the `section` would, of course, change the outline and thereby the semantics of the document (I deliberately chose this structure so that these two examples are the same except for `div` vs. `section`). So you'd want to (and should, but not must) _add_ a heading inside the `section`. The outline structure would not change but the "unnamed section heading" would have a name (that of the first heading in the `section`, no matter which level).

What is the purpose of the section tag


l format my Huawei G700-T00 and now l cannot install it again

Question: Please how can l reinstall google playstore on my Huawei G700-T00. i have tried to install it three time
Answer: You can get the .apk of Google PlayStore over here get it downloaded over the device memory and try installing it ! I should work for you !
PS: Don't worry about the source it's coming from a trusted source i.e. AndroidPolice
Answer: If you have Huawei App Store installed then the whole process is a piece of cake. Based on the model you are reffering to, T-00, I guess you have the chinese version so the Huawei App Store should be available in you device.

Open Huawei App Store
Search for "Google Play Services" and Install it
Install "Google Play Store" as well
Then in the search bar search for "google"
Press the image that shows many products of google, like chrome, gmail, hangouts, google     plus
From there download the Calendar Sync that has an icon of a calendar and the Contact Sync that has an icon of person.

Now you can download apps from Play Store, Sync Contacts and Calendar.
For you help I have attached some screenshots.


Have the model files for the LEGO Sonic head piece been released in LDD or LDraw parts library?

Question: I am referring to the "LEGO Dimensions" video game Sonic head piece. I can't seem to find the name of the model, assuming it even exists in these libraries. I've been looking for it everywhere.
Answer: I can answer half of this question. I have the latest version of LDD and after a thorough examination of the available head pieces, I can report that the Sonic mold has not been added to the parts library. If anyone else here has the latest LDraw parts library, they will be able to answer the other half of this question.
Here is a shot of all the non-standard head molds:

Comment: Awwww. I see then. I went and looked through LDD & LDraw too, twice each, with no results. I was hoping I looked wrong or missed something. Thanks for reconfirming!
Answer: I've got it and i'm using the latest version, now in June 2019.


Managing different sized contents in a card

Question: How to manage different size of contents in a card, keeping the card size same?
Comment: This looks like a CSS question perhaps but have you looked at flexbox?  With it you can ensure the boxes are all the same height and then I would bottom align the CTA button.
Comment: I can be wrong but flexbox will not show all cards with same height without javascript. I suggest to use the grid and I also suggest you make this question at Stack Overflow.
Comment: I mean from a design perspective, not a CSS question.

I got some inconsistencies when the real data is put in this design.

I want to have the box to be the same size.
Answer: You can achieve this with using css flexbox. The align-items: stretch is the property that should be applied to the container of the Cards.
See the align-items explanation here for more info: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
This will make all Cards equal to the card with the greatest height. Then you can make sure all of the "mapped" buttons are aligned across the cards.


Can we access elements by css path in VBA?

Question: I'm automating couple of websites through vba and accessing elements by classname, tagname, id, name or sometimes combination of these..
Do we have any option to select elements on HTML document by their css path?
I was searching this on google but didn't find my answer..
xTremeExcel
Answer: If you have html like this:

Heading a

Heading b

Then you can do something like this in VBA
Dim xmlDoc As DOMDocument60
Set xmlDoc = New DOMDocument60
xmlDoc.Load ("c:\htmltest.htm")

Debug.Print xmlDoc.SelectNodes("//h1").Length
Debug.Print xmlDoc.SelectNodes("//h1[@class='a']").Length

to identify your nodes. The "length" is just for demo purpose.
You must make a reference to Microsoft XML 6.0 for this to work.
Answer: You can do this with jQuery
http://api.jquery.com/category/selectors/
also a useful article on CSS selectors
http://www.w3.org/TR/css3-selectors/


how to work on JList

Question: I want to add files in JList and when user selects the file and clicks open then he should be able to open that selected.
I am trying to code this, will I be able to only display the path of the file in the list? So that when user clicks then we get that path where user clicked and open the file.
If so then, is it possible to list only the filename and not its paths so that even then when user  clicks on that file name he should be able to open it.
If its possible just tell me how to do it na.. I don't want coding i just need a practical idea on this..i am coding all this using java..
Comment: Your JList can display as much or as little information as you want. Look into creating a ListCellRenderer, such as a DefaultListCellRenderer, for it. The tutorials will show you how.
Answer: Get a list of File objects.  Place these in some kind of ListModel, DefaultListModel should be capable of supporting this functionality.
Design a ListCellRenderer which is capable of returning the visual representation of what you want displayed.  I'd use something like DefaultListCellRenderer, which is based on a JLabel, but has inbuilt support for selection formatting, you would simply need to call setText after you've used the super implementation.
You can use a ListSelectionListener to monitor changes to the list's selection and disable/enable the open button.
When the user clicks the open button, you can get the currently selected item from the JList, which will return a File reference (from you model).
You can then use java.awt.Desktop to open it
Take a closer look at How to use Lists and How to intergrate with the Desktop class for more details

how to work on JList


Why is the ethereum archival node so big in size?

Question: My understanding is that the archival node stores the state tree for each block -- that's the reason the size is so big. Can someone validate my understanding?
Comment: the state is unique for the entire blockchain, only modifications are stored on each block, but never the state is rewritten again with each block. (just to make it clear)
Comment: yes there is no doubt that state is unique. but my understanding is , every block in archival node  has a corresponding state trie which captures that state of blockchain at that point of time.
Answer: The state of archival node (compared to Full node) is much bigger because every change to the State is kept in your disk. This way if you issue eth.getBalance(address) you can call it with a block number as parameter, for example: eth.getBalance(address,block_number) and it will give you the balance of the account after all transactions for that block were executed. With Full node you can't do this.  Full node only tracks 128 last states (in memory only, you can increase this constant modifying core/blockchain.go:TriesInMemory constant) and you can only query the latest balance of an account.
Added to this, the state is so big (compared to other cryptocurrencies) because it stores contract data. Contract data is like a binary executable .exe in Windows, it contains instructions to be executed and this takes much bigger space than a signed transaction or an account record. All the invocations to contracts also kept with input stored in tx.Data() field. The data of input for a contract will be much much bigger than its code, over time. The storage of the contract (all the variables it is storing internally) is also participating in the hashing algorithm of the merkle trie, so it is also kept in the State. Also, contracts are immutable , once you uploaded it , you can't modify it, so a new version of the executable must be fully uploaded if you have to apply some changes. This is the reason Ethereum's state is so big. It is like a hard disk where files are created but never deleted. In the future this is going to get worse.
Why would you need an archival node?

You are a white hacker and you want to trace what happened quickly after the attack was discovered
You have your front running robot and you need to test it with past data. (or any other development task which needs to run transaction on a State of a particular block)
You are running an Explorer service, like Etherscan and you need to query older data.

Most people don't need archival nodes. However you can find articles in Medium stating that nobody runs archival nodes even the Ethereum Foundation doesn't have them. This is not true. Lots of people are running archival nodes.  If nobody would be running archival nodes, you wouldn't be able to download block bodies, which contain all transaction data.
Comment: The answer is wrong.
Comment: @porton I would say it rather incomplete, updated the answer, check it
Comment: "Contract data is like a binary executable .exe in Windows" is wrong. In fact, contract data is like the disk files created by a binary executable .exe in Windows.
Comment: @porton everything is correct. what I mean by contract data is everything about smart contracts, i.e. the `code` + `data` (input + storage) The word "data" in the first sentence is meant: contract as a concept, with all it contains
Comment: `.exe` is code, not quite `code` + `data`. Well, `.exe` does contain data (as well as, for example, EVM contract contains constants), but that's not what you meant.
Answer: Yes, you're correct. An Ethereum archival node is a geth full node. A full node will download/maintain block header + block data + perform full data validation. This process takes a more time and storage.
For more details, see the answer to this question: What is the parity light pruning mode?
Comment: The answer is wrong. An archival node is more than just a full node.