Model to create layer from joined MS access table

Question: I am using arc10. I created some queries in MS access that I can open up in arcmap utilizing the database connections. It works fairly well but is rather slow.
I wanted to know if there is a model that I could create, such that when arcmap is started, it would take the joined table from access and create a layer for the user to use as I think the connection from MS access query to arcmap 10 is making the process very slow. It works but if the table were saved as a layer it is faster. I could manually do it but if there is a way to automate the process that would be better as multiple users are involved.
I'll try creating the model and seeing if I can get it to work.
Answer: Sounds like a job for model builder, feed the XY event tool into copy features tool to make a permanent dataset. You can turn the model into a tool by exposing the inputs and outputs as parameters.
Comment: Ok thanks, I saw an example online that does this one. So this will save the features to a database. I have the tables added in arcmap from the access database via the database connection. Then I right click and create the event. save. So everytime I open the arcmap.mxd this layer is updated from the table that's linked. can one create a model that will add the layer to the map. I tried posting a pic but its not working for me. Instead of someone having to add the new updated layers the layers would just be added? Hopefully im making sense
Comment: Modelbuilder has no tool for specifically adding data to a map. This is not necessary if the table name and location have not changed then you simply set the input table to the make XY layer tool to be the table in your mdb. The tool will accept tables added to an mxd or direct file path names.
Answer: The way to get Modelbuilder to add data to a map is to use the Make Table View tool from the Data Management Tools, Layers and Table Views.
In explanation, you must

Have users provide a database connection, because it may be different on every machine.
For the input table parameter, since you want to hard-code your model, use your database connection variable with the MSAccess query name. Per my example: AccessQuery = %Access Query Database Connection%/StationSeriesQuery for a query named StationSeriesQuery.
To have the resulting table view layer load to the map, make sure you set the output table layer properties to be a model parameter and to "add to display".

One odd querk with modelbuilder and database connections I have found is that sometimes I have to cut and paste the connection from the catalog window because the dialog can't "find" my connections. That is, my only choice is to create another connection. If that happens, instruct your users to cut and paste it from the catalog window.
The model would look something like this:

The dialog would look something like this:

And here is the output:
Comment: Ok. thank you very much. I didn't know all of that. Ill try to see if I can get it to work. thanks
Comment: I already have the table added through arcatalog and the DB connection as in your output image.  I right clicked and created the event layer. I wanted to know how to automatically have the output feature class added as outlined in the model example Hornbydd above. When connected with the table it seems to run slow from my MS access queries, then to Arcmap.  I thought if I could run the model that creates the layer files then have these added to the arcmap display that it might speed up some. I tried right clicking on output, add to display, but it doesn't add it. thanks for all the help
Comment: Ok I got it to work. I didn't know that if I opened model builder from arcmap and not arcatalog that I could have it create the layer for me. I need to read up on model builder very useful. Thank you all for the help
Comment: No problem. Good job.


Alt+Left Click , how to remove shortcut

Question: I have Ubuntu and GNOME 3 and when I do Alt+Left-click it grabs the current window. How do I stop this from happening, as I need this shortcut in Blender which I update often so changing it inside Blender is not logical.
Answer: In your Compiz Config Settings Manager click on "Move Window" plugin. Click on the very first mouse shortcut (it should be <ALT>Button1) and Disable it.
Comment: I have tried this but every time it it dont work, if i reopen Compiz Config Settings Manager its reverted back to alt+button1
Comment: What if you try to delete the value in gconf-editor? Key is stored in /apps/compiz-1/plugins/move/screen0/options
Comment: never mind i fixed in the thge keyboard layout app, changed the setting under the layouts tab to the second option and it seems to have fixed my issue.
Answer: If CompizConfig doesnt work for you, try this:
Fix using dconf Editor
Install dconf Editor:
sudo apt-get install dconf-editor

Search for dconf Editor in dash and run it, then search for mouse-button-modifier and change the key from <Alt> to <Super> or anything else. That worked for me.
Answer: Try using Xubuntu instead. I struggled a bunch with this, and was pointed toward Xubuntu because its interface steals from apps less, and is more customizable.
Comment: The question is about GNOME. An answer about switching desktop environments is an bit out of scope I think.

Alt+Left Click , how to remove shortcut


Why do getElementsByTagName() always returns an array?

Question: Why is it that if I have only one h1 element in the document, I still have to use the index to access it?
Like the following doesn't work.
document.getElementsByTagName('h1').innerHTML = "SHUSHAN";

but if I do
document.getElementsByTagName('h1')[0].innerHTML = "SHUSHAN";

It does work.
Even though I only have one h1, why do I have to specify?
Comment: Because the return type is an array. Think about how much a pain it would be if that function sometimes returned an en element and sometimes returned an array of elements, that would be madness
Answer: Short answer: This is so that you can have some sanity.
If you don't know whether you will get a single element or a collection of elements, you would have to write defensive, type-checking (stupid) code like this
let foo = document.getElementsByTagName('h1')
if (foo instanceof HTMLCollection)
  // do something with all elements
else
  // do something with just one element

It makes way more sense for the function to always return a known type, an HTMLCollection of HTMLElement objects

If you only care about getting the first element, you can use destructuring assignment
let [first] = document.getElementsByTagName('h1')
console.log(first) // outputs just the first h1

This is fine because the assignment clearly shows that it's expecting an array (or array-like) of elements but only cares about assigning an identifier to the first value

You should also be aware of the newer document.querySelector and document.querySelectorAll functions …

document.querySelector will select at most one element from the document or returnnull
document.querySelectorAll will always return an HTMLCollection, but may be empty if no elements match the selector.

Here's how I'd write your code in 2017

setTimeout($ => {
  // get the element to change
  let elem = document.querySelector('h1')
  // update the text of the element
  elem.textContent = 'SHUSHAN'
}, 3000)

wait 3 seconds ...

Comment: Can you tell me what the $=> {...} of the setTimeout means?
Comment: It's just an anonymous function. It could be rewritten as `function () { ... }`
Answer: getElementsByTagName - the method name itself implies that it will return multiple elements - i.e. an array. The method always returns an array, with the length equal to the number of matching elements. As such you must always access the elements by the index of the element in the array.
Answer: Arrays must be accessed by index regardless of how many values it holds.  Do some reading on array data types to get a better understanding of the concept.
Answer: The point is that getElementsByTagName always returns a  HTMLCollection of elements, which works mostly as an array. If there is only one element in this collection, then its index is 0.
This is the reason why you must specify the index, even if there is only one element in the document.
Click here or here to see more documentation about this.


EXE without (or encrypted) RCDATA?

Question: I'm compiling my application with Delphi 2010. My problem (it may not be a problem for anybody else) is that when you open that EXE with any resource editor you can see RCDATA which holds forms data. I don't like an idea of my program being "exposed" so I want to ask you is there any trick to remove that information from EXE or encrypt it that nobody (at least from resource editor) can see it?
Answer: You may create your forms fully via source.
opposite: you can't use the form designer.
with gexperts you can convert existing forms to source.
encrypting and compressing is not a solution. when the app can load the resources a engineer can it do, too.
Comment: When you know it is a Delphi application, running the app in a debugger can yield full form structures at runtime quite easily, even if you generate the form/frame itself by code. This is equivalent in complexity to hooking the RCDATA stream loading and inserting some decryption code there.
Answer: I have written a DFM compressor that works inside of the Delphi IDE to compress DFMs at compile time.  It then decompresses them on the fly at runtime.
I sell it for $15 US and it comes with src.
It currently works with D7, D2006, D2007 and D2009.  I don't own D2010 but I have recently gotten XE and I will be upgrading it and making it available for XE as well in the near future.  If someone makes a request for XE, or even D2010 compatibility, I'll work to make that happen sooner.
It's called the DeForM System and can be found here.
I use it for a number of my personal projects.
Answer: You would need to modify VCL source code to teach form loader to take resources elsewhere. Also, compilation would require post-build step or stripping resources from the compiled EXE and moving them to a separate encrypted file (for example). All of this is manual work, I never heard of any automation for described tasks.
One thing you could do IF your forms are finalized (i.e. they won't be modified further) is take GExperts and use their Component To Code expert to create forms and their contents in runtime. But modification of such forms will require changes in code.
Answer: It actually just holds published property of the components you drop on your forms and the form itself (actually the content of DFM file for each form), not any source code. So even if somebody extracts that data, they can at most produce a form visually looking the same as your form, but none of the codes you wrote for the form.
One way to hide such data from resource editors is to build all the components you use in your form at runtime, not using the form designer. This way, the DFM resource will not contain their data. As far as I remember, there are tools which are able to receive a DFM file as input, and generate runtime code for component creations automatically (e.g. GExpert), so that you could copy\paste the code in your form's OnCreate event-handler.
Another option is to use an EXE compressor. A compressor will compress your EXE file so the content of the file will be changed and not usable until being decompressed. Tools like UPX can compress your EXE file and decompress it on the fly when you execute the EXE. Take note that using known compressors like UPX has the drawback that many cracking tools or crackers can detect them and automatically decompress the EXE before processing it. So if you need more security, you'd better go for custom compressors.
Answer: I haven't used it, but Citadel for Delphi does automatic compression and encryption of DFM resources in your EXE.  It doesn't look like they've updated past Delphi 2009 yet, but it's exactly what you're looking for.

EXE without (or encrypted) RCDATA?


Path to categorical realizability theory

Question: I'm trying to understand the sorts of things found on this page: http://ncatlab.org/nlab/show/realizability
In particular, I want to read Oosten's Realizability: An Introduction to the Categorical Side, and in the preface he wants me to know logic up to Godel's completeness theorem (I have this and more), category theory including topos theory (I sort of have this), and recursion theory (I don't have this at all).
Question 1: Where can I learn recursion theory for the purpose of reading Oosten?
Question 2 (to make the question more generally useful): What is a general roadmap to understanding the effective topos, assuming only basic classical logic and basic category theory?
Answer: For recursion theory you can read the first chapters of Boolos & Jefferey "Computability and Logic" or S. B. Cooper's "Computability Theory".
I think a good starting point for understanding the categorical realizability would be T. Streicher's lecture notes


Flushing REDIS Cache

Question: Will either of the buttons FLUSH REDIS?
Comment: This module might help https://github.com/steverobbins/Magento-Redismanager
Comment: Click them one by one :)
Answer: The "Flush Magento Cache" button will only flush out cache records based on their tags. This uses the Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG mode when calling clean on the cache backend.
The "Flush Cache Storage" button will flush the entire cache backing (where the backend supports it), using the Zend_Cache::CLEANING_MODE_ALL mode when calling clean on the cache backend.
The Cm_Cache_Backend_Redis does differentiate between the two modes and properly handles them both.
What happens in Redis when the "Cache Storage" is flushed:
1380734058.807909 [0 127.0.0.1:61926] "flushdb"

What happens in Redis when the "Magento Cache" is flushed looks something like this...
1380733999.123304 [0 127.0.0.1:61889] "sunion" "zc:ti:541_MAGE"
1380733999.127239 [0 127.0.0.1:61889] "multi"
1380733999.127294 [0 127.0.0.1:61889] "del" "zc:k:541_APP_E4D52B98688947405EDE639E947EE03D" "zc:k:541_CORE_CACHE_OPTIONS" ... etc ...
1380733999.127493 [0 127.0.0.1:61889] "del" "zc:ti:541_MAGE"
1380733999.127523 [0 127.0.0.1:61889] "srem" "zc:tags" "541_MAGE"
1380733999.127547 [0 127.0.0.1:61889] "exec"
1380733999.128596 [0 127.0.0.1:61889] "sunion" "zc:ti:541_CONFIG"
1380733999.131160 [0 127.0.0.1:61889] "multi"
1380733999.131192 [0 127.0.0.1:61889] "del" "zc:k:541_CONFIG_GLOBAL_ADMIN" "zc:k:541_ENTERPRISE_LOGGING_CONFIG" ... etc ...
1380733999.131360 [0 127.0.0.1:61889] "del" "zc:ti:541_CONFIG"
1380733999.131379 [0 127.0.0.1:61889] "srem" "zc:tags" "541_CONFIG"
1380733999.131397 [0 127.0.0.1:61889] "exec"

You'll notice that in the first one a single command is processed by Redis vs the later example where two cache prefixes are used to delete all associated cache records. Based on what I'm seeing here (and in the code) both the '541_MAGE' and '541_CONFIG' prefixes are flushed in separate calls to the cache backend, with the config immediately following the other.
Comment: The only thing I didn't verify is that the flushddb properly clears both databases, but I think it's safe to assume it does, as I've not had trouble with it
Comment: You can use `flushall` for everything or `flushdb` for an individual database.
Answer: I've created a module that will let you do more bulk operations from the admin.  Clicking "Flush DB" will actually execute the flushdb command.

Download: https://github.com/steverobbins/Magento-Redismanager
Otherwise you have to use command line to flush them "completely"
Answer: To actually answer your question : "Will either of the buttons FLUSH REDIS?"
YES is the answer, you can clean Magento's cache through the admin. You can also flushdb from the command line, but that wasn't your question...
Not sure why this is voted down... if you're properly using redis for cache on the backend this will work.
You also should have

Flushing REDIS Cache


What is a non-topological manifold (if such a thing exists)?

Question: So in my wikipedia readings, I have often stumbled across mentions of topological manifolds. I thought a manifold intrinsically had to be topological, either explicitly or implicitly like in a metric space. I don't even know how to conceptualise a non-topological manifold. Is this just wikipedia being weird, or are non-toplogical manifolds a thing, and if they are, what are they? Are there any examples I can see? And do they generalise topological manifolds, or are they their own thing?
Comment: I see no reason why manifolds couldn't be based on [Cech closure spaces](https://www.google.com/search?q="cech+closure+space") or other [generalized topological structures](https://www.google.com/search?q=generalized+topology), although I doubt much of interest would arise from such things (by the way, saying this guarantees the opposite). However, the answer by @Arnaud Mortier is the real reason.
Answer: You use topological to emphasize the fact that your manifold doesn't have additional structure or properties, such as a differentiable structure, or a piecewise linear structure, where the transition maps have extra requirements on top of being continuous.
If you were to write "let $X$ be a manifold", the reader would possibly wonder what class of manifolds you are considering.


How do kidneys give advice?

Question: In parashat Vayikra (3:9)the kidneys are referred to as "העצה". Rashi comments explains that they are called this because they give advice.
In what way do the kidneys give advice?
Comment: In what way does the heart "feel?" It's a figurative expression not meant to be taken literally. People use these types of colloquial expressions all the time - it's pretty much identical to "My gut tells me X." I'm not using this as an answer only because I don't have a direct source immediately handy.
Comment: Related: http://judaism.stackexchange.com/q/31117 http://judaism.stackexchange.com/q/27008
Comment: http://www.rationalistjudaism.com/2010/05/kidney-summary.html
Comment: http://www.torahmusings.com/2013/10/rav-wolbes-world-building-affection/
Answer: My rav gave a drasha during Yom Kippur related to the expression בוחן כליות which means, literally "checks the kidneys".
The adrenal glands are located on top of each kidney. Adrenaline is one of several hormones that increase or decrease excitement. The metaphor of בוחן כליות is that G-d is checking how excited you are in performing mitzvot.
Other than excitement, the renal glands are mainly responsible for homeostasis, which, in a sense is an "advisory" function. Hormones are secreted only when necessary, and in a sense, they "advise" other parts of the body how to "behave" or react.
As an example, when there is danger, the renal glands (kidneys) secrete the adrenaline that allows the "fight of flight" response, which speeds your blood pressure / heart rate and, most importantly, "advises" your brain how to react to the danger (flee or defend yourself).
In short, without the renal glands and this "advice". you couldn't function well, if at all.
Comment: So the only advice they give is, "Run!!"?
It doesn't fit too well with my picture of an "advisor".

How do kidneys give advice?


Limit edit in SharePoint List to only 3 Items per user

Question: I need to limit the possibility per user to be able to edit 3 drop down value items from the quick edit mode option in a SharePoint list(when pressing "edit this list" that is next to the new item option).Any ideas on how to achieve that are welcome. Probably if an alert to pop-up if more than 3 are selected, something with javascript, as I can't think of anything OOTB? The user needs to be able and see all items that are in the list, the list will be opened in edit mode, and then be able to update out of all items in the list the drop down values of only 3 that he/she thinks are most suitable, something like a voting process. Not to be able to update the drop down of more than 3 items.
Comment: Yes, It is not possible OOTB. Maybe you can achieve this using custom javascript code.
Comment: Any ideas on how this could happen? Thank you!
Comment: Only OOTB option is to limit the view to show only 3 items. In classic experience the view will display only 3 items. In the new experience more then 3 items are displayed, but quick edits display only 3 items to edit. It's kind of funny :) Btw. why do you need it?
Comment: I want to limit users to be able to select only 3 items when in edit mode.
Answer: For classic view, you could use PreSaveAction for this requirement.
<code><script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
        function PreSaveAction() {
            var check = false;
            var listid = _spPageContextInfo.pageListId.replace('{', '').replace('}', '');
            var userId = _spPageContextInfo.userId;
            $.ajax({
                url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists(guid'" + listid + "')/items?$filter=AuthorId eq " + userId,
                type: 'GET',
                async: false,
                headers: {
                    "accept": "application/json;odata=verbose",
                    "content-type": "application/json;odata=verbose",
                },
                success: function (data, textStatus, jqXHR) {
                    var count = data.d.results.length;
                    if (count < 3) {
                        check = true;
                    } else {
                        alert('over max items');
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(textStatus);
                }
            })
            return check;
        }
    </script>
</code>
Comment: Hi Lee and thank you for the script, but it is not working for me. Added more clarifications to my question description and what I'm trying to achieve, if that'd be of any help for the script you gave. Thank you!


A Non-quasi-affine scheme with quasi-affine irreducible components

Question: Let $X$ be a scheme finite type over a field $k$ such that each of its irreducible components $X_i$ is quasi-affine. Is it true that $X$ is quasi-affine?
Comment: No, that is not true.  Let $X_1$ and $X_2$ be isomorphic to the deleted affine plane $\mathbb{A}^2\setminus\{(0,0)\}$.  For $i=1,2,$ let $L_i$ be a deleted affine line through the origin in $X_i$.  Thus, both $L_1$ and $L_2$ are isomorphic to $\text{Spec}\ k[t,t^{-1}]$.  Let $f:L_1\xrightarrow{\cong} L_2$ be an isomorphism that maps the origin to $\infty$.  Glue $X_1$ and $X_2$ according to this isomorphism.  Then every global section of the structure sheaf of $X$ restricts on $L_1=L_2$ as a constant.
Answer: I am just writing my comment as an answer.  Probably this example has appeared before on MO.  Let $\mathbb{P}^3_k$ denote the projective space $\text{Proj}\ k[s_1,s_2,t_1,t_2]$.  Let $\overline{X}$ denote the closed, reduced subscheme $$\overline{X} =\text{Zero}(s_1s_2) = \overline{X}_1 \cup \overline{X}_2, \ \ \overline{X}_1 = \text{Zero}(s_2), \ \ \overline{X}_2 = \text{Zero}(s_1).$$  This is a union of two hyperplanes, $\overline{X}_1$ and $\overline{X}_2,$ whose intersection is a line, $$\overline{L} = \overline{X}_1\cap \overline{X}_2 = \text{Zero}(s_1,s_2) = \text{Proj} \ k[t_1,t_2].$$  Inside $\overline{X}_1$, define $C_1$ to be the closed subscheme that is a line, $$C_1 = \text{Zero}(s_2,t_1).$$  Inside $\overline{X}_2$, define $C_2$ to be the closed subscheme that is a line, $$C_2=\text{Zero}(s_1,t_2).$$  Note that $C_1\cap \overline{X}_2$ is the singleton set of $p_2=[0,0,0,1]$, and $C_2\cap \overline{X}_1$ is the singleton set of $p_1=[0,0,1,0].$  Define $C$ to be the closed union of $C_1$ and $C_2$ in $\overline{X}$.
Define $X$ to be the open complement in $\overline{X}$ of the closed subset $C$.  By construction, $X$ is quasi-projective.  Moreover, $X$ is the union of the two irreducible components, $$X_1 = \overline{X}_1\setminus(C_1\cup \{p_1\}), \ \ X_2 = \overline{X}_2 \setminus (C_2\cup \{p_2\}).$$
The intersection of the two irreducible components is $$L=\overline{L}\setminus\{p_1,p_2\}.$$
Each of the two irreducible components is isomorphic to a punctured affine plane.  In particular, $\mathcal{O}_{X_1}(X_1)$ equals $k[s_1/t_1,t_2/t_1]$.  Similarly, $\mathcal{O}_{X_2}(X_2)$ equals $k[s_2/t_2,t_1/t_2]$.  Finally, the intersection $L$ is a twice-punctured projective line with coordinate ring $\mathcal{O}_L(L)$ equal to $k[t_2/t_1,t_1/t_2]$.  The restriction map $\rho_1$, resp. $\rho_2$, to $\mathcal{O}_L(L)$ from $\mathcal{O}_{X_1}(X_1)$, resp. from $\mathcal{O}_{X_2}(X_2)$, is the $k$-algebra map that sends $s_1/t_1$ to $0$, resp. that sends $s_2/t_2$ to $0$, and that sends $t_2/t_1$ to itself, resp. that sends $t_1/t_2$ to itself.  The fibre product of these restriction maps is the $k$-algebra $$\mathcal{O}_X(X) = \{(f_1,f_2)\in \mathcal{O}_{X_1}(X_1)\times \mathcal{O}_{X_2}(X_2) : \rho_1(f_1) = \rho_2(f_2)\}.$$  This is infinitely generated as a $k$-algebra by the following monomials, $$\frac{s_1}{t_1}, \ \frac{s_2}{t_2}, \ \left(\frac{s_1^mt_2}{t_1^{m+1}}\right)_{m\geq 1}, \left(\frac{s_2^nt_1}{t_2^{n+1}}\right)_{n\geq 1}. $$  In particular, the image in $\mathcal{O}_L(L)$ of $\mathcal{O}_X(X)$ equals the constant subfield $k$.  Thus, $X$ is not quasi-affine.
Comment: I discussed this example years ago with Ravi Vakil.  I very much believe this example has appeared before on MathOverflow (maybe as an example of a quasi-projective $k$-scheme whose global sections $k$-algebra is not finitely generated).
Comment: A very similar example (but slightly different) appears in the following MathOverflow answer: https://mathoverflow.net/questions/209443/is-the-affine-closure-of-a-quasi-affine-variety-again-a-variety/209469#209469
Comment: The example in the answer gives a quasi-projective scheme with quasi-affine components. Are there non-quasi-projective examples? Or is such a scheme necessarily quasi-projective?


Does Racket Scheme provide a Smalltalk-like image-based environment?

Question: Could anyone with experience with Racket Scheme tell me whether it provides a Smalltalk-like, image-based environment?  By "image-based", I mean that one typically begins with a snapshot of the programming environment, does stuff to it (adding functions, objects, and GUI elements), and then saves everything to a new snapshot at the end.  I'm also looking for things like an interface builder that is integrated into the environment, object inspectors, etc.  Does Racket offer this kind of thing?
Answer: Racket is not image-based, no. It does have a GUI designer, though.
Comment: If Racket had something like SBCL's `save-lisp-and-die`, that would be a "yes" answer (even if that was not normal Racket usage).


Announcing the January – February 2024 topic challenge: Muhammad Iqbal

Question: Apologies, once again, for the late announcement of an event that should have already started! We really should start getting these back on time ...

In accordance with our meta agreement to have topic challenges
and a later meta agreement to have topic challenges lasting for two months and overlapping by one month,
it is (long past) time to announce the January – February 2024 topic challenge.
Based on the number of votes (+5/-1) and the age of the proposal (first proposed in 2020), the first topic challenge fully in 2024 will be:

Muhammad Iqbal

What's a topic challenge?
See the meta posts linked above, and also this main meta post. In short, during January and February 2024 you are invited to try to read at least one work by Muhammad Iqbal and ask questions about it.
Participation is not obligatory in any sense, and questions on other works are more than welcome during January and February too; they just won't count as part of this topic challenge.
How can I take part?
By getting hold of some works of Muhammad Iqbal and asking (or answering!) good questions about them. Questions about these works should be tagged with muhammad-iqbal and language or other tags as appropriate. We'll keep a list of all such questions in an answer to this meta post.
Below is Rand al'Thor's
presentation of the topic:

Muhammad Iqbal, sometimes called Allama Iqbal or Iqbal-e Lahori, was a 19th-to-20th-century Muslim multilingual poet, philosopher, and politician, one of the most important figures in Urdu poetry and also influential in Farsi poetry, the so-called "Poet of the East" and national poet of Pakistan. He is considered an important figure in the cultural and political history of several countries:

In Pakistan, his birthday Iqbal Day was a public holiday until 2018. He was a major figure in promoting the idea of an independent Pakistan even in the 1930s, and he is still honoured as the national poet of Pakistan.
In Iran, his work was popular especially in the 1950s to 1980s, and Ayatollah Khomeini said that "We have a large number of non-Persian-speaking poets in the history of our literature, but I cannot point out any of them whose poetry possesses the qualities of Iqbal's Persian poetry. [...] In spite of not having tasted the Persian way of life, never living in the cradle of Persian culture, and never having any direct association with it, he cast with great mastery the most delicate, the most subtle and radically new philosophical themes into the mould of Persian poetry, some of which are unsurpassable yet."
He was awarded a knighthood by Britain (his acceptance of which was criticised by some others in British India) for his poetry written in Farsi.

Iqbal wrote poetry primarily in Farsi in the earlier part of his career, starting in 1915, but after 1930 most of his works were in Urdu. He also wrote two non-fiction books and many letters in English, and some poetry in Punjabi. His writings cover philosophical, religious, social, political, and moral issues. He received a BA from the University of Cambridge and a PhD from the University of Munich, and spent some time working as a professor and as a lawyer as well as writing poetry.
A topic challenge on this poet would be able to feature several different language tags and explore a variety of cultures and viewpoints through his literature.

What's next?

Vote for the next topic challenge (February–March), or propose your own topic!
Feel free to edit links into this post if you find some good resources of Iqbal works available to read online.
Comment: K C Kanda's translations of Iqbal are available [here](https://www.rekhta.org/ebooks/allama-iqbal-kc-kanda-ebooks)
Answer: List of all questions posted in this topic challenge
No muhammad-iqbal questions were posted during the topic challenge.


Memcache sharing

Question: Is it possible to share a single instance of a Memcache between multiple projects.
Suppose I push one object inside the memcache in one project, is it possible for me to retrieve the same object from a different project. ?
Answer: Memcache is just a memory store.  It can run across multiple machines.  There's no reason that two entirely different processes can't talk to each other via it.
Let me clarify.  You can run memcache on one or more servers.  You can configure your clients to speak to a specific set of instances.  You can run two (or more) different memcache processes on the same host (listening to different IP addresses and/or ports) and they're completely independent.
If your two applications talk to the same instance(s) then there's no reason they can't communicate.
The complication comes if you talk to multiple instances and partition your data (ie split it across different instances) then your clients need to know which instance to get the data from or put the data into.  If you're using the same client library (eg both your clients are PHP5) then that's not a drama.  If they aren't the same then you have to handle that problem somehow.
The other issue if you use different technologies is you have to think about the interchange format since the custom serialization in PHP won't be so readable in Java or C#.  Typical choices are XML or even JSON.
Comment: I completely misread the question, thanks for pointing that out :)
Answer: Yes, as long as each project configures the memcache nodes in same the way, and generates a key for a cache element in the same way, they can share data.
Answer: If you are worried about security concerns (one app reading another's data) or cache poisoning between applications those are possibilities.
If you want to isolate memcache between applications, then you can run multiple memcached daemons on a single server, each using a portion of the server's memory.  Each instance runs on a different port number.  You can use firewall rules to ensure that only specific application servers have access to specific memcache ports to ensure that applications can not read or poison each other's data.
Answer: For each of the project I would  provide a method to generate keys and partition projects by namespace.
So for key = foo from project B, it is stored/fetched by A.foo, and foo from project B is called B.foo etc.
This way it should work.
However when comes to production, this approach is very discouraged, since you can be in hell of debugging (performance/reliability etc).
Better way is to have multiple instances of memcache running on different port, this is more clean IMHO.

Memcache sharing


Moving heat from a 1st floor wood stove to the basement

Question: I have a new woodburning stove on the 1st floor of my home and would like to maximize the distribution of the heat. I wondered if I installed a fan similar to an exhaust fan behind the woodstove using a 4" venting pipe through the wall down to the basement, would that pull heat down.
Any thoughts or suggestions?
Comment: Would use duck work and pull the heat from near the ceiling, not the floor.  Heat rises so the hottest air will be near the ceiling, before it cools down and falls to the floor.
Comment: Maybe use a duct booster fan instead of an exhaust fan.  they fit into ducts.
Comment: If you have an air handler for furnace or A/C you can set it to fan-only mode.  That may not serve the basement though.  Your idea is a good one but do as @crip659 says, take heat from near the ceiling, pump it into a cold part of the basement far from the stairs, and you need to leave the basement door open if you have one so air can circulate back up to the area of the stove.  Don't imagine yourself "pumping heat" to the basement.  Imagine yourself creating a circular path and getting air to flow along it.
Comment: @crip659 You use "duck work" ? (Darn autocorrect. Happened to me once too.)
Answer: I've done this successfully with a wood stove to move heat from one room to another. Since heat rises you'll ideally want to move the heat from the wall near the ceiling above the wood stove and run it through ductwork to the lower floor releasing it at floor level away from the stairwell.
There are some excellent in-line quiet fans that would work well for this type of application.
You can set it up for either manual or thermostatic control.
Comment: I wonder if you could feed the oven cool air up from he basement thru its air intake, and then have a separate pipe thru the same hole in the floor where hot air from outside the stove will flow down because of relatively lower basement pressure (because of pulling air from basement into stove)


Is a vote to close considered a "helpful flag"?

Question: I thought I had a whole lot of votes-to-close, so I'm wondering if they count as helpful flags or if I just have fewer than I thought I did.
Comment: @Glorfindel Are you saying... From the review queue to handle VLQ and NAA flags, a user should _flag the answers they review_ as VLQ or NAA? That sounds like a blatant misuse of the review system in my mind.
Comment: You could search for and flag VLQ and NAA answers. There are myriads to be found...
Answer: Close votes don't count as flags.  Since you have the 3k close votes privilege, you cast a close vote instead of a flag when closing questions.  So you won't be able submit any flags by closing questions.
Instead, you'll have to submit other kinds of flags.  Your remaining options are:

spam
offensive
very low quality
not an answer
custom (in need of moderator attention)
any comment flag

Just make sure your flags are, you know, helpful.  Alternatively, you could donate your reputation until getting under 3k so you lose the close votes privilege.  Then your close votes become flags again, but that would mean you wouldn't qualify for the moderator position due to this cycle's reputation requirement of 3k.
Comment: Doesn't it seem weird? Same situation for example `edit`, when you have enough reputation to enter the `edit` review queue, you can still make countable edit for your privilege. But for `flag`, it comes to be a lot harder if the `close` not countable for it.


Are there any drawbacks to using tabindex to skip navigation elements and go to an input?

Question: With a lot of sites I have to press tab ~7 times in order to get to the input that I want to use. I'm thinking that I will set the tabindex on that input to 1 so that it gets focus first. It seems like an upgrade. Any downsides?
Comment: How often users are skipping to go to that input? If it is less or just devs but not actual users then better to leave it. If it is otherwise, better to change the design.
Answer: Have you considered that this order should be consistent through the entire website?
For accessibility purposes, it would seem confusing if in one page keyboard users would "see" Logo > menu itens > input, and in other pages he would see the input first.
Answer: In order to comply with WCAG accessibility guidelines, the tab order of your site/app should follow the visual order of the page, so left to right (or right to left if the language is rtl) and top to bottom. Failing to comply with this guideline (2.4.3) would be an downside to your proposed solution.
The WCAG has another guideline (2.4.1) related to your issue which is to create a way for keyboard/screen reader users to bypass repeated navigation on the screen.
This usually comes in the form of a skip link. A skip link must be the first focusable element on the screen, and activating it would move the focus to the first focusable element within the main content. Often, the link will be hidden by default and only visible when focused. Progressive has a great example of this on their site.
Sources:

WCAG Level A 2.4.3 Focus Order
WCAG Level A 2.4.1 Bypass Blocks
Answer: No - seems great. Fast solution - no useless info.
If you use tab in this post (First - tags active - later actions - your avatar - nick - and action add a comment)
question: what is the demand of users, tags, options or viewing your profile?
Is it worth skipping 9 actions - to reach 10 ultimately the most adequate (add a comment)?

However, in the case of inputs, I think that there are not many potential affordances, so the action is most justified by practical use.


Report with percentage field and no groupings - how to export in a different format?

Question: My customer has a report that pulls a percentage field, which displays in the report as 10% and exports to excel as 10. They then take that data and do calculations in excel, so they want it to export as .1 instead of 10. Because there aren't any groupings in the report, I can't make a formula, so I'm not sure how to achieve this.
Answer: When you have a formula return a percentage, what it does behind the scenes is multiply the number by 100.  So the number for this would be .10, when you tell it to return a formula it returns 10% because they multiplied the .10 by 100.
So in your case, if they want the export to return .1, then they need to change the formula to return a number and not a percentage.  Then it will export it as the decimal as you are looking for.
Comment: Sorry I probably wasn't clear in how I wrote my question. The percentage is just a field that is pulled into the report and I can't use formulas in the report because it isn't summarized.
Comment: If the percentage field is a custom field, then just change it to number.  If it is a standard field, then make a formula field that divides it by 100 and pull that into the report.
Comment: Yes, I am still on the rookie side and also blonde. :) That was too easy - thank you so much!!!!! It was a managed package field, so I added a formula field and hid it from the page. THANK YOU!


Why do creamed sauces often contain nutmeg?

Question: Many recipes for creamed spinach to cream of broccoli soup contain nutmeg. Why does this spice compliment such sauces so well?
Comment: Probably because the person who created/wrote the recipe thought it tasted good and for no other reason. I've cream sauce recipes I've developed and lots I've copied from the Web, none contain nutmeg. There are a ton of recipes of all sorts that contain ingredients I do not like - either omit that, substitute or don't make that recipe. We all have different tastes
Answer: Nutmeg provides an exotic/interesting note to cream and milk based sauces. These sauces are often based on flour, butter and dairy, so besides the potential caramelization flavors from cooking the butter and flour (which can be delicious on their own) there are few other flavor components, say, as compared to a pan sauce. A grating of nutmeg can create interest.  Not all dairy based sauces use nutmeg.  It is traditional in some cuisines, and not in others.  Why particular flavors compliment one another is an interesting and complex question. It might have to do with the molecular structure of ingredients.
Comment: Not so sure about this. It seems that nutmeg and dairy aren't an ideal combination (at least chemically, using foodpairing.com).


Is it impossible to listen to podcasts on iOS 6 now?

Question: I'm on iOS 6 on my iPhone, and I don't like iOS 7.  When I try to listen to a podcast on the iTunes app, it tells me to download the Podcasts app.  When I try to download the Podcasts app, it tells me iOS 7 is required to download the app.  So how can I listen to podcasts, short of upgrading to iOS 7?
Comment: Call Apple support. Since the app is their product, they *might* help you get an older version of the app.
Answer: If you had downloaded the podcasts app while iOS6 was the most recent, then you would have a version of the podcasts app that was compatible with it.  Unfortunately the current version of the podcasts app is written using iOS7 APIs, including ones to automatically download content for  you without you having to manually open the app etc, which are not backwards compatible.
As such, you will have to use a 3rd party app to listen to podcasts, or upgrade to iOS7.
Comment: shouldn't be possible to download a older version in the App Stoer now?
Comment: I think this only applies to iOS5 devices at present, I should check..
Answer: You can listen to podcasts with the Music app, if you do not want to conform by running iOS7 or run a third party app.
Comment: How do I listen to it in the Music app?  The Music app is for already downloaded music, but I can't download the podcast file from the Itunes app, because it tells me I need the Podcasts app.  So what can I do, short of downloading the podcast file onto my computer and syncing my iPhone every time I want to listen to a podcast?
Comment: Yeah, I've not found a way to avoid having to sync with iTunes to get my podcasts. My answer was to listening to podcasts, I guess, instead of getting them on your device. Sorry about that.
Answer: I had the same issue. I have an iPhone 3Gs which cannot upgrade beyond iOS 6.1.6. So I cannot download any version of Podcasts.
As others already noted, one solution is downloading a third party app. After reading various reviews, I chose Downcast which works very well.
Personally, I think it is very strange that Apple themselves are actively preventing using their own app.
Comment: @Dillon - you can't upgrade to iOS7 on an iPhone 3Gs. So you can't use the Podcasts app. Either this is a mistake by Apple or they are deliberately preventing it.
Comment: I wouldn't say they are "actively preventing" anyone from using the app - all OP needs to do is update to iOS 7. And Apple isn't preventing him/her from doing that either.
Comment: iOS7 also isn't available for iPod Touch <= 4G.
Answer: Maybe this wasn't operational right away, but I just now (December 9, 2014) downloaded the Apple Podcast app on my ios 6 iPhone 3gs from the App Store. I was prompted that it requires iOS 7 or later, BUT if I clicked Download, it would download the "latest compatible version" to my iOS. I clicked download, and voila! And yes, it works.
Comment: I've seen this procedure posted on some of the Apple support / discussion forums.  I've never been able to get it to work on my iPod Touch though.
Answer: I have an iPod Touch 4 with IOS 6.1.6.  I followed the instructions on the link https://sites.google.com/site/appleclubfhs/support/advice-and-articles/app-store-downloading-older-versions-of-apps-ios and now have a fully functional version of 'Podcasts'.
In my case when I initially tried to download Podcasts from the App Store with iPod Touch, it advised that I needed IOS 7 and there was no option to install an older version. However as outlined in link above, I downloaded the Podcasts app in iTunes and then synced my iPod with iTunes. Then I went back into the iPod App Store and tried to download it. This time it still advised that I needed IOS 7, however it also gave me an option to download a version compatible with IOS 6.
So, the bottom line here is that Podcasts has a compatible version for IOS 6 in App Store, but Apple does not advert this to users (unless you already have it installed on your iPod) and make it very hard to get. In my case it's taken me 2 hours of time to solve this problem.
Podcasts are my main use of this perfectly functional device and so getting support for this App was personally very important to me. I hope this helps other users.
Answer: Assuming you do not have access to a newer device (Andrea's Answer), here's a free workaround.

Download the podcast episodes on your desktop computer using itunes.
Add them to a playlist. (Optional, this preserves the order of the episodes and makes it easy to sync)
Select the episodes and right click > Get Info > Options > Media Kind > Music.
Now you may sync the playlist / "Songs" normally.

Warning: Doing this will remove the episodes from the podcast list. You can switch them back to the podcast media kind, but in my experience the episodes won't necessarily reappear in the podcast list and their order may not be preserved.


Can pineapple crown grow root in 24 hours?

Question: I planted a crown of pineapple almost 24 hours ago, today it has been sitting on the windowsill. I am not sure if the roots have already grown up or what is that. I am very interested in growing fruits and vegetables. Any good resource for new beginners?
Comment: Have you considered that you may be looking at fibers from the leaves?
Comment: @Stephie nope. I m very new to this but it got me excited
Comment: No I wish it could
Answer: No, it is not roots. Just loosened fibers from a leaf (top picture) and from the pulp (bottom picture). If you do things right and conditions are optimal then expect it to root within a couple of month. Visible roots will appear within a couple of weeks.
It is easy to find guides like this one.
It is my experience that you should try to remove as much as possible of pulp/fruit and partly dead leaves to avoid rot.
Comment: I saw this morning, as I have bad eyesight in the night. I am afraid if I tamper with it , it will just die?
Comment: Take a look at 0:21 in the video at the top of the linked page. This is how your crown should look like. Your photos show far too much useless material at the bottom including smaller leaves. Observe that the guide says "The **root buds** around the edge of the stem should be visible. ". Do not be afraid of letting it dry for days before you return it to a glass of water. (No direct sunlight)  Sometimes the crown is too old when you buy the pineapple: The core leaves are missing or too many leaves are brown or damaged.


Database issue in sharepoint 2010

Question: There's a strange problem on my sharepoint website. When I try to give access to a user on home page it detects a different name of that user, say abc pqr, and on sites and lists its detects a different name, say abc def pqr(middle name added in second name).
When I give access to a user the name is pulled from the active directory. So, I contacted the person who manages active directory to clarify if 2 accounts have been created for the same user in active directory. But this is not the case. I myself checked the active directory and there's only one account of this user and i.e. with the name abc pqr.
So, the user is able to access the home page but not the sites.
So my next guess is somewhere in the sharepoint database, this second name exists. But I'm unable to find the user database.
Also, when I tried to access the profile of this user by clicking on abc pqr, I was able to see the profile(my site).
But, when I clicked on abc def pqr I got this error - An unexpected error occurred. Troubleshoot the cases with sharepoint foundation(something like that with a correlation id). - For this I tried to start the profile synchronization but its not starting. I start it and then come back to synchronization page, in the right hand side it still mentions "Profile synchroniztion unavailable."
More info - this user's name was first deleted from  the active directory and then was again added after a few years.
I guess I need to find out the sharepoint access database and there I need to delete this second name because except the homepage all the site, lists, libraries(when I try to give access) are pulling the second name.
can anyone help me with this?
Thanks in advance!
PS: I'm too new to sharepoint. So, sorry for the confusion I might have created. And, would love it if somebody explains me as to where is the backend of a sharepoint webste.
Answer:
Have you tried giving permissions using the username instead of the name?
If you suspect that there's a duplicate user in your SQL database (Your SP site uses both AD and FBA?), all info about FBA db is found here: http://blog.morg.nl/2011/08/step-by-step-forms-based-authentication-fba-on-sharepoint-2010/
Comment: Thanks for replying. My SP site uses active directory to pull user info. And, there's no duplicate name in AD. Also, I tried giving permission using username and name both. I also tried the "Request for access" option. But nothing helped.

Database issue in sharepoint 2010


How can I display the 'settings menu' in the viewfinder on the Olympus OM-D E-M5?

Question: I came into possession of an OM-D E-M5 with a broken screen, and I would like to tweak the menus of the camera. However, I did not succeed to bring them up in the viewfinder. Does anyone know how to access the menus in the viewfinder?
Answer: There should be an evf/lv button near the eye piece.Keep pressing that until the evf lights up.
Alternatively you can use a mini hdmi lead and patch it through to a monitor or tv in order to get to the menu options then select evf eye control only.Set up the camera using a monitor.
Answer: I had this exact problem with the OM-D E-M5 Mk 2. After resigning myself to not being able to change the settings in menu (this meant setting date and time too), I found that if you hold the EVF button (fn3 on Mk 2) (looks like a curved rectangle between two vertical lines) you get an option to change "automatic vf on" to manual. On the manual setting I was able to see the menu.


How can I say "How are you?" in Italian?

Question: In English, it is usual to ask "How are you?" as a salutation. How can I say a similar thing in Italian?
Answer: The typical idioms are

Come stai? (informal, with known people or friends)
Come sta?  (formal, with unknown people or important people)
Come va?   (always possible)
Comment: In my opinion "Come va?" is informal.
Comment: Yes, I agree it tends a bit towards the informal side. However I think no one would be surprised of being asked "come va?", even by strangers, or interpret it as an excess of familiarity or intimacy (well, I surely wouldn't). As usual, local/personal differences are possible or even likely.
Comment: *come va* sounds pretty *informal*. I'd never say *Buongiorno professore, come va?* to one of my professors in a formal conversation. The sentence *come va?* goes very well with a friendly pat on the back in my opinion.
Comment: Come va is not informal. You could say: "Salve, piacere di conoscerla. Come va?"
Comment: Normally, yes (well, I do at least). Of course, there are always people who don't bother answering, as well as people who don't care about the answer. When they meet, everything's fine.
Comment: But, do you always expect an answer when asking "come va?" or "come stai?"
Answer: IMHO the other answer is translating "how are you doing". If you are unsure what register to use etc., you can use "Tutto bene?". It's not as common, but it's never wrong: in Bakuriu's example, "Buongiorno professore, tutto bene?" is as formally correct as such a question can possibly be.
Comment: Anche "**Tutto a posto?**"
Answer: Be careful, Italian "Come stai/sta?" is indeed asking about health or state of mind. Most likely, I would use it only if I know that something happened to the person in front of me. English usage of "how are you?" is closer to Italian "ciao", isn't it?
"Come va?" could be ok, if it is told with a salutation tone, so to speak.
Comment: Welcome to Italian.SE, @mario!
Answer: Come stai (informal) or sta (formal). "Come va" is definitely informal, and means, "how's it going," or "how goes it."
Comment: Welcome to Italian.SE; since your answer is already covered in karoshi's, this seems more like a comment. Would you like to expand it?


how to hide gear icon Sharepoint 2013

Question: I would like to hide the gear icon in Sharepoint 2013. I would prefer to do so using script editor. Any ideas? Thank you!
Comment: You want to hide the gear icon from one specific page or from all the pages in SharePoint site?
Answer: Zack, I think you need to take a look at this article.
The best thing about doing this is that it gives you the option to either hide or show the settings gear icon based on the permission of the user that is accessing the page.
It is a great article with all the steps in detail.
Hopefully you find it useful.
Comment: I have looked at that article. However, I just want to hide it on one page, and I don't need anyone to have access to it. if I could hide just site contents that would work as well.
Comment: Oh okay so you want to hide List/Libraries, then better to keep the Gear button intact and write a simple powershell to hide those lists and libraries. If you want the PowerShell let me know and I will change my answer above.
Comment: Yes that would be great! I could also use a how-to-use the powershell if you don't mind.
Answer: Here is the PowerShell for you-
<code>#Define the Web URL & List Name $WebUrl = "Your site URL"
$ListToHide = "AppConfig"
#Get the Web
$web = Get-SPWeb $WebUrl
#Get the List
$list = $web.Lists[$ListToHide]
#Set the Hidden Property
$list.Hidden = $true $list.Update()
#Displose Web Object
$web.Dispose()
</code>
Comment: How do I add this to my site?
Comment: Zach you cannot add this to your site. You will need to open a SharePoint management shell and run the cmdlets to execute this

how to hide gear icon Sharepoint 2013


How to call a function with parameters and user console input in C++?

Question: This is C++ console snippet.
I wish to call a fonction holding parameters amongst several function depending on user input.
For example:
#include<iostream>
using namespace std;

void Add (int x, int y)
    {
        cout << x + y << endl;
    }

void Subs (int x, int y)
    {
        cout << x - y << endl;
    }

int main(int argc, char* argv[])
{
    // Variable initialization
    char calc_type;
    int x;
    int y;

    // Console input
    cout << "Add or Substract (a or s)?" << endl;
    cin >> calc_type;
    cout << "1st number" << endl;
    cin >> x;
    cout << "2nd number" << endl;
    inc >> y;

    if (calc_type == "a")
    {
        Add(x, y);
    }
    else
    {
        Subs(x, y);
    }

return 0;

}

But in writing this I am returned error messages like the followings:
error C2446: '==' : no conversion from 'const char *' to 'int'
There is no context in which this conversion is possible
error C2040: '==' : 'int' differs in levels of indirection from 'const char [2]'
How can I cope with this problem (maybe references or pointers are preferred???)
Thank you
Answer: calc_type is a char variable. The constant "a" is a string. In C, char constants are in single quotes, not in double ones. So rephrase as:
if (calc_type == 'a')

Answer: Use single quotation marks for character literals.
if (calc_type == "a")

The double quotation marks here mean that "a" is a string literal, which means it has the type const char[2] ({'a', '\0'}). calc_type is a char, so the types don't match. 'a', on the other hand, has a character type, which you can compare fine.
Answer: Perhaps you meant:
calc_type == 'a'

instead of
calc_type == "a"

since calc_type is a char and "a" is a const char*?
Comment: To nitpick, string literals aren't pointers.


Buoyancy question

Question: Suppose we have a ball of volume V and a block of the same volume V whith same density. We submerge the ball into some kind of liquid so that $\frac{1}{2}V$ is submerged into the liquid. We do the same thing with the block. Now $\frac{1}{2}V$ of both block and ball is submerged into the liquid. At this moment we can say that the buoyant force on both objects is the same. If we now push both the ball and the block by little bit into the liquid by the same volume, the force acting on the bottom of the ball would increase (because it is now a little deeper in the liquid) and so will the force acting on the bottom of the block. If we now look at the geometry of the objects, wouldn't there be additional force on the ball pushing it downward because of the curvature of the ball which wouldn't appear on the block? Can we still say the buoyant force is the same on both objects? I added a picture and highlighted the area where I think the force would act in red.
Comment: All that really needs to be proven is that, based on the pressure distribution on the submerged surface of the sphere, the buoyant force is equal to the submerged volume times the density of water times g (in agreement with Archimedes principle).  Would you like me to prove that?
Comment: Thank you, but you don't have to prove the Archimedes principle.
Answer: This diagram might help you understand what is going on?

The initial position of the sphere is shown in grey and the new position of the sphere is shown in orange.
The pressure on all parts of the sphere below $XY$ increases by $h\rho g$ when in the new position $X'Y'$ and those parts all contribute to an increase in the net force upwards.
The section of the sphere $X''Y''Y'X'$ which was originally in the air is now in the liquid with the change in pressure on that surface ranging from $0$ along $X''Y''$ to $h\rho g$ along $X'Y'$ and the surface area which has become immersed is much less than the surface area already in the liquid.
This newly submerged part of the sphere thus contributed a net downward force which is less than the increase in the upward force contributed by the permanently submerged part of the sphere.
Comment: Thank you for your explanation. Although you didn't express equivalence in buoyant force between sphere and block, I see what you are saying.
Answer: The buoyant force will remain the same, The buoyant force is the net force that the liquid exerts on the body, this includes the force which acts on the bottom and the top(the red portion).
We can prove this by using Archimedes Principle, which states that the force of buoyancy is equal to the weight of fluid displaced by an object. Here, both the sphere and cube displace the same amount of liquid and hence will have same force of buoyancy acting on it.
Comment: Proving it by manually finding the force of buoyancy (using integration) for the sphere will be a quite troublesome process ,which is why I kept it simple and used Archimedes Principle.
Comment: Yes, but the OP seems to know that already. The question that the OP is asking is precisely about the apparent mismatch between the result that we know from the Archimedes principle to be true and the result that the OP seems to get when they apply the first-principles arguments to the specific case that they are discussing.
Comment: Oh, my bad. Shall I delete this answer?
Comment: Well, I am not sure. I would wait to see what the OP thinks.
Comment: Thank you for giving me a general explanation, but as Dvij Mankad said, I already knew Archimedes principle. I wanted to see how other people can come up with an apprehensible explanation as to why the buoyancy is the same although it can't be directly concluded.
Comment: All right, to manually establish the equivalence I'll have to use integration which is quite tedious , which Is why I didn't use it :) . I will be deleting my post.

Buoyancy question


Can i convert BAR ( Tidex ) to XRP ( Binance ) ?

Question: I need some advice, I do have some BARS with me on Tidex but I would like to send them to my Binance account but in other coin format e.g BARS to Ripple. Is it possible to do so, if any option please do let me know.
Answer: So you want to;

Sell your BAR into another currency?
Send the new currency from Tidex to Binance?
Enter a new currency that is not BAR?

It will be easiest to sell BAR for ETH or BTC, since these make the biggest markets on Binance. Then send to Binance as you have the choice to buy many different coins from there.
What currency do you want to enter into after you have sold BAR?


Terminology: output of a regression model as input to another regression model

Question: I have a question about terminology. I've constructed a multiple linear regression model for a variable X. This model is in turn used to estimate values of X that are used as input when constructing another multiple linear regression for a variable Y. Is there a term for this sort of approach?
Answer: It sounds a bit like Two Stage Least Squares from instrumental variable econometrics. This is done when you have simultaneity, measurement error in X, or an omitted variable that is correlated with X in your Y regression. However, there are some stringent conditions that X has to to satisfy for the approach to be appropriate.


Sukka and shemini atzeret havdalah

Question: I am confuse When is succot and shemini atzeret/simkhat torah havdala should be made in diaspora? Should succot havdalah be made at the end of second night?
Comment: Are you asking for an Israeli person in huts laarets or for a resident of diaspora?
Answer: Havdala is made on the following occasions:

At the end of a sabbath. Havdala includes a beverage (ideally wine), a flame, and a spice.

If the end of the sabbath coincides with a yom tov (e.g., the first two days of Sukos in the diaspora), then havdala with wine and a flame is incorporated into kidush, and spices are omitted.
If the end of the sabbath coincides with the fast of the ninth of Av, then havdala with a beverage is postponed until the end of the fast, and spices are omitted, but the flame is used Saturday night.

At the end of a yom tov (e.g., the first two days of Sukos in the diaspora. But not after the first day of a two-day yom tov). Havdala includes a beverage (ideally wine), but excludes a flame (except at the end of Yom Kipur) and a spice unless it's also the end of a sabbath.

If the end of the yom tov coincides with a sabbath, then havdala is not said.

Source: experience over many years in the diaspora, primarily in Ashkenazic venues
Comment: Ah sorry I see it now.  Have you an idea if the question is for Israeli or chusnick person?
Comment: @kouty why might you think it's for an Israeli?
Comment: A person who lives in Erets Israel and is occasionally in diaspora
Comment: @kouty, I understand that. I don't understand why you think the question may be that _ukimta_ rather than a simple question about when diaspora people say _havdala_ in the diaspora.
Comment: OK,  the style of the question was perhaps misleading me.  Sorry for an additional remark,  I'm not sure if YK must be called YT

Sukka and shemini atzeret havdalah


Should I perform paired t-test or not?

Question: I have the following human population data with me (based on a census) -
Number of women in each educational level (like Illiterate, literate but less than primary, high school, graduate). For the time being call then Educational level $1,2,3$ and so on. And corresponding to each educational level those women were categorized in different age groups (like $20-24$ years, $25-29$ years and so on). And then I have the parity numbers for women in each age group and correspondingly each educational level. So, in short if you pick a random women from the population data, you will have access to the age group and education level to which she belongs and her parity number.
Now, I want to understand the relationship between the mean parities (of women in all age groups) for women in two different educational level. So, I calculate average parities and construct a table with two columns - Women with education level $0$ and women with education level $1$. And I have age groups as my rows.
Now I am thinking of performing a paired t-test for these two columns to asses the relationship between means of these two categories(variables) but I am not sure if this is the appropriate test to perform. As I think these two columns are independent to each other which violates one of the assumptions of paired t-test. I have different sets of women under observation here instead of having same women for these two educational level. But this is simply not possible. Am I right or wrong here? Should I go with this test or should try other test (if yes then please tell me about those tests)?
Also, if anyone can suggest a better question (than testing the mean between these two levels of education) that can be framed from this data, that would also be kind of you.
P.S. - I am not sure if I have explained my data properly but in case of any confusion please let me know.
Answer: If you go back to a format with a row for each woman and her educational category, her age and her parity then you can run a regression model with education and age as predictors ad parity as outcome. This will give you an overall test for each explanatory variable and you can subsequently test individual coefficients. If you do this there is no need to categorise age which leads to a mis-specified model. You may of course also want to add non-linear terms of age. Since your outcome is a count it might be better to consider a Poisson regression which would give you an interpretation of percent increase in parity rather than parity itself. It would also avoid impossible predictions like negative parity.

Should I perform paired t-test or not?


what is the easiest way to retain values of fields while switching from page to page

Question: I am using Multiview. And I am switching between views. Each view contains lots of fields. I am going to another view from the current view to add some data. And after adding data from the new view, I am returning to the previous view. Now on this view I want to populate fields which I have entered before switching.
Currently I am using ViewState to retain previous values. But this costs lot as there are lots of fields on a single view. Is there any other way to do this task?
Answer: This isn't too far off from what viewstate is designed for--I'd stick with that.
Other less-desirable alternatives include sessions, database tables, and httpcontext.
Answer: You can store those values in a temporary table otherwise i dont think there is any problem with Viewstate.. better make a structure, store your values in that structure and store the structure in one viewstates...
Answer: Another possiblity is to use the Server.Transfer("url", true) which allows you to pass the previous form along with the data that was contained in the form to the next page.
Check out http://www.developer.com/net/asp/article.php/3299641 for usage examples.


Archer - archer data feed

Question: I am new to RSA archer. Appologies if this is a basic question but I and wanted to understand what is archer-archer data feed.  And how we can accomplish  it in archer?
Answer: An Archer-to-Archer data feed provides the ability to pull data from an instance in the form of an XML query or report-based search. The source data is inserted in its raw or formatted state either:
back into the same application,
a different application,
or even a different instance entirely.
For example, lets say you want to insert data from application Contacts and update a few fields of Contacts (lets say, Name and Email) into another application User Details.
Lets say you have fields UserName and UserEmail in Users application. You want to copy data from:
'Name' at Contacts to 'UserName' in User Details, and
'Email' at Contacts to 'UserEmail' in User Details
Here what you do is, build a global report containing a key field of Contacts application, 'Name' field and 'Email' field. This report acts as a source for your data-feed. Now, in an A2A data-feed, map these source fields from the source report to target application fields in the data-feed. Define the key field in your mapping. Now, run the data-feed. The data will be copied across the applications.
Hope this gives you an idea!
Look, data-feed is a vast concept and you will require to dig-in deep for a complete understanding and know what all possibilities and limitations exist therein. I would suggest you to read the admin guide also for that.
Also, Thanks for making the RSA Archer community grow on stackoverflow.

Archer - archer data feed


Can demons possess dead bodies?

Question: In Supernatural season 15 episode 1, Jack's dead body is possessed by the demon Belphegor.
Has this happened before in Supernatural? I didn't think that demons could possess dead bodies.
Comment: One thing to remember - this doesn't have to follow normal rules. God (well, Chuck) is now manipulating events, bringing the dead back to life and instantly making it night in a small area. For all we (currently) know, he may have "written" Belphegor possessing Jack's corpse.
Answer: Both demons and angels can possess a dead body. Though for angels its more unlikely, as they need the permission.
From https://supernatural.fandom.com/wiki/Vessels:

Both angels and demons can inhabit a dead person though given that
  angels need their vessel's permission, this is likely unique to
  Castiel as he was resurrected by God in the body of Jimmy Novak while
  Jimmy was not brought back. Lucifer, after being exorcised from
  Jefferson Rooney, was sent back into Nick's body by Crowley's
  perverted spell. While Nick's body had been repaired and improved to
  act as Lucifer's permanent vessel, Nick did not appear to have
  reconsented despite having been resurrected. This was presumably due
  to the nature of the spell modifications Crowley performed.

I am pretty sure that we had seens demons possess dead bodies before, but I can't quite remember and couldn't find any other hint to it.
Answer: Yes they can. Remember the Ruby played by Genevieve Padalecki? According to Wikipedia

To appease Sam, who dislikes her using a living host against the
  host's will, Ruby takes possession of a body recently declared to be
  dead (Genevieve Cortese).

I'm sure there are other examples too, like Castiel still being able to possess Jimmy Novak's body after it had been destroyed at a molecular level by Lucifer (5.22), the fact being confirmed in season 10. Also, Sam and Dean tried to kill a woman possessed by a demon in season 1 by throwing her out of the window yet she still got up because the demon was still alive in her.

Can demons possess dead bodies?


Facebook-like image scraping

Question: I'm trying to implement an image scraper feature that works similar to the way Facebook does when you post a link. I don't care about the actual UI part. I just want to pass a URL to a script and have it return the URLs of all the images on the page.
It's really easy to put together something that only works some of the time - this, for example - but I want something that works reasonably well.
I'm capable of writing this kind of thing myself, but it of course would be dumb for me to do that if there's already something written that's available for free.
Does anyone know of such a tool that exists? I don't care what language it uses as long as it will run on *nix.
Comment: I did similar scrapper with python (PyQt4) and JavaScript
Answer: You can start with python and Scrapy http://doc.scrapy.org/en/latest/index.html

Facebook-like image scraping


Monitor don't display anything after I connect PC to LCD TV

Question: I have a 19" samsung monitor and a LCD TV. Firstly, I connect my pc to LCD TV with vga cable. Then I unpluged cabble and connect it to my monitor. But now I can't see anything on the monitor. Do anyone know why had it gone?
Comment: I have a possibly related issue with an LCD TV over DVI->HDMI, I need to reboot the computer to get the screen to show again. I think it has something to do with the graphics output adjusting itself to a particular monitor, and failing to readjust when you switch to a monitor that needs different parameters. Rebooting works, still looking for a simpler solution.
Comment: Can you list the exact models of both Samsung monitor and LCD TV?  Also, what resolution and refresh rate do they use?
Answer: The resolution or frequency of your LCD TV may be set too high (or low) for your regular screen.
Try reconnecting the LCD TV and lowering the resolution or frequency before connecting the Samsung monitor again.
If that doesn't help, rebooting to safe mode and selecting the Plug and play monitor driver for your screen may help.
Comment: I think you are right but how can ı do with no display?
Comment: Reconnecting the LCD TV would allow you to change the settings. If that's not possible, a reboot probably solves the issue.


The amplifier does not work for hack rf one

Question: Good day! I ask for help with repairing the hackrf one amplifier. Doesn't work at all. Accepts signals without amplifier, and LNA and VGA adjustment in SDR sharp works too!
But when I put a tick on "Amp", then all signals disappear.
As I understand it, I punched through the static through the antenna input.
This is not a program error for sure, since I checked it both on the phone and using a portapack. Everywhere the result is the same - I turn on the amplifier - the signal disappears.
At the same time, I tried to transmit signals. Everything works for the transfer.
I ask for help in identifying the faulty part. I want to renovate.
After reading this article https://pc7x.net/archive/mirrors/hackrf-repair/articles/repairing-the-hackrf/index.html, I realized that most likely my LNA chip (U25 in the diagram) burned out. But after all, the LNA gain control works for me. How so? This article also describes that switches U14 and U12 can be broken.
Tell me how to determine what is broken, please.
Answer: HackRF has three amplifiers in the receive section. The first is a low noise amplifier (LNA) with fixed gain of 14 dB. The second is an Intermediate Frequency (IF) LNA with gain that varies from 0 to 40 dB. Finally, the baseband amplifier gain can be varied from 0 to 62 dB. On the transmit side, there are two amplifiers. The first is an IF LNA with gain that can be varied from 0 to 47 dB. The second amplifier has a fixed gain of 14 dB.

The first amplifier in the receive and the last amplifier in the transmit sections can be switched in and out of the chain. The designers of HackRF picked the same component MGA-81563 with Gain 14 dB, for both these amplifiers. As it turns out, this amplifier component is very susceptible to damage – even when the maximum input signal level of +13 dBm is not exceeded. This has been reported by a number of users. So you will have to indeed confirm that the first LNA is damaged (it often is) and then repair it. More details including a block diagram of the front-end are in the link below. The only issue is that the LNA itself is now obsolete as the manufacturer has stopped making this amp so you have to find one either on amazon or ebay. I think it would be a good idea for the team at HackRF to solve this problem though as there are many good wideband LNA alternatives out there.
Comment: Okay I will update my response. It is very detailed as you can see from the post.
Comment: Here on Amateur Radio Stack Exchange, answers must answer the question *in their text*, not just provide a link — links are good, but not sufficient. (See https://ham.stackexchange.com/help/how-to-answer for more information.) Please [edit] this answer so that it stands on its own.
Answer: There are three receive gain stages in the HackRF one. Two of them are on the MAX2837 chip (the ones controlled by "LNA gain" and "VGA gain"), and the third is the MGA81563 preamp, which is either on (+14dB) or off (+0dB), and controlled by the "amp" toggle. You have indeed blown the MGA81563. I did the same thing to one of mine several years back and it behaved exactly the way you described.
Answer: The HackRF one design is known to be faulty. See the attached issue thread on github, which I raised more than three years ago.  I designed and sold an improved SDR that fixes the flaws outlined in this Github issue: https://github.com/greatscottgadgets/hackrf/issues/541
There are many other parts of the HackRF that can be damaged by excess RF power. The RF switches are among the least likely to fail. The RFFC5071 mixer and the Maxim RF chips are also vulnerable. None is as sensitive as the receive LNA however, which is utterly unprotected.
Comment: Hello and welcome to ham.stackexchange.com!  I hear what you're saying, and you may well have a legitimate gripe, but I must warn you that the tone you used is not considered acceptable in this site.  (See the [Code of Conduct](https://ham.stackexchange.com/conduct).)  Please be respectful of all others in your future posts here.


How to Interpolate When Reading a Scale

Question: Suppose, I am taking measurement with a scale whose least deviation is 1mm. the length of something seems to lie between 44mm to 45mm. But my instinct says, it's 44.7mm. So, the question is I should report 44.7+-0.5mm or 44.5+-0.5mm or something else?
Comment: There is a correct answer to this question and an answer that might be marked "Correct" by a grader. These two things are not always exactly the same. Nor should they necessarily be, as the correct answer may depend on the person doing the reading having developed a good sense for these matter while the classroom answer can be given to students still stumbling around trying to develop that sense.
Comment: @SolomonSlow For good or for ill the use of "analog" to distinguish to instruments that read with a scale or needle and dial or similar from those that present a reading in numerals (which are "digital") is well established.
Comment: Your question title should be, "how to interpolate when reading a scale?" I would not call a scale an "analog device." We say "analog" when one continuously variable physical quantity (e.g., the current flowing in a wire) represents some other physical quantity (e.g., the depth of liquid in a storage tank.) When you use the markings on a physical scale to assign a _number_ to the length of some physical object, that's a "digital" process.
Comment: Thanks. I changed the title
Answer: There are a few different concepts we need to cover here.
First - the difference between precision and accuracy. Precision tells me the number of digits I can write down: in your case, you might be able to estimate that the number is close to 44.7 and you might even believe your ability to interpolate is such that the answer is 44.7 ± 0.1 mm. Of course, when you are reading an analog scale, you usually need to worry about parallax: depending on where your eye is with respect to the alignment of the measurement with the scale, you may get an error. Old analog meters often addressed this by putting a mirror behind the scale: you had to line up your eye such that the reflection of the needle fell right behind the needle - this is how you would minimize the parallax error.
The second issue is accuracy: when the supplier of your analog device (a ruler, in this case) put markings on the ruler, they did so with a certain tolerance. In a rare case, this tolerance might be noted on the ruler - most of the time, you assume it is "as good as the divisions on the ruler". In other words, when a ruler is marked in mm, you can reasonably assume that a measurement of 44 mm is closer to 44 mm than it is to 45 mm or 43 mm. But the manufacturer usually doesn't claim that the line that is drawn at 44 mm is actually drawn at 44.0 mm
When you try to interpolate, you are in effect assuming that 44 = 44.0 ; while that may sometimes be true (it would have to be independently confirmed), it won't always be. And if you start quoting numbers like 44.7 you are in fact claiming that your measuring instrument has accuracy beyond its markings.
In summary - there are actually multiple sources of error that affect your measurement. There is error aligning the ruler (including parallax), error reading the ruler (especially interpolating between markings), and errors in the ruler itself. Proper error estimation accounts for all these things.
If you cannot fully analyze all these sources of error, it is a useful shortcut to round to the nearest whole marking. When you add digits without knowing the accuracy of your ruler, you may be falsely claiming a precision that is not there.
To clarify: I recommend in your case to quote 45 +- 0.5 mm
Comment: 45+-0.5 says that there's a 50% chance that the value is over 45, and a 16% chance of over 45.5. That's a gross overestimate of the error in reading the scale.
Answer: Let's consider the process of interpolation.
Here is a part of a scale where two scale divisions of finite width are shown and you find that your reading instrument indicates that the value is somewhere between $44$ and $45$.

So how do you visually subdivide the interval between the $44$ and $45$ scale divisions?
What you should do is subdivide the interval $b$ but most probably you will subdivide the interval $a$ which will give an erroneous reading.
So I think that the best you can do is decide visually the whether the reading indicated by the instrument is closer to $44(.0)$ (left division) or $44.5$ (midway between divisions) or $45(.0)$ (right division).
Often half a scale division is a good rule of thumb when taking readings.
Answer: For simplicity here, let's ignore flawed rulers, poor technique (I.e. parallax), etc. The other answers address those.
The Question asks about quoting a central value and error, so let's bypass any discussion of significant figures, whether 45 vs 45.0 signifies something, etc.
In that case, you should report your best estimate of the central value and your best estimate of the error.   Only in the significant-figures world would you ever go from "I estimate 44.7" to "But I'll report 45 to signify that that last digit is uncertain".
If you were so uncertain of the 44.7 reading that all you could estimate is that the measurement was between 44 and 45, you should report $44.7 \pm 0.3$  to represent that. The 0.3 is the (approximately) $1/ \sqrt{12}$ which is the RMS error for "somewhere in this unit length".
Those RMS errors tend to be smaller than you think, so you should calculate them.
If you're best estimate is "somewhere between 44.6 and 44.8" then report $44.7 \pm 0.06$ (yes, that's mismatched significant figures: that's OK when reporting errors). The 0.06 is the full interval width of 0.2 times $1/\sqrt{12}$.  That requires reliably dividing the division into 10 subparts, so perhaps that's a stretch.
You might feel most confident with something in between:  "somewhere between 44.5 and 45".  That error is then 0.5 times $1/\sqrt{12}$ = 0.15 so you'd report $44.7 \pm 0.15$ or perhaps even, if you've estimated "it really looks half-way" $44.75 \pm 0.15$: Remember, significant figures do not matter here.
Some might recommend i.e. $45 \pm 0.5$ in this case, but that says "There's a 50% chance the value is over 45, i.e. on the other side of the division from what was observed"  Does that sound like it represents the observation properly?  Taken to 1-sigma, it says "There's a 16% change the proper value is over 45.5".  That's way to big a standard error to represent the usual use of a ruler...
Comment: While I agree that the standard deviation of a uniformly distributed random variate can be computed this way, I know of no authoritative textbook that advocates for this method in the context of the question being asked. I worry this will only confuse, not enlighten.
Comment: Neither of the other extant answers discuss what error to report; the seem to just rely on significant figures.  44.7+-.5, 44.5+-0.5 are just wrong. What would you prefer?
Comment: "what door"? Autocorrect??
Comment: My answer was "round to the nearest division" which is 45, so I would suggest 45 +- 0.5 as a reasonable way to report the measurement. I have added that explicitly to my answer - thanks for the suggestion.
Comment: That specifies there's a 50% chance that the value should have been on the other side of the division than what's observed. (>45 instead of approx 44.7)  Authority for that being ok?

How to Interpolate When Reading a Scale


How do I UV unwrap a half sphere?

Question:

Hello, I am a beginner in Blender and I have tried to make a ladybug for my project. I managed to model it, but now I have to add a ladybug texture to it. I heard that by using the "Smart UV Project" function, I can easily   add my Ladybug pattern to it. However, after doing this, my image started to distort. Now as you can see, the ladybug's patterns has gone really wrong and I don't know how to fix it, so is there any way I can fix this problem and make my ladybug work?
Comment: You have a lot of polygons there! That's going to make UV unwrapping a little harder. Try opening your texture image in your UV/Image editor viewport (Image->Open Image), and it will show you how your geometry lines up with the picture. Then you can move those verts around to change how the image lines up with the model. You can also export the UV layout to an image (UVs->Exoprt UV Layout) - this gives you a pattern to draw your texture over, like a coloring book.
Answer: It will be hard to have perfect circles on your ladybug this way. You could do it several other ways, but here are 3 ways to do it:
1) DIRECT PAINTING

Unwrap your semi-sphere in Blender.
Prepare a red image texture in the UV/Image Editor
Plug the Image Texture node with your image in a Diffuse (and plug the Diffuse in the Output).
In the 3D View window, switch to Texture Paint mode and paint your black dots with a very steep curve brush.

2) PAINT A MASK

Unwrap your semi-sphere in Blender.
Create a 100% white texture and plug it in a Diffuse (and plug the Diffuse in the Output).
In the 3D View window, switch to Texture Paint mode and paint your black dots with a very steep curve brush.
Now change your node organization and use your texture as a factor in a mix between 2 Diffuse nodes: one black and one red.

3) TRANSFORM A PLANE INTO A SPHERE
You could also create a plane, map your pattern on it, transform it into a sphere with some Simple Deform modifiers / Bend mode, then cut the sphere in half: How to animate morphing a rectangular plane into a sphere
Comment: yes you're right, I'm going to edit  ;)
Answer: Use the primitive's default UV map
It looks like it might not take too long to remodel your bug...
When a new primitive is added there is the option to create the default UV map.

Then tab into edit mode and selecting all, switching to UV editor layout

This was a really quick effort, with all the UV selected and scaled by eye to match the texture image as in question. (eg without rotating image lol)
The nature of the default mapping is equirectangular  360 degrees longitude "U" by 180 degrees latitude (2 x 1) "V".  Will be best at the equator and worst at the poles.

Image from the wiki Equirectangular Projection. showing how dots are distorted toward the pole.

as an image to default UVMap, see how they are now all dots
A black line across top of image would translate to black dot on pole, similarly to how (ant)arctic circles appear across the top and bottom of world map
For half a sphere, delete a half of sphere.

How do I UV unwrap a half sphere?


Loading non-skeletal animation to opengl via assimp

Question: I'm a newbie in assimp and openGL. I'm trying to import .fbx or .dae formatted file to openGL via assimp.
Importing skeletal animation was kind of easy. Lots of introductions and sample projects helped me to run several files properly.
But, in case of none skeletal animation(does it named 'vertex animation'?), which has no bone, I can't find any of source, instructions, including assimp tutorials.
Or, I'm not sure it is even possible, maybe assimp doesn't support this kind of animation.
Is there any recommendable project for non skeletal animation? Any single comment, will be helpful.
Thanks.
Answer: It is actually easier than you think. The way this works is really simple, it is a lot like video.
So, when you watch a video(I am sure you know this already but just as a reminder) you are not actually watching a moving image, instead you are watch a lot of images getting displayed one after the other REALLY fast, faster than your eye can see(There is a video from gamespot called "Do we need 60 fps" if you are interested).
Non-skeletal animation works in the same way. Let's say you have an animation with 240 frames, and each frame is a file in a directory. Let's also say that your computer runs at 60 fps. All you have to do is, for every next frame load the next model frame and draw that. In simple words, each time you draw to the screen you move to the next model frame.
But, this is only if you are running at 60fps. If you are running at lower fps, like 30fps, the animation will appear to slow down. I will not explain this a lot because since you have already done skeletal animation, I assume that you have dealt with this problem. Solution: find out have much time has passed since the last frame and if that is bigger than the time that each animation frame takes, move to the next frame. Some thing like this:
<code> int framesToMove = (int)((lastFrameTime - currentFrameTime) / animFrameTime)
</code>
If you do not understand, ask me.
Advantage: A lot more performance friendly, than skeletal animation.
Disadvantage: Requires A LOT more memory.
Recommendation: Use skeletal animation for complicated animations, like character movement, and for animation with complicated models that have many vertices, and use non-skeletal animation for simpler models, like a gate opening animation.
Here is some example code:
<code>#include <assimp/Importer.hpp>
#include <assimp/scene.h>
#include <assimp/postprocess.h>

Assimp::Importer importer;

const aiScene* scene = importer.ReadFile(("./res/models/" + fileName).c_str(), aiProcess_Triangulate | aiProcess_GenSmoothNormals |  aiProcess_FlipUVs |  aiProcess_CalcTangentSpace);

if(!scene) {
    std::cout << "Mesh load failed!" << std::endl;
}

const aiMesh* model = scene->mMeshes[0];

std::vector<Vector3f> positions;
std::vector<Vector2f> texCoords;
std::vector<Vector3f> normals;
std::vector<Vector3f> tangents;
std::vector<unsigned int> indices;

for(unsigned int i = 0; i < model->mNumVertices; i++) {
    const aiVector3D pos = model->mVertices[i];
    const aiVector3D normal = model->mNormals[i];
    const aiVector3D texCoord = model->HasTextureCoords(0) ? model->mTextureCoords[0][i] : aiVector3D(0.0f, 0.0f, 0.0f);
    const aiVector3D tangent = model->mTangents[i];

    positions.push_back(Vector3f(pos.x, pos.y, pos.z));
    texCoords.push_back(Vector2f(texCoord.x, texCoord.y));
    normals.push_back(Vector3f(normal.x, normal.y, normal.z));
    tangents.push_back(Vector3f(tangent.x, tangent.y, tangent.z));
}

for(unsigned int i = 0; i < model->mNumFaces; i++) {
    const aiFace& face = model->mFaces[i];
    assert(face.mNumIndices == 3);
    indices.push_back(face.mIndices[0]);
    indices.push_back(face.mIndices[1]);
    indices.push_back(face.mIndices[2]);
}
</code>
Comment: Actually, what I'm having trouble is 'assimp' import data structure which contains animation info (or, any single frame?) I have to access.

I can animate files with skeleton animation, or visualize static object without skeleton(only mesh object). But when it comes to non-skeleton animation, I just can't figure out where the animation is stored of the scene.
Comment: As I know, using assimp, in skeletal animation, the animation information is attached to bone(or part of bone). So, I think, non-skeletal animation which has no bone, would have different location of animation or abort to having animation. Which one is true? Is it possible to import non-skeletal animation through assimp? I need verification that assimp does import non-skeletal animation and example of that.
Comment: I've read some discussion about 'assimp & vertex-animation'. It says that couple of years ago, assimp didn't support vertex-animation. Maybe, assimp developers thought it was not that critical, so left it undone. In this case, interpolation from several obj file would be better than importing it from animation-containing-file.

If you knows about vertex-animation (non-skeletal animation) importing files via assimp, or other 3d file importer capable of vertex-animation to openGL, please let me know.

Any of the working sample file would be helpful mostly.

Thanks.
Comment: @Kim.K I have updated the post and now it includes some example code
Comment: It seems like contains only the very first frame like static model. Which variable has information about 'following frames'? If this code block works fine with 'vertex animation', please teach me.
Thanks for your concern.
Comment: This is the code required to load only one frame of the animation. That frame can be ANY frame in the animation. So we can start by make this into a function that returns a struct with all the data necessary(positions, normals, textueCoords, tangents, indicted), and takes in a string for the fileName. Every frame will be a SEPARATE file, which makes loading in all the frames really easy. All we need to do is load each frame from it's file and save it in a list.
Comment: Is there any way to import animation from single file? It sounds like impossible or really hard in assimp.
Comment: I don't know how you could implement something like that is assimp. But I suppose it is possible since aiScene has an array of models and not just one model. Try taking a look at the Assimp documentation.
Comment: Thanks. I've managed to loading some examples. Actually, it was md2 file format, but was a kind of success.


Thesis advisor saw me doing really well without being pestered too much, but now I need the pestering (I need his input basically)

Question: My supervisor was away for a few weeks, saw (let's say at time=1) that my thesis was progressing really well, and I guess he decided it's best to leave me with minimal supervision. We talk maybe once every 3-4 weeks now, and to be honest now is the time that I actually really need his advice. Contacting him is impossible, thus I turn here now in hope of some help.
The first problem is I'm running out of things to write. When he initially showed the topic, I was under the impression that I will be taking approaches A and B which I genuinely like and enjoy (I was recommended to do my thesis with him precisely because I like approaches A and B). But his recent results smashed a lot of small results that uses approaches A and B, making them irrelevant. I did try to include older material that is at least useful, but I'm really running dry on material (even to read). There is an approach C, but it uses theories outside the scope of an undergraduate, and I no longer have the time to read up on the theories first.
The second problem is that I'm feeling that my thesis is kind of, well, too simple. I feel like I could've written the core material (apart from the linear algebra parts) in high school. Graph theory often feels like this though, and this is why I need his opinion. I'm currently writing another section that is only related to the main topic if you squint hard enough, with the sole reason that the section acts as a 'difficulty anchor'. By that I mean I just want to demonstrate that I can do a little mathematics too. I don't know how ridiculous this is.
Maybe there is a question implicitly from the last two paragraphs, I really don't know. I find that I also can't explicitly formulate the question, since I don't even know what is my question. Maybe I'm just looking to clear doubts.
Answer: Your paragraph ending with a reference to approach C suggests that this is an undergraduate thesis.
If that's the case, I think you may have little to worry about. Undergraduates are not usually expected to prove new theorems in their theses.
You don't say why it's impossible to contact your advisor. Perhaps he has some good personal reason. Perhaps you need his help less than you think you do.
I suggest that you write up what you did with approaches A and B, independent of the fact that your advisor has proved things you were working on. Be sure to cite his work. If you can reprove theorems a different way, that's a good thing. Sketch out further ideas in your "difficulty anchor" chapter.


Can't download from home page

Question: I have tried to download the iso from the home page in both brave and firefox, Ubuntu and Windows and the button will not do anything, either paid or custom.
Answer: Got stuck on this one too, but I just figured it out!
Just type 0 into the "custom" box and click "Download elementary OS".
If all goes well (which it really should), you should see a dialog prompting you to either do a direct download or download via magnet link.

Can't download from home page