Is it okay to heavily correct a question/answer that contains a lot of typos/grammar errors?

Question: Sometimes one can find a question or an answer containing a lot of typos and/or grammar errors: is it ok to proceed in correcting them (at the best of one's knowledge) or is it better to leave a comment to the author and suggest them to correct the post?
Answer: Yes, that's absolutely fine and encouraged. Edits to fix grammar and typos help the entire community. From our editing help article:

When should I edit posts?
Any time you see a post that needs improvement and are inclined to suggest an edit, you are welcome to do so. The original author of a question or answer may always edit their own post, regardless of reputation level.
Edits are expected to be substantial and to leave the post better than you found it. Common reasons for edits include:

To fix grammar and spelling mistakes
To clarify the meaning of the post (without changing that meaning)

(The list continues but these are the important bits here.)
Fixing mistakes in the post is great! By doing so you also help make the post clearer and more legible. You may also rephrase in the process if it assists with clarity; some edits I've done have considerably restructured the post.
The times I'll leave a comment instead of fixing an error myself are mainly those times I'm not sure how to fix it: part of a sentence is semantically meaningless or can mean several different things. I'll improve what I can, then draw the author's attention to that bit and ask them to clarify for us.
If they're having trouble communicating with us, for example if their English skill is limited and they probably won't be able to fix the sentence themselves, I might ask a pointed question or two in my comment that will resolve the ambiguity for me and then edit the post to resolve that error I left.
Answer: As long as you don't fix factual errors and tone
I wholeheartedly agree with doppelgreener, fix away what makes the answer more readable.
But don't alter the following to preserve the integrity of the answer:

Choice of examples
Conclusions

Bad examples that just don't work or wrong conclusions are the substance of the post, which is changing the meaning. If the question would require listing some examples of different types of pants, and the examples are all examples of the same type of plant (like, all of them are tomatos), then changing the examples is changing the substance.
A bad example might be fixed, but if that would mean you rewrite the whole answer: Instead, write a better answer and vote!
Comment: "Don't change the conclusions of the post" however is quite reasonable; if we change the conclusions, we're changing the meaning of the post, and that's something to avoid.
Comment: I don't agree with this list: we *can* change choice of metaphors and examples if it makes the question clearer; there's nothing about these that make them off-limits for editing. Some metaphors are just bad & could be replaced with clearer ones or could be removed altogether when they interfere with reader understanding. Sometimes someone expresses their question or point quite well, but they chose a bad example to represent it, and we can replace the example to help them communicate the same point. We can do those things while respecting the integrity of the answer and the author's wishes.
Comment: I think you mean that when changing an example changes the meaning of the post, we shouldn't make that change. Which is fair to assert, but the core issue there is the meaning, not the examples themselves. And this isn't even a question about changing examples; it's about fixing grammar and typos.
Comment: @Trish I think that might be bringing in baggage here where it doesn't relate, & where it would be harmful to establish "you can't change examples, ever" because we should be able to do that because it's good to be able to that. (And it didn't work out for you that one time but you resolved it already.)
Comment: Re the new title, "As long as you don't fix factual errors and tone", I want to raise that we do in fact sometimes fix factual errors, because we may want to help someone's post succeed that's already mostly there and help ensure our answers are accurate, and do edit tone (when it's an improvement to do so). Why are you asserting we don't or can't? Since when and on what basis?
Comment: @Trish Who I am is a content curator with an edit privilege resolving an issue with an answer that I feel is otherwise valid and useful. If it's bad enough I'll report it instead; I may even edit _and_ flag for moderator attention if I consider that an appropriate way to handle the situation. But sometimes a poor choice of tone is not a violation of "be nice". (And in response to the flag, the diamond moderators will sometimes edit for tone rather than removal—and have done so many times.)
Comment: Semi-related Q&As about how to handle questions that have factual inaccuracies (or are based on incorrect ideas): [How do we handle it when the asker's problem is just that they're confused?](https://rpg.meta.stackexchange.com/q/3505/33569), [I was told to not correct misconceptions in the question comments, what should I do instead?](https://rpg.meta.stackexchange.com/q/8079/33569). [A question has some facts majorly wrong: should I be correcting them in comments or an answer?](https://rpg.meta.stackexchange.com/q/7111/33569)
Comment: Unfortunately, I feel like I should downvote this answer because we should fix bad examples and metaphors as long as we keep integrity.
Comment: @doppelgreener Changing examples is **bad** because it destroys the integrity. If my list of "BBEG" is The Emperor, Tiamat and Darkseid, it is *not* an improvement to add Sauron and Xerxes to the list. I see your point on the metaphors and removed them. However, BAD examples are better served by making a better alternative answer.
Comment: @Akixkisu Examples should be kept: what you consider a better example might be not a good fit at all.
Comment: @Trish "choice of examples" also means things like: someone tries to provide an example scenario to demonstrate how something works, but they choose an overly complex scenario or one that doesn't actually demonstrate the point very cleanly; we can substitute it with a different example scenario to show how the thing works. This is a thing we have done in the past. That's a thing that is an example, that is being replaced, that does not change the meaning of the post in doing so—it's clearing up communication. This isn't forbidden!
Comment: @doppelgreener I had someone add totally superflous examples to an answer where I had chosen my examples of CE people very carefully. Such lists are off limits to be added or changed, that is what I try to point to. Oh, I rolled that silly addition back... but it bugs me just like people altering citation style.
Comment: If the answer is written in a snarky way, who are you to remove the snarkiness? If the post violates "be nice", that is not grounds to *fix* it but to *delete* it.
Comment: I think that this answer goes a little bit out of scope: I was asking about the writings (typos, verbs conjugation, false assonances e.g. it's -> its, et cetera), not about contents.


Charge operator action in QFT

Question: I have a quick question regarding the action of the charge operator in quantum field theory. I am reading Schwartz's book on QFT, and he proves the two following commutation relations $$[Q,\psi]=-\psi\qquad [Q,\psi^\dagger]=\psi^\dagger,$$ where $Q=\int d^3x\;\psi^\dagger\psi$, and $\psi$ is the normal quantized fermionic field. He then concludes that this implies that $Q$ counts the number of particle minus antiparticles. I do not see how this is true. Any help is much appreciated!
Comment: I know this is from years ago, but do you happen to know the page number? I'm trying to find the proofs in his book.
Answer: A quick answer. You should think of $\psi^\dagger$ as the creation operator for a particle, and conversely you can think of $\psi$ as the creation operator of an anti-particle.
Thus since the commutation relation has different sign for $[Q,\psi]$ and $[Q,\psi^\dagger]$, $Q$ will count the particles as positive charge, and anti-particles as negative charge.
The counting would work like this: Assume you have state $|\psi\rangle=\psi^\dagger|0\rangle$ where $|0\rangle$ is the vacuum (i.e. no particles).
The action of $Q$ on this state is
$$ Q|\psi\rangle=Q\psi^\dagger|0\rangle=(\psi^\dagger+\psi^\dagger Q)|0\rangle=\psi^\dagger|0\rangle=|\psi\rangle $$
where we assumes that $Q$ annihilates the vacuums state. Similarly for an antiparticle state $|\bar\psi\rangle=\psi|0\rangle$ we have
$$ Q|\bar\psi\rangle=Q\psi|0\rangle=(-\psi+\psi Q)|0\rangle=-\psi|0\rangle=-|\bar\psi\rangle $$
So we see that $Q$ has positive eigenvalues for particles and negative eigenvalues for anti-particles. Thus $Q$ measures the total charge $Q=N_\psi - N_{\bar\psi}$.
Answer: Another quick answer. Hope it be somehow helpful. If one looks at the Fourier expansion of $\psi$ in terms of momenta, they would find an expression for $Q$ in terms of annihalation operators, but with the minus sign between them. (And of course an infinity.) So, it can be deduced that $Q$ actually counts the difference between number of particles and anti-particles.

Charge operator action in QFT


"Ubuntu One" authentication Failure in Windows 7

Question: I just updated the Ubuntu One client on my Windows 7 machine today.  When I try to sign in, I receive the "authentication failed" error message, even though the same credentials work on the Ubuntu One website and my Ubuntu 11 machine at work.  Any suggestions?
Answer: There seems to be authentication bugs in the latest windows client for ubuntu one. Download earlier version from http://one.ubuntu.com/windows/ubuntuone-2.0.3-windows-installer.exe and install it.
It should work and check for the change-logs in the future releases and updates for this bug to be fixed.
Answer: There was a problem validating the SSL certificate in some cases. Could you try the latest version (4.0.0) and see if that fixes it for you?


How can I delete the SharePoint site for a private channel in Microsoft Teams?

Question: As you can see on the screenshot below, I can't delete my site. This command is missing under the menu item Website information. Also in the advanced settings I can't find any delete functionality.
Answer: Each team in Microsoft Teams has a team site in SharePoint Online, and each standard channel in a team gets a folder within the default team site document library. Files shared within a conversation are automatically added to the document library, and permissions and file security options set in SharePoint are automatically reflected within Teams.
You can refer to the following articles to learn more about the relationship between the Microsoft team and SharePoint Online:
How SharePoint Online and OneDrive for Business interact with Microsoft Teams
As Susan mentioned, if you delete this site or this library, the shared files and history of all users in this channel will be deleted, and it is not recommended that you delete this site.
Comment: If you create a private channel a separate site is created.
Comment: @NaimMurati Thank you very much for your comment! I created a private channel, so a new site was created...Do you know if its possible to create a private channel without creating a completely new page?
Comment: No, see my answer.
Comment: It's impossible.
Answer: Privat channels always have their own SharePoint site. This is by design for security reasons. There is no way around it. Standard (not private) channels use the SP site of the team.
Answer: Despite not knowing any german, this is a screen shot of deleting a site and not a page.
Secondly the 'Delete site' is beneath the sentence "alle websitee...". I cannot comment if it is there or not since the screenshot stops exactly before.
Third the 'delete site' link is also available in Site Settings (which is your 'alle websitee...') under "site actions".
If you cannot get to Site Settings and see this command it means you are not site owner or the site owner permission level assigned to you as been modified.
Comment: There is no option "delete" or something else... I have the full permissions. This site was created when I created a new channel in my team. This team has his own teamsite, I created a new Channel and this site was created... If you know what I mean.
Comment: When 1 Microsoft Team is created, a sharepoint website is created with a default document library with 1 folder that corresponds to the 1st default channel (which is normally called 'general'). When a second channel is created in the same Microsoft Team instance, a SECOND folder is created in the same document library that will correspond to the second channel. Creating a second channel does NOT create a new website. 1 Microsoft Team = Multiple channels = 1 SharePoint site. If you delete the site, most likely you will delete the whole Microsoft team as well
Comment: I has created a private channel... so this will create a new sharepoint page. Do you know if its possible to create a private channel without creating a completely new page?


On-board RAID vs Hardware RAID

Question: They technically are both "hardware" raids, but what really sets the two apart? Wouldn't on-board raid basically be a software raid since they share the same processor.
Comment: possible duplicate of [Any difference between Hardware RAID and Software RAID?](http://superuser.com/questions/28248/any-difference-between-hardware-raid-and-software-raid)
Comment: Generally speaking, hardware RAIDs are faster and more portable.  Check the duplicate link.
Comment: @shinjijai That link refers to using the OS as the entirety of the RAID solution vs. using a piece of hardware. The OP is asking about hardware vs. hardware.
Answer: What a RAID card brings to the table...
More processing power. Dedicated chips to handle the calculation of things such as parity. Hardware that is not a shared resource. Dedicated memory. Optionally, write-back cache with it's own battery module (to preserve the cache in the event of a power failure).
On-board RAID CAN be fully dedicated RAID, just on the motherboard. I'd venture to say that most of this time, this is actually a scaled down solution, sometimes called "software-assisted RAID." It's a partial solution, but still relies on shared system resources.
Finally, to answer your question -- "Wouldn't on-board raid basically be a software raid since they share the same processor": It depends on the implementation. Some motherboards are going to come with more dedicated RAID resources than others. Undoubtedly, some effectively be a software solution because they are offloading so much of the work to the rest of the system, effectively relying mostly on the OS. It's entirely possible that the actual OS implementation of mirroring may do a BETTER job than solutions like this. Other on-board implementations may provide a full RAID chipset, with dedicated RAM for the on-board RAID.

On-board RAID vs Hardware RAID


Why SELinux is not part of DAC?

Question: Is it a simpler, more elegant, intuitive way to just extend DAC with 4 more groups to achieve basically the same multidimensional access functionality as SELinux, only beautiful, easy to configure and maintain?
Comment: Your question reads more like a statement. Had it been a question, it would ask "How may we extend DAC to achieve the same functionality as SELinux?" As it currently stands, your question relies on the interpretation of "simple", "elegant", "intuitive", and "beautiful". These are subjective metrics.
Answer: I take it you are referring to Discretionary Access Controls (https://en.wikipedia.org/wiki/Discretionary_access_control) and you are wondering why the perceived security benefits of SELinux are not default in most Linux distributions.
There are several reasons.

There is a standard for DAC, and SELinux isn't in it.
Apples vs Oranges. SELinux is a type of Mandatory Access Control (MAC). Conflating it with DAC is a category error.
SELinux is just one example of MAC, it isn't the standard.
Threat modelling should be done to ensure the right tradeoff of complexity vs security.

There is a standard for Unix DAC
See the answer to a related earlier question https://unix.stackexchange.com/a/731556/305714
Summary: POSIX outlines what is expected from DAC in Unix-like operating systems. While few deployments have strict POSIX adherence, it's still an influential lingua franca.
Since POSIX does not mandate anything like SELinux, nothing like SELinux is widespread.
Apples vs Oranges. DAC != MAC.
There is a whole ecosystem of possible Access Controls. The "see also" section in the earlier linked DAC page on wikipedia shows many examples.
SELinux is an implementation of Mandatory Access Control. Asking why DAC does not use SELinux is to make a category error. It is like asking why RBAC doesn't use deep packet inspection, or why bicycles don't use concrete moorings.
Competing MAC implementations
In the MAC space, SELinux is just one example. It is famous, but there are many implementations and no consensus on what should be standard. Even if people agreed that MAC should be more widespread, there would be disagreement around whether it should be SELinux, AppArmor, TOMOYO, or something else.
Complexity vs Security Tradeoffs
There is no such thing as secure computing. You can make security arbitrarily complex. If you want your gaming machine at home to be "secure", you should turn it off, melt it down in a vat of acid, and drop the vat of acid into a volcano.
Why don't people do this? Because when assessing what security measures are reasonable, they need to be proportional to the risks. The rate of compromise, and the cost per compromise.
This is done through threat modelling. You analyse a system's attack surfaces, the likely resources and intentions of threat actors, and the value of resources such as data or compute power on the system.
If the cost of maintaining a complex system is greater than the cost of compromize, and if the complexity is due to implementing security against threats which are unlikely to be a real problem for the deployment, it's not only reasonable to relax the security a bit in return for simpler administration, but in fact it would be economically irrational to do anything else.
These trade-offs are different for everyone, and in contexts where you're a nation-state actor engaged in a cyberwar with other nation-state level threats, you might decide that the risks and costs of compromise are too great and you need to use something like SELinux to safeguard national security and so on.
But for Mom & Pop Linux users who just want to play Elden Ring and surf reddit, there is no need to burden them with the complexity of MAC, they can just harden their IPTables configuration and avoid running commands like curl http://some.cool.scripts | sudo bash.
Comment: Security is possible if it's built with security in mind from the ground up. And MAC can fit into DAC just fine.
Comment: @user145453 Please pinpoint what I said was inaccurate, with evidence.

Why SELinux is not part of DAC?


What are the models that have the potential to replace neural networks in the near future?

Question: Are there possible models that have the potential to replace neural networks in the near future?
And do we even need that? What is the worst thing about using neural networks in terms of efficiency?
Answer: This is going backwards, but it kind of follows the logic of the arguments.
In terms of efficiency, I can see a few major problems with classical neural networks.
Data collection and preprocessing overhead
Large neural networks require a lot of data to train. The amount can vary depending on the size of the network and the complexity of the task, but as a rule of thumb it is usually proportional to the number of weights. For some supervised learning tasks, there simply isn't enough high-quality labelled data. Collecting large amounts of specialised training data can take months or even years, and labelling can be cumbersome and unreliable. This can be partially mitigated by data augmentation, which means "synthesising" more examples from the ones you already have, but it is not a panacea.
Training time vs. energy tradeoff
The learning rate is usually pretty small, so the training progress is slow. A large model that could take weeks to train on a desktop CPU can be trained in, say, two hours by using a GPU cluster which consumes several kW of power. This is a fundamental tradeoff due to the nature of the training procedure. That said, GPUs are getting increasingly efficient - for example, the new nVidia Volta GPU architecture allows for 15.7 TFLOPs while consuming less than 300 W.
Non-transferrability
Right now, virtually every different problem requires a custom neural network to be designed, trained and deployed. While the solution often works, it is kind of locked into that problem. For example, AlphaGo is brilliant at Go, but it would be hopeless at driving a car or providing music recommendations - it was just not designed for such tasks. This overwhelming redundancy is a major drawback of neural networks in my view, and it is also a major impediment to the progress of neural network research in general. There is a whole research area called transfer learning which deals with finding ways of applying a network trained on one task to a different task. Often this relates to the fact that there might not be enough data to train a network from scratch on the second task, so being able to use a pre-trained model with some extra tuning is very appealing.

The first part of the question is more tricky. Leaving purely statistical models aside, I haven't seen any prominent approaches to machine learning that are radically different from neural networks. However, there are some interesting developments that are worth mentioning because they address some of the above inefficiencies.
Neuromorphic chips
A bit of background first.
Spiking neural networks have enormous potential in terms of computational power. In fact, it has been proven that they are strictly more powerful than classical neural networks with sigmoid activations.
Added to that, spiking neural networks have an intrinsic grasp of time - something that has been a major hurdle for classical networks since their inception. Not only that, but spiking networks are event-driven, which means that neurons operate only if there is an incoming signal. This is in contrast to classical networks, where each neuron is evaluated regardless of its input (again, this is just a consequence of the evaluation procedure usually being implemented as a multiplication of two dense matrices). So spiking networks employ a sparse encoding scheme, which means that only a small fraction of the neurons are active at any given time.
Now, the sparse spike-based encoding and event-driven operation are suitable for hardware-based implementations of spiking networks called neuromorphic chips. For example, IBM's TrueNorth chip can simulate 1 million neurons and 256 million connections while drawing only about 100 mW of power on average. This is orders of magnitude more efficient than the current nVidia GPUs. Neuromorphic chips may be the solution the training time / energy tradeoff I mentioned above.
Also, memristors are a relatively new but very promising development. Basically, a memristor is a fundamental circuit element very similar to a resistor but with variable resistance proportional to the total amount of current that has passed through it over its entire lifetime. Essentially, this means that it maintains a "memory" of the amount of current that has passed through it. One of the exciting potential applications of memristors is modelling synapses in hardware extremely efficiently.
Reinforcement learning and evolution
I think these are worth mentioning because they are promising candidates for addressing the problem of non-transferrability. These are not restricted to neural networks - being reward-driven, RL and evolution are theoretically applicable in a generic setting to any task where it is possible to define a reward or a goal for an agent to attain. This is not necessarily trivial to do, but it is much more generic than the usual error-driven approach, where the learning agent tries to minimise the difference between its output and a ground truth. The main point here is about transfer learning: ideally, applying a trained agent to a different task should be as simple as changing the goal or reward (they are not quite at that level yet, though...).
Comment: "Strictly more powerful," is what Maass writes in his 1996 paper, however he claims mathematical rigor and fails to define computing power. Furthermore, in 1996 was written when sigmoid activation functions were popular, which they are not now, precisely because they do not converge for a large variety of scenarios as reliably or as fast as simpler activation functions. Maass only mentions convergence twice in the paper and does not indicate how convergence occurs, further underscoring the absence of the definition of computing power in terms of machine learning objectives.
Comment: The connection between RL and evolution is unclear. Are you referring to some combination of a genetic algorithm and RL? If so, what is the reference?
Comment: @FauChristian Even if you don't read the whole paper, the deifinition of computational capability is provided in the abstract (second sentence): `In
particular it is shown that networks of spiking neurons are, with regard to the number of neurons that are needed, computationally more powerful than these other neural network models.`
Comment: @FauChristian Sigmoid activations are still very much alive and kicking. For example, LSTMs use sigmoid activaitons for the gates, softmax (normalised sigmoids) is still the best thing we have for multi-class classification, etc. "Simpler" activations are not necessarily better - the original ReLU (`max(0, x)`) is very much in danger of getting stuck for `x < 0`, resulting in dead neurons. At any rate, the point is about the computational power of spiking nets and their ultra-efficient hardware implementation in terms of power consumption.
Comment: @FauChristian I am not drawing parallels between RL and evolution. I am giving them as examples of promising approaches for addressing a certain type of inefficiency, namely having to hand-craft a solution (be it a NN or something else) for every individual problem you have at hand. Ideally, you should be able to design a _generic_ solver which is automatically tuned by RL and/or evolution for the particular problem based solely on a high-level goal.
Answer: We do have some hope lurking in that front. As of now we have capsule networks by J.Hinton which uses a different non-linear activation called the 'squash' function.

Hinton calls max-pooling in CNN as a 'big mistake', as CNN look only for presence objects in an image rather than the relative orientation between them. So they lose the spatial information while trying to achieve translation invariance.
Neural nets have fixed connections, whereas a capsule in a capsule network 'decides' to which other capsule it has to pass its activation during every epoch. This is called 'routing'.
The activation of every neuron in neural nets is a scalar. Whereas the activation of capsule is a vector capturing the pose and orientation of an object in an image.
CNN are considered to bad representations of human visual system. By human visual system I mean eyes and the brain/cognition together. We could identify Statue of Liberty from any pose, even if we have looked at it from one pose. CNN on most of the cases cannot detect same object in different poses and orientations.

Capsule networks themselves have some shortcomings. So there has been work in the direction of looking beyond neural nets. You can read this blog for a good understanding before you read the paper by J.Hinton.
Answer: Replacing Neural Nets
There may exist new algorithms that have the potential to replace neural nets. However, one of the characteristics of neural nets is that they employ simple elements, each with low demands on computing resources in geometric patterns.
Artificial neurons can be run in parallel (without CPU time sharing or looping) by mapping the computations to DSP devices or other parallel computing hardware.  That the many neurons are essentially alike is thus a strong advantage.
What Would We Be Replacing?
When we consider algorithmic replacements to neural nets, we imply that a neural net design is an algorithm.  It is not.
A neural net is an approach to converging on a real time circuit to perform a nonlinear transformation of input to output based on some formulation of what is optimal.  Such a formulation may be the minimization of a measure of error or disparity from some defined ideal.  It may be a measure of wellness that must be maximized.
The source of the fitness determination for any given network behavior may be internal.  We call that unsupervised learning.  It may be external, which we call supervised when the external fitness information is coupled with input vectors in the form of desired output values, which we call labels.
Fitness may also originate externally as a scalar or vector not coupled with the input data but rather real time, which we call reinforcement.  Such requires re-entrant learning algorithms.  Net behavioral fitness may alternatively be evaluated by other nets within the system, in the case of stacked nets or other configurations such as Laplacian hierarchies.
The selection of algorithms has little to do with comparative intelligence once the mathematical and process designs are selected.  Algorithm design is more directly related to minimizing demands for computing resources and reducing time requirements.  This minimization is hardware and operating system dependent too.
Is a Replacement Indicated?
Sure.  It would be better if networks were more like mammalian neurons.

Sophistication of activation
Heterogeneity of connection patterns
Plasticity of design, to support meta-adaptation
Governed by many dimensions of regional signaling

By regional signaling is meant the many chemical signals beyond signal transmission across synapses.
We can even consider going beyond mammalian neurology.

Combining parametric and hypothesis-based learning
Learning of the form employed when microbes pass DNA

Neural Net Efficiency
Efficiency cannot be quantified in some universal scale as temperature can be quantified in degrees Kelvin.  Efficiency can only be quantified as a quotient of some measured value over some theoretical ideal.  Note that it is an ideal, not a maximum, in the denominator.  In thermodynamic engines, that ideal is the rate of energy input, which can never be fully transferred to the output.
Similarly, neural nets can never learn in zero time.  A neural net cannot achieve zero error over an arbitrarily long time in production either.  Therefore information is in some ways like energy, a concept investigated by Claude Shannon of Bell Labs during the dawn of digital automation, and the relationship between information entropy and thermodynamic entropy is now an important part of theoretical physics.
There can be no bad learning efficiency or good learning efficiency.  There can be neither bad performance nor good performance, if we wish to think in logical and scientific terms — only relative improvement of some system configuration with respect to some other system configuration for a very specific set of performance scenarios.
Therefore, without an unambiguous specification of the two hardware, operating system, and software configurations and a fully defined test suite used for relative evaluation, efficiency is meaningless.
Answer: Neural networks require lots of data and training. For most tabular format datasets it is much better to use decision tree based models. Most of the time, simple models are enough to give good accuracy. However neural networks had their test of time. It has only been five to six years since the deep learning revolution started, so we still do not know the true potency of deep learning.


How to set up UncaughtExceptionHandlers for multiple bindings in spring kafka streams?

Question: Right now, I'm trying to access the underlying kafka streams handle by following - https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__apache_kafka_streams_binder.html#_accessing_the_underlying_kafkastreams_object
Was wondering if there is a more idiomatic way to do this. Especially when there are mutliple bindings.
Answer: You can call context.getBeansOfType(StreamsBuilderFactoryBean.class, false, false) to get a map of beanName:factoryBean.
However, you should be careful not to do this too early in the context lifecycle because you may cause premature bean instantiation.
Probably best to do it in a SmartInitializingSingleton.
Comment: Thanks for responding, this did work! There still seems to be a potential race condition, because KafkaStreams only allows exception handlers to be set when its in CREATED state.


iOS 8 removed "minimal-ui" viewport property, are there other "soft fullscreen" solutions?

Question: (This is a multi-part question, I will try my best to summarise the scenario.)
We are currently building a responsive web app (news reader) that allow users to swipe between tabbed content, as well as scroll vertically inside each tabbed content.
A common approach to the problem is to have a wrapper div that fills the browser viewport, set overflow to hidden or auto, then scroll horizontally and/or vertically inside it.
This approach is great but has one main drawback: since the height of the document is exactly the same as the browser viewport, the mobile browser will not hide the address bar/navigation menu.
There are numerous hacks and viewport properties that enable us to get more screen real estate, but none are quite as effective as minimal-ui (introduced in iOS 7.1).
News came yesterday that iOS 8 beta4 had removed minimal-ui from Mobile Safari (see Webkit section in iOS 8 Release Notes), which left us wondering:
Q1. Is it still possible to hide the address bar on Mobile Safari?
As far as we know, iOS 7 no longer responds to the window.scrollTo hack, this suggests we have to live with the smaller screen space, unless we adopt a vertical layout or use mobile-web-app-capable.
Q2. Is it still possible to have a similar soft fullscreen experience?
By soft fullscreen I really mean without using the mobile-web-app-capable meta tag.
Our web app is built to be accessible, any page can be bookmarked or shared using the native browser menu. By adding mobile-web-app-capable we prevent users from invoking such menu (when it's saved to homescreen), which confuses and antagonises users.
minimal-ui used to be the middle-ground, hiding the menu by default but keeping it accessible with a tap -- though Apple might have removed it due to other accessibility concerns (such as users not knowing where to tap to activate the menu).
Q3. Is a fullscreen experience worth the trouble?
It would seem that a fullscreen API is not coming to iOS anytime soon, but even if it is, I don't see how the menu will be kept accessible (same goes for Chrome on Android).
In this case, maybe we should just leave mobile safari as it is, and account for viewport height (for iPhone 5+, it's 460 = 568 - 108, where 108 includes the OS bar, address bar and navigation menu; for iPhone 4 or older, it's 372).
Would love to hear some alternatives (besides building a native app).
Comment: I ran into the same problem on iOS 7, as we're looking to build a web app with swipe/scroll events, but tested out onScroll events on iOS8 Beta 4 and .. they work. http://ios8-scroll-events.heroku.com

Not sure if that helps at all but .. you have that going for you.
Comment: see http://stackoverflow.com/questions/18793072/impossible-to-hide-navigation-bars-in-safari-ios-7-for-iphone-ipod-touch for more details on why minimal-ui can be crucial to some app.
Comment: Ran into the same trouble. At the moment only javascript "fix", as calc() function below is the only answer. Please keep this thread updated, if you know a better decision. Best regards.
Answer: The minimal-ui viewport property is no longer supported in iOS 8. However, the minimal-ui itself is not gone. User can enter the minimal-ui with a "touch-drag down" gesture.
There are several pre-conditions and obstacles to manage the view state, e.g. for minimal-ui to work, there has to be enough content to enable user to scroll; for minimal-ui to persist, window scroll must be offset on page load and after orientation change. However, there is no way of calculating the dimensions of the minimal-ui using the screen variable, and thus no way of telling when user is in the minimal-ui in advance.
These observations is a result of research as part of developing Brim – view manager for iOS 8. The end implementation works in the following way:

When page is loaded, Brim will create a treadmill element.
  Treadmill element is used to give user space to scroll. Presence of
  the treadmill element ensures that user can enter the minimal-ui view
  and that it continues to persist if user reloads the page or changes
  device orientation. It is invisible to the user the entire time. This
  element has ID brim-treadmill.
Upon loading the page or after changing the orientation, Brim is using
  Scream to detect if page is in the
  minimal-ui view (page that has been previously in minimal-ui and has
  been reloaded will remain in the minimal-ui if content height is
  greater than the viewport height).
When page is in the minimal-ui, Brim will disable scrolling of the
  document (it does this in a safe
  way that does not affect
  the contents of the main element). Disabling document scrolling
  prevents accidentally leaving the minimal-ui when scrolling upwards.
  As per the original iOS 7.1 spec, tapping the top bar brings back the
  rest of the chrome.

The end result looks like this:

For the sake of documentation, and in case you prefer to write your own implementation, it is worth noting that you cannot use Scream to detect if device is in minimal-ui straight after the orientationchange event because window dimensions do not reflect the new orientation until the rotation animation has ended. You have to attach a listener to the orientationchangeend event.
Scream and orientationchangeend have been developed as part of this project.
Comment: This really is never ending story. I'm a game developer in HTML and minimal-ui in iOS 7.1 worked just fine - it was the only way to have an app running fullscreen AND at the same time being able to touch in the bottom of the screen. Solutions with page swiping are nice, but not good enough :(
Apple, we need proper implementation of full screen API for games, please.
Comment: @Petr: I couldn't agree more. When This fix was announced in 7.1 we quickly rolled out a new checkout purchase flow which pinned the primary CTA to the bottom of the screen.. this worked and converted great! It felt very "native" and seamless. Which i think is the exact problem. If you think about it, it's not in Apples' best interest for web apps to feel native. It is in fact a direct conflict of interest with their App Store monopoly. This is, IMO, the only valid reason why a feature that makes so much sense was fixed and then intentionally removed. #my2Cents :)
Comment: Seems nice! Can I force minimal-ui without the initial scroll?
Comment: This is way more expansive than my original answer, marked as new answer until even better solution arrives :)
Comment: @PetrUrban I am convinced that Apple would prefer you to publish your game as a phonegap app than allow you to serve over the web. Their recent decision to allow ad blockers for safari cements this idea.
Comment: @GajusKuizinas actually, in ios9.2(iphone5s - but i guess more devices) I can detect the minimal-ui state: `window.innerHeight` will have different value than `document.documentElement.clientHeight`.
Comment: @INT, not that I know of. There used to be a way using programmatic scrolling, but it does not work anymore.
Comment: @JonnieJS You still want to support older phone and this is not all Scream does – it also forces user to stay in fullscreen mode.
Comment: @GajusKuizinas Thanks for solution. It works for me only in Safari, not in Chrome. Do you expect same or it's just in my case?
Comment: @zur4ik No, Chrome is not supported. See this thread for more details https://github.com/gajus/scream/issues/1
Comment: As of April 2020, the demo link for Brim doesn't work, and there are multiple outstanding issues, including for iPhone X.
Answer: Since there is no programmatic way to mimic minimal-ui, we have come up with a different workaround, using calc() and known iOS address bar height to our advantage:
The following demo page (also available on gist, more technical details there) will prompt user to scroll, which then triggers a soft-fullscreen (hide address bar/menu), where header and content fills the new viewport.
<!doctype html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Scroll Test</title>

header

content

scroll to soft fullscreen

Answer: Just say goodbye to minimal-ui (for now)
It's true, minimal-ui could be both useful and harmful, and I suppose the trade-off now has another balance, in favor of newer, bigger iPhones.
I've been dealing with the issue while working with my js framework for HTML5 apps. After many attempted solutions, each with their drawbacks, I surrendered to considering that space lost on iPhones previous than 6.
Given the situation, I think that the only solid and predictable behavior is a pre-determined one.
In short, I ended up preventing any form of minimal-ui, so at least my screen height is always the same and you always know what actual space you have for your app.
With the help of time, enough users will have more room.

EDIT
How I do it
This is a little simplified, for demo purpose, but should work for you. Assuming you have a main container
html, body, #main {
  height: 100%;
  width: 100%;
  overflow: hidden;
}
.view {
  width: 100%;
  height: 100%;
  overflow: scroll;
}

Then:

then with js, I set #main's height to the window's available height. This also helps dealing with other scrolling bugs found in both iOS and Android. It also means that you need to deal on how to update it, just note that;

I block over-scrolling when reaching the boundaries of the scroll. This one is a bit more deep in my code, but I think you can as well follow the principle of this answer for basic functionality. I think it could flickr a little, but will do the job.

See the demo (on a iPhone)
As a sidenote: this app too is bookmarkable, as it uses an internal routing to hashed addresses, but I also added a prompt iOS users to add to home. I feel this way helps loyalty and returning visitors (and so the lost space is back).
Comment: Your demo doesn't work on iOS8, according to my iPhone 5.
Comment: To disable minimal-ui seems very reasonable to me. Please, include short description for how to do that!
Comment: You're right, I added a little how-to. Many other ways will work.
Comment: Thank you for letting me know, it must be some update because it used to work. Are you in safari? What do you mean exactly with it doesn't work?
Comment: I wanted to go full screen on mobile. I assume #main contain all the elements you want to display. May I know what is .view is used for?
Answer: The easiest way I found to fix this was to set the height of the body and html elements to 100.1% for any request where the user agent was an iphone. This only works in Landscape mode, but thats all I needed.
html.iphone,
html.iphone body { height: 100.1%; }

Check it out at https://www.360jungle.com/virtual-tour/25
Comment: Thanks @Stephen. height: 100.1% helped me.
However, when I opened https://www.360jungle.com/virtual-tour/25 on iPhone(iOS 11.1.1) Safari and clicked the buttons in the bottom, the address and tool bar appeared. This is because the buttons are too close to the end of display. I guess it would be better move them somewhere else on mobile mode.
Answer: The root problem here seems that iOS8 safari won't hide the address bar when scrolling down if the content is equal or less than the viewport.
As you found out already, adding some padding at the bottom gets around this issue:
html {
    /* enough space to scroll up to get fullscreen on iOS8 */
    padding-bottom: 80px;
}

// sort of emulate safari's "bounce back to top" scroll
window.addEventListener('scroll', function(ev) {
    // avoids scrolling when the focused element is e.g. an input
    if (
        !document.activeElement
        || document.activeElement === document.body
    ) {
        document.body.scrollIntoViewIfNeeded(true);
    }
});

The above css should be conditionally applied, for example with UA sniffing adding a gt-ios8 class to .
Comment: What does this JS exactly do?
Comment: If you are referring to `scrollIntoViewIfNeeded`, it is a non standard derivation of `scrollIntoView` (https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView). As the name implies, the method scrolls the element into the view. `true` parameter says to align the view with the top of the element. This in effect should prevent you from scrolling. The implementation is flawed though.
Answer: I want to comment/partially answer/share my thoughts. I am using the overflow-y:scroll technique for a big upcoming project of mine. Using it has two MAJOR advantages.
a) You can use a drawer with action buttons from the bottom of the screen; if the document scrolls and the bottom bar disappears, tapping on a button located at the bottom of the screen will first make the bottom bar appear, and then be clickable. Also, the way this thing works, causes trouble with modals that have buttons at the far bottom.
b) When using an overflown element, the only things that are repainted in case of major css changes are the ones in the viewable screen. This gave me a huge performance boost when using javascript to alter css of multiple elements on the fly. For example, if you have a list of 20 elements you need repainted and only two of them are on-screen in the overflown element, only those are repainted while the rest are repainted when scrolling. Without it all 20 elements are repainted.
..of course it depends on the project and if you need any of the functionality I mentioned. Google uses overflown elements for gmail to use the functionality I described on a). Imo, it's worth the while, even considering the small height in older iphones (372px as you said).
Answer: It IS possible, using something like the below example that I put together with the help of work from (https://gist.github.com/bitinn/1700068a276fb29740a7) that didn't quite work on iOS 11:
Here's the modified code that works on iOS 11.03, please comment if it worked for you.
The key is adding some size to BODY so the browser can scroll, ex: height: calc(100% + 40px);
Full sample below & link to view in your browser (please test!)

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CodeHots iOS WebApp Minimal UI via Scroll Test</title>

header zone

content

scroll to soft fullscreen

Full example link here:
https://repos.codehot.tech/misc/ios-webapp-example2.html
Answer: It is possible to get a web application running in full screen in both iOS and Android, it is called a PWA and after mucha hard work, it was the only way around this issue.
PWAs open a number of interesting options for development that should not be missed. I've made a couple already, check out this Public and Private Tender Manual For Designers (Spanish). And here is an English explanation from the CosmicJS site
Answer: I haven't done web design for iOS but from what I recall seeing in the WWDC sessions and in documentation, the search bar in Mobile Safari, and navigation bars across the OS, will now automatically resize and shrink to show more of your content.
You can test this in Safari on an iPhone and notice that, when you scroll down to see more contents on a page, the navigation/search bar is hidden automatically.
Perhaps leaving the address bar/navigation bar as is, and not creating a full-screen experience, is what's best. I don't see Apple doing that anytime soon. And at most they are not automatically controlling when the address bar shows/hides.
Sure, you are losing screen real estate, specially on an iPhone 4 or 4S, but there doesn't seem to be an alternative as of Beta 4.
Comment: `I haven't done web design for iOS` - if you're doing web design, you do it for every platform. Because the web is on every platform.
Comment: @Sumit I know that working on web is universal, but each browser and their underlying frameworks have specific CSS attributes. So Chrome may have some attributes unavailable to Safari and FireFox, and viceversa.
Comment: I knew this feature of iOS7+, but see my explanation above: *since the height of document is exactly the same as browser viewport, mobile browser will not hide address bar/navigation menu*, as no scroll takes place on document-level.
Comment: This may be something of a limitation now that Beta 4 has removed that feature. It's possible and likely that Apple is controlling the address bar automatically and keeping developers from accessing it.


Can anyone help identify this spigot?

Question:
The valve stem is broken off. I would like to find a replacement valve stem because removing the entire faucet is impossible without replumbing.
Answer: There isn't any way to identify this exact valve but they are pretty much available in home stores. Turn off the water to that spigot and remove the top nut and take out the valve stem. Bring it to your home store or to a plumbing supply store and look for a replacement. This doesn't appear to be a regular gate valve so you have that going for you. It looks like you'd be able to remove that spigot and just replace it. You'd probably have to secure the pipe on the other side of the wall while removing the spigot.
Answer: There are signs that this is threaded onto a pipe nipple sticking out of the wall. It's designed to take a wrench here. Now that being said, it looks like it's been on there for decades. I would try it gently and hope for luck. Is there any way to get at the back side and steady that while you try to turn this off?

Can anyone help identify this spigot?


Married Filing Jointly & one spouse has employer 401K. Would each still be able to contribute to a Traditional IRA?

Question: The husband participates in his employer's 401K, while the wife is unemployed. Assuming this couple does not exceed the AGI or MAGI limits for a Traditional IRA, will each of them be able to contribute to a Traditional IRA?
Answer: Provided that you had earned income in 2013, you can always open a
Traditional IRA for 2013 (or make a contribution for Year 2013 to an existing
Traditional IRA) as long as you were under age 70.5 on December 31, 2013.
If you did not have earned income in 2013, you can nonetheless make
a contribution to your Traditional IRA as long as your spouse had earned
income, you are under age 70.5, and you file a joint return with your
spouse.   What is restricted
is the ability to deduct the amount of the contribution from current
income, and that ability is determined not only by whether you are
covered by a retirement plan at work (even if you have chosen to not
participate in the plan) and your income level (which you are already aware of)
but also your tax filing status.
From Publication 590 (edition dated 1/6/2014) from the IRS

For 2013, if you are covered by a retirement plan at work,
  your IRA deduction will not be reduced (phased out) unless
  your modified AGI is:

More than $59,000 but less than $69,000 for a single individual (or head of household),
More than $95,000 but less than $115,000 for a married couple filing a joint return (or a qualifying widow(er)),

or

Less than $10,000 for a married individual filing a separate return.

(Note: these numbers are scheduled to increase slightly for 2014 contributions).
If you do not meet these requirements, some or all of your Traditional
IRA contribution will not be deductible from your current income. The
nondeductible part of the contribution can stay in your IRA if you
like, and if you leave it in there, it
becomes part of the basis (the sum of the
post-tax contributions) of the IRA . The basis
amount is not taxed when you withdraw it since you have already
paid tax on it but any earnings
from the basis that have accumulated within the IRA are taxable
when withdrawn. You need to file Form 8606
with your income tax return to report any changes in basis to the IRS.
So, suppose that you are not age 70.5 as yet, and you are earning
mucho big bucks so that none of your Traditional IRA contribution for Year 2013
is deductible.  Your spouse has no earned income but nonetheless
made a contribution to the spouse's IRA and you are filing a joint return
for Year 2013. @JoeTaxpayer clarifies OP Geo's question asking

"Is the spouse's IRA contribution deductible even if yours isn't?"

The answer is, "It depends on what mucho big bucks means" Publication 590
says

If you either live with your spouse or file a joint return, and your spouse is covered by a retirement plan at work, but you are not, your deduction is phased out if your modified AGI is more than $178,000 but less than $188,000. If your modified AGI is $188,000 or more, you cannot take a deduction for contributions to a Traditional IRA.

(Note: these numbers are also scheduled to increase for 2014).
Thus, it would appear that if the modified AGI on your joint
return is more than $115K but less than $178K, then you
cannot deduct your IRA contribution but your nonworking spouse
(or even a working spouse who is not covered by a retirement
plan at work) can deduct the IRA contribution.  Hmmmm,
weird twist in the rules that I never knew existed.
Comment: Thanks for the answer. so if we meet the publication 590 from the IRS, then the couple will be able to deduct the IRA contribution from their income?
Comment: To clarify - asking - if the worker makes $$toomuch, can stay at home spouse still deduct IRA?


override manager approval in infopath form

Question: I have an infopath form on sharepoint 2013. The form needs to be approved by a manager who is on leave. What can i do to set the approval or override the approval to make the form workflow continue?
Answer: Is the form workflow a SharePoint Designer 2010 platform workflow?
If Yes, Please make sure the setting is unchecked for the approval action:

Then sign in your site using a site collection administrator and approve the task.
have a try and let's know the result.


What Means the Final Option in Bump Fee / Increase Fee Electrum Wallet Option

Question: Hello I want to know what will happen if i put my transaction as Final can saves fee or no?
Answer: Selecting final will disable RBF for the transaction and you will not be increase the fee anymore.
Example: I did a transaction 7d1a7ecd1a68443c07f89f38180d3f3dc945edb2784ebfb7f7c113842d7d8509 with fee rate 1 sat/vByte, increased the fee rate to 3 sat/vBbyte and replace the transaction with d47e59db69c91f3e653da9c5ed0e0f9fc8fdc4422a4e8650d4d6b66c1db60f18 and increased the fee rate again to 5 sat/vByte but selected final this time so RBF was disabled for this transaction 2a7241f60d301ccda31a7be875d58610637534fe477e8c76d0e67bc31ef5824f
Cannot increase the fee rate anymore using RBF because it was disabled. Either I can wait for it to get confirmed or use CPFP.
Comment: what is the utility of this option? i did a transaction months ago with 7 sat/vByte and took 1.5 months for confirm. if i can't not increase my fee i see very serious problems.
Comment: You can still increase fee by CPFP for many transactions which is a workaround. Option to disable RBF for a transaction is good although I am not sure about usecase. It is unchecked by default.


What would an impact from kinetic bombardment be like?

Question: One of the ideas for a space weapon back in the Cold War was dropping a tungsten rod from orbit onto an enemy target. The Wikipedia article suggests a 20 foot long, 1 foot diameter tungsten rod—about 8300 kg of tungsten, if it were cylindrical. What would that sort of impact do to a target? Since it's a small diameter 'bullet', would the damage be highly localized, or would the damage be mostly the result of a shockwave?
Comment: *"Since it's a small diameter 'bullet', would the damage be highly localized"* An explosion is very localized too: the energy is all released where the bomb is, but the effects can be felt a long way off if the bomb is energetic enough. Work out how much energy a 8 ton object has at, say, 5 km/s. Express the result in tons of TNT equivalent so you can compare it to small nuclear explosives.
Answer: I am going to write an estimation of the effect of 8000 kg falling from LEO to solid ground .
As it's a homework question, I won't work out any figures, as I feel the OP should check my assumptions (please, please do :) and perform the calculation.
My assumptions are:

The mass of the rods is 8000 kg.
They will fall vertically, transitioning from horizontal orbital motion to vertical by appropriate weight distribution and with stabilising fins fitted at the far end of each rod.
The rods are made of tungsten, which has a melting point of 3,400 degrees Celsius,  comparing this to the maximum re-entry temperature of an Apollo space capsule (around 2700 degrees Celsius ), implies that air friction will not melt them or cause any loss of mass.
They should fall with 0 kph initial vertical velocity  and end with a ground velocity equal to their terminal velocity. I am assuming that, at the time of the drop, all spacecraft velocity is effectively horizontal.
Assuming  a diameter of 1 metre cross section (the OP says 1 foot, but to maintain stability during the drop, and to transition from horizontal to vertical motion effectively, I think the front of each rod will need to be biased with more mass  to the front). This gives us a cross sectional area of $3.14 × .5^2 = 0.785 m^2$
So what is the terminal velocity $V_t$ of a rod with a frontal cross sectional area of $0.785 m^2$?

From Terminal Velocity Wikipedia
$${\displaystyle V_{t}={\sqrt {\frac {2mg}{\rho AC_{d}}}}}$$
where
${\displaystyle V_{t}}$ is terminal velocity,
${\displaystyle m}$ is the mass of the falling object,
${\displaystyle g}$ is the acceleration due to gravity,
${\displaystyle C_{d}}$ is the drag coefficient,
${\displaystyle \rho }$ is the density of the fluid through which the object is falling,
${\displaystyle A}$ is the projected area of the object.
Taking $$m = 8000 kg, C_d = 0.005, g = 9.8 m/s^2, \rho  = 1.225 kg/m^3, A = 0.785 m^2$$
I have assumed 0.005 as the drag coefficient of a flat plate parallel to the flow ($Re \ge 10^6$)  and assumed average air density.
The K.E. is then $\frac  {8000 × V_t^2}{2} $
This K.E. is then the energy available to act effectively as an explosive and can be compared to other explosions using Energy Released, Orders of Magnitude
Comment: I get 5716 m/s, or Mach 16.8; with 1.3e11 J of energy, or several times more powerful than the largest non-nuclear weapons developed to date. The Wikipedia article suggests an impact speed of Mach 10, which is 2.8x less kinetic energy, but still on the order of magnitude of the most powerful non-nuclear weapons. Thanks!
Comment: Just check the Reynolds number, wikipedia says 0.001 for Re  less than 6. But I can't remember Re calculation method. Either way. I think I would rather not be in the area when the rods from god arrived. Regards


How to determine the default shared library path?

Question: Some of distro is /lib64 some of them is /lib/x86_64-linux-gnu, there maybe other format. Is there a uniform way to determine this in bash?
Answer: Usually you can get this information by reading /etc/ld.so.conf.  That file may include other files; on my system, it includes all files in /etc/ld.so.conf.d.
Note that there are multiple directories that will be searched.  Note also that this does not affect the path of the dynamic linker, ld.so, which is embedded in the binary and is usually uniform for a given architecture and ABI.
Answer: First you should figure out the goal to specify the path. It can be one of:

Where to search already installed libraries.
Where to install your libraries, to make them visible to linkers or runtime loaders.
Where to install your libraries, to conform to distro policy.

For (3), the only real source is distro policy description that is a human readable document. You can't determine this from /etc/ld.so.conf, ldconfig cache, etc., because you can't find out what location is preferred and what one is legacy; some hint on this can be got by counting libraries but this is definitely not work for shell script.
For (1) and (2), read and interpret /etc/ld.so.conf (but this isn't trivial because it usually includes references to other files or wildcards of directory contents). You may also parse output of ldconfig -p and accumulate listed directories. But beware of possible conflicts with existing libraries and of need to remake ldconfig cache after changing library set.


UTM Parameters in Salesforce Marketing Cloud Email Links

Question: We have utm-parameters attached to email links for emails going out through marketing cloud. Where are these parameters configured in the marketing cloud?
Answer: Basically, you will need to create a case with Marketing Cloud Support with a request to apply the utm-parameters to your account in order to have them appended to email links.
Comment: Thanks @zeljazouli! That was my understanding! I just wanted to make sure that they are configured on the back end as they were not visible on the UI anywhere. We already have them configured and they are set at the email level as _AdditionalEmailAttribute(n)


How to find properties are not modified or change?

Question: I have viewmodel which i am binding with my view call "EditProfile". Now once the user click on the "EditProfile" link from the menu bar I load all the profile information by calling get restful service and user can see his/her profile.
User can change any field they want but I want to post only fields that are changed by User.
I know how to compare two properties but don't know how to pull only modified properties from the viewmodel. Have anybody arrived to this situation before?
Properties in my viewmodel are:
 public class UserViewModel
 {
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string Email { get; set; }
  public string Profession { get; set; }
 }

Answer: In the past I implemented INotifyPropertyChanged for the ViewModel.  And I logged which property's changed after the PropertyChanged event fired.
Comment: do you have the code sample for this scenario as you have done it before?
Answer: Why not take an alternative approach - post everything (so the model is available) and simply have "IsDirty" properties on your objects that are smart enough to submit only changes to the database (like the entity framework does by default)
You can simply form your own jQuery .post() parameters, but unless you have a ton of data - why? It makes for a difficult to read view model (how do you know what is posted under what scenarios) so the typical approach is to post separate view models or post everything which in my opinion for basic forms is easier.


Is the use of standard deviation built on the assumption of normal distribution?

Question: I'm wondering if the standard deviation was always built on the assumption of a normal distribution. In other words, if the sample is not normally distributed, then should using the standard deviation be considered as a mistake?
Comment: A uniform distribution has a standard deviation, how could this be a "mistake"?
Comment: Not necessarily but using the standard deviation to describe skewed distributions can make less sense. Maybe that's where your question is coming from.
Comment: Why would it be? The standard deviation is just a measure of how much deviation there is in a set of numbers, you can find the standard deviation of "1, 2, 5, 14". Standard deviation wasn't "built" by anyone, it's just a statistical property.
Answer: No. The use of standard deviation does not assume normality.
The variance of a random variable is defined as $\operatorname{Var}(X) = \operatorname{E}[(X - \operatorname{E}[X])^2]$. As long as the variance exists, the standard deviation also exists. The standard deviation is the square root of the variance.
You can use the variance $\operatorname{Var}(X)$ or standard deviation any time that the two exist. The variance comes up in countless situations.
There are special theorems, lemmas etc... though for the special case where $X$ follows the normal distribution.
A common use of standard deviation that does depend on normality:
If $X$ follows the normal distribution, then there's approximately a 95% probability that $X$ falls within two standard deviations of the mean.
That statement is true if $X$ follows the normal distribution (and several others) but it isn't true in general.
A common use of the variance that does not depend on normality:
Let $X$ be a random variable with mean $\operatorname{E}[X] = \mu$ and variance $\operatorname{Var}(X) = \sigma^2$. Define $X_i$ for $i=1, \ldots, n$ as independent random variables, each following the identical distribution as $X$.
Define the sample mean based upon $n$ observations as:
$$\bar{X}_n = \frac{1}{n} \sum_{i=1}^n X_i$$
By the Central Limit Theorem, $\bar{X}_n$ converges towards a normally distributed random variable with mean $\mu$ and variance $\frac{\sigma^2}{n}$. (More precisely $\sqrt{n}\left( \bar{X}_n - \mu \right)$ converges in distribution to $\mathcal{N}(0,\sigma^2)$ as $n \rightarrow \infty$.)
The practical implication is that the sample mean $\bar{X}_n$ for large $n$ can be treated as normally distributed random variable whose variance $\frac{\sigma^2}{n}$ is a function of the variance of $X$. (Recall $\operatorname{Var}(X)=\sigma^2$.) And this result does not require that $X$ be normal. (It does require a lower $n$ to work well if $X$ is closer in some sense to the normal distribution though.)
The Central Limit Theorem is a ubiquitous tool that uses the variance of $X$ and does not need $X$ to follow the normal distribution.
Comment: Chebyshev's Inequality is not specific to the variance: an equally useful version exists for every absolute moment with power greater than $1$.  I would therefore suggest looking elsewhere for reasons why the SD is important and (almost) universal, such as the *unique* role played by variance in the Central Limit Theorem.
Comment: +1. But note that while variance (together with the mean) gives a complete description in the normal case, for nonnormal distribution this might no longer be the case, and other d3scriptors of the data might be much better
Comment: @whuber Yeah, I had started writing a CLT example (and now I've added it). The CLT is an extremely practical reason to care about the variance.
Answer: In the standard IID setting, under suitable regularity conditions, $S^2$ (as well as $\hat{\sigma}^2_{ML}$) is a strongly consistent estimator of $\mathrm{Var}[X_i]$. This follows directly from the Strong Law of Large Numbers. A normal model assumption is not needed.


Ookla not showing the desired speed

Question: I opted for 40 Mbps speed but Ookla showing 33.42 or sometimes even less. I use a Netgear WNR614 N300 wifi router. What could be the possible reasons? I am using Windows 10.
Comment: Connect with cable and then test.
Answer: There are lots of possible reasons, however thr most likely are your ISP (or uour ISP data pool for your class of service) is congested and is a bottleneck or other computers on your network are active and using data.
Its also possible, but less likely that your WIFI is causing the issue, pissibly due to interference. You csn rule that out by plugging your PC directly into the router using Ethernet.
I point out that your result is not actually that bad.

Ookla not showing the desired speed


Uv vis and fluorescence spectroscopy: sensitivity

Question: Is there any reason why fluorescence spectroscopy is said to be more sensitive than Uv-Vis?
Answer: Fluorescence is a 'zero background' or absolute type of measurement meaning that single photons can be measured against a 'dark' background so the sensitivity is huge, and limited by the fraction of light caught and efficiency of the detector.
Absorption is a relative measurement as it is the difference in two large numbers, one the light intensity with no sample $I_0$ and the other when the sample is present I. In terms of photons these intensities are huge, say $I_0=10^6$ and a 1% change would reduce the number of photons to $10^6-10^4$; still a large number and so the absorption measurement is looking for the small difference in two large numbers. This measurement is limited by noise in detectors and other electronics.   (Its a bit like trying to weigh the captain of a ship by weighing the ship with him standing on the deck and then when he is not there.)
Comment: I'll just add that the correct mathematical abstraction for sensitivity is the signal to noise ratio.
Comment: yes I should have added that point.
Answer: In fluorescence, what is detected is really photons emitted.  The measure is done in absolute term (versus 0 , the dark) and the response can be easily amplified.
Conversely, in absorption is a difference that must be measured. And this can of course be arbitrarily tiny.
It is like massing a sample. Is easy to weight a mg than detecting a mg difference among two " about 10 kg " samples.
This general consideration is exacerbated by other practical details, as listed in the  answer by Dan.
Also your consideration about geometry applies, which again is dictated by the above.
Edit: Porphyrin answers appeared after I submitted this. Else I wouldn't have answered as this is basically a duplicate.
Answer: Absorbance may occur from non-analytes, while fluorescence is often quite specific to an analyte or a fluorophore-tagged analyte. Also, instrumental setup could play an effect. UV-Vis specs are often horizontal in terms of incident beams, sample, and the detector. Fluorescence specs are often at 90 degrees to "extract" the fluorescence from the sample to the detector. If you are only "extracting" what you are interested in, I'd imagine the S/N would be better, yielding higher sensitivity.


how to programmatically identify Salesforce Governor limits are hit? can i create a workflow each time when governer limits are hit?

Question: I need a way to programmatically identify Salesforce Governor limits and get an alert when the limits are hit.
Comment: You might want to vote on [this idea](https://success.salesforce.com/ideaView?id=08730000000l5BWAAY) of mine, which the purpose of is to help with situations like this.
Comment: This is a really complicated problem to approach, and I'd recommend making an [edit] to your post to explain whats hitting a limit, and what else you've tried to avoid hitting that limit.
Answer: You can use the Limits class to determine a given limit and how close you are to reaching that limit, but you still will need some time, dml, emails, to handle hitting the limit, meaning you need to stop at say, 90% if your limits, making the rest of the code have to do 100% of the work in 90% of the time.
Plus, there are certain limits you cant access or handle, and if you miss adding a limit handler to a method, and it hits the limit, you have no notice and crashed code. You'll have to cover all your code in calls to check your limits (consuming more of your limits), increasing your dev time, and requiring extra work for testing.
You could do this, but I really don't think you should. Instead of warping your codebase to handle hitting limits, modify the code thats hitting limits to stop hitting the limit.
Answer: This is a very broad subject, but it's important to start with a distinction. Some limits are transaction-based, while others are based on a rolling 24-hour window or other threshold outside the limits of a transaction.
For example, the CPU time limit and SOQL row limit are transaction limits: they apply specifically and exclusively within the boundaries of a single transaction, and cannot be observed from outside the transaction. The Limits class includes methods like getCPUTime() and getLimitCPUTime() that allow you to inspect (from within a transaction) your progress towards limits. Your code can use this information to make decisions like firing a new chained Queueable to continue long-running processing before you hit the limit.
However, once the transaction limit itself is hit, you cannot run any further code in that transaction that would consume the affected limit, including code that would fire an alert. That information may be surfaced through the UI (if, for example, a trigger times out on a record save) or through the Apex Jobs interface in Setup, but you can't build functionality in to do alerting there (unless you were to write scheduled code to monitor AsyncApexJob objects, which I think would not be useful - by the time you get a lot of limits-related failures, your monitoring code is likely to fail too).
Extra-transaction limits, like the Async Apex Executions limits, often operate on a rolling 24 hour window. To take that limit as an example, you can execute a certain number (call it N) of asynchronous Apex operations across the last 24 hours. It's not a calendar day, so at 2pm today it means that your limits consumption is calculated from 2pm yesterday to right now.
While you can also observe some of these limits within a transaction, these extra-transaction limits can effectively be sampled by running a scheduled Apex job that inspects the limits using either the Limits class or by calling out to the REST API. That job can then save samples to a custom object, against which you can run reports or dashboards, write workflow rules or triggers, and so on, or your scheduled job can directly perform alerting, like sending an email. I've built such a monitoring solution in the past and found that it works pretty well.
It's still important to note though that once the limit is hit, it applies to all code, including your monitoring code. If you hit your Async Apex limit, your monitoring code probably will not go off, so you always want to build an alerting threshold that's low enough that your code will have time to warn you before the limit is hit.


How to get the missing library and its collection with Python?

Question:
As my project folder structure and naming convention were reorganized, missing libraries and collections occurred.
To recover them collectively, I'm trying append into list the missing libraries and collections, but the API seems to have no properties related to missing.
Maybe I couldn't find it in the API?
Or is there any way to get them with other programming techniques?
Answer: Look at the library filepaths.
Iterate over the libraries, for any that do not exist in saved filepath, convert the filepath and reload.
<code>import bpy
from pathlib import Path

for lib in bpy.data.libraries:
    p = Path(bpy.path.abspath(lib.filepath))
    if not p.exists():

        print("Missing:", lib.filepath)
        # convert filepath
        lib.filepath = "/some/converted/path"
        # with new valid path
        lib.reload()
</code>
Comment: It's very helpful!
Meanwhile, is there a way to detect a disconnected collection? (Marking the red circle of the attached image)


My mac laptop randomly plays music and won't stop

Question: My mac randomly plays my iTunes music while I'm watching a movie or just using my laptop. I can't stop it because iTunes is never actually open. I've tried opening iTunes and playing music but they both seem just to play over the top of each other. The only way to stop the music is to restart the laptop
Comment: Are you using an Apple remote?
Comment: It's more than odd. Did you try to scan against malware and some viruses? Let's do that first to narrow down possible circumstances.
Comment: Are you sure the music is coming from iTunes, not Spotify or other sources? Perhaps you could post a list of processes running on your computer. Open a Terminal window, and run `ps aux`. Copy the resulting output, and edit it into your answer.
Answer: Are you wearing Apple EarPods/Earphones with an inline remote? If you press the center button on them anytime it will play a song from iTunes.
Answer: Are you using your Apple TV remote? Older Mac laptops have an IR sensor that will respond to this.
If so, see "Turn off Macbook Pro IR sensor" for instructions on how to disable this functionality.


The site is experiencing technical difficulties. Please check your site admin email inbox for instructions

Question: I was updating my plugins, after one plug in update went a bit wrong my site was stuck in maintenance mode, the solution I found online was to delete the .maintanence file, which I did. But straight after that I got this message: The site is experiencing technical difficulties. Please check your site admin email inbox for instructions. How do I fix it now?..
Comment: did you tried removing the plugin (rename the plugin folder to plugin-name001)?
Answer: You should troubleshoot your website for plugins.
As you are unable to access your WordPress admin area so please try to access your file manager in cPanel or access public_html directory via FTP.
Go to wp-content/ Directory them rename plugins/ directory to pluginsbackup/ now try to load your site. If this works that means you have problem with a plugin.
If problem is with plugin change back the directory name pluginsbackup/ to plugins/ Enter in plugin directory. Now rename each plugins directory by placing backup at end of that directory name.
Once you have changed all plugins directories names, start getting original directory names one by one and make sure you check the website if that's still working after each plugin start working. As soon as you see which plugin is making problem just delete that plugin.
Source The site is experiencing technical difficulties.
If you can't figure out what's wrong please turn on the wp debug mode so you can get details of error. Edit your wp-config.php from WordPress root using FTP. And
<code>   >> Find
define('WP_DEBUG', false);

And replace with
define('WP_DEBUG', true);
</code>
Once you turn on the wp debug mode you are not able to see the details of issue, weather is related to some missing file or some plugin is producing the FATAL error you can track and apply appropriate fix. Thanks. Once problem is fixed don't forget to turn off the debug mode in wp-config.php
Answer: Use your cPanel access and rename that specific plugin folder with any name. If you still don't get control back to your site then rename the plugin folder and then activate one plugin at a time to close down on the faulty plugin.
Comment: Thank you all! It is all sorted now. I tried to rename the plugin folder and it did nothing, but wgen I rnaimed the folder with the plugin which update went wrong it sorted the technical issue. Thank you!


Sybase ASE lock table to disallow users insert values

Question: I need to disallow users to insert values in some table, for example for a 5 mins. Seems I should use at isolation clause but can't figure out how to use it. Thanks
Comment: Locking a table for 5mins will block other transactions. What are you trying to achieve by exclusively locking a table for 5 mins ?
Answer: What operation(s) are you trying to perform on the table? Some DML? Maintenance (eg, reorg, (re)indexing, adding/changing RI)? Modifying DDL?
If just doing DML, consider:
<code>begin tran
lock table <table_name> in exclusive mode
--perform DML--
commit (rollback?) tran
</code>
'lock table/exclusive mode' (attempts to obtain an exclusive table-level lock), once completed (may have to wait for other locks to be released before successfully obtaining the exclusive lock), means only your current session has access to the table (minus anyone using dirty reads).
Since the 'lock table' command is transactional in nature you need to wrap it inside a transaction hence the 'begin/commit tran'. [If not wrapped in the 'begin/commit tran' then the command would still obtain the exclusive table lock but then immediately release it.]
If you're looking to perform maintenance and/or DDL operations ... there's no easy way to limit access short of denying/revoking access to the table, database or dataserver.


On Linux, vim would search #include files automatically for auto-completion but on Windows not

Question: I use vim on Linux and Windows. Strangely, on Linux (Ubuntu), when I write C/C++ code, vim would search the included file for auto-completion (Ctrl-P), even if I don't add anything related in my .vimrc. But on Windows, it doesn't behave that way. I have tried to add set path+=$INCLUDE in my _vimrc ($INCLUDE is in my path and it's the path of the C/C++ header file), but that doesn't work either.
Comment: What is the output if you run `:set complete?`? If there is no `i` for searching included files for autocompletion, adding `set complete+=i` in your `_vimrc` might help. Does your problem happen with exactly the same `vimrc` file on Linux and Windows? Also, do you by chance happen to use tpope's sensible.vim?
Comment: What happens if you use an explicit path, instead of `$INCLUDE`, and that path is not the path to the file, but to the include *folder*? An equivalent to Linux's `/usr/include` path. Things should be OK when you can place cursor on a line such as `#include ` and `gf` can open that file.
Comment: @VanLaser yes, it work.
Comment: @cbaumhardt No I don't use the same vimrc file on Linux and Windows, because on windows I add something like `behave mswin`. But besides those operating-system related directives, all other are the same. And I am not using `sensible.vim`. Have you ever had the same problem?
Answer: with the help from VanLaser in the comments above,I eventually find out how to do that on Windows:
set path+=C:/Program\\\ Files\\\ (x86)/Microsoft\\\ Visual\\\ Studio\\\ 12.0/VC/include
set path+=C:/Program\\\ Files\\\ (x86)/Microsoft\\\ SDKs/Windows/v7.1A/Include

just add these two lines in my vimrc then it would work. Those two C:/xxxxx are my system %INCLUDE% path, where all the necessary C/C++ header files located. Note the different version of Visual Studio and change those two path correspondingly. Also note that those \\\ are necessary to escaped the space(see :h 'complete' (not :h complete()) for more information).
Also, make sure that option i is in your complete options(use set complete? to see, and the default is complete=.,w,b,u,t,i. See :h 'complete')
Comment: If you don't like the triple slashes you could also do `let &path = path . ',C:/Program Files (x86)...,C:/...'`, using a single quoted literal string after a `let` with string concatenation. The two C: bits are your two paths and there's a comma separating each path including these from what's existing.


MPMoviePlayerController thumbnailImageAtTime returns empty UIImage

Question: I'm working on an iPad app that plays a video with MPMoviePlayerController and - based on user interaction - uses thumbnailImageAtTime to try to grab an image from the video.
I've tried using both options MPMovieTimeOptionNearestKeyFrame and MPMovieTimeOptionExact. Regardless of which option, I find that I sometimes get back an empty UIImage. That is to say the UIImage returned appears to be a valid object (!nil) but when I attempt to display this image (in a UImageView) I see nothing.
At other times, it works fine and returns a good thumbnail.
In trying to narrow down the circumstances, the best I can say is that the problem is more likely to appear the first time I call it (ie. early in the movie). Once it has failed, it is more likely to work on successive calls.
In each case, after I call thumbnailImageAtTime I stop the movie player and release it. Later, I re-create the movie player object and load the same movie and use setInitialPlaybackTime to get the movie playing at the same time it was it when the thumbnail was created.
After that, if I call setInitialPlaybackTime again, it almost always works - but not always!
Has anyone else seen this behavior or have a clue as to why this is happening?
My next step is to create a sample app which plays a video and has a button "Get Thumbnail" which will call setInitialPlaybackTime and show the thumbnail on the screen WITHOUT stopping the player each time, as an experiment. Alternately, some input from you might help me avoid all that drudgery!
Thanks!
Answer: Ok, I was mistaken, the problem was the view the image was placed in had its alpha set to 0 accidentally. MEA CULPA and Nevermind...


How long will food last in a refrigerator that is turned off?

Question: We will be having a power outage in our building soon and our fridges are pretty full. The power will be off for about 10 hours. Will our food last safely during this time?
Comment: I'm not sure how long, but don't open the fridge during that time; keeping it shut increases the lifespan.
Comment: This really depends on the efficiency of the unit that you have. It depends very much so on that.
Answer: [Edited] I think 10 hours would be safe enough for most food: the first couple of hours the fridge will still be quite cold, and after that it takes more than a few ours for most food to spoil. When I leave milk out of the fridge for three hours at room temperature (say, 20 °C), nothing happens. I do this often. And the temperature inside the fridge will never reach room temperature in those 10 hours. When it is really hot in summer, it might spoil after 2 hours outside the fridge, but otherwise it takes much longer.
Cheese, food in jars, sauces, leftover cooked food: none of these are more sensitive to spoiling than milk. Fresh herbs are probably equally sensitive. Eggs are much less sensitive. The most sensitive kinds of food I can think of are probably raw meat and raw fish without preservatives. Smoked or salted meat and fish do not count: they can be kept much longer. I think even raw meat and fish will pull through, but you might want to apply the following tips to be sure.

Tip 1: put as much material in your fridge as possible, a day before the outage. That will "absorb the cold" that your fridge feeds it while power is still on. Then, once power goes out, the "cold reserve" in your fridge will be significantly increased, so that the average temperature of the interior will stay colder for a much longer time. The higher the volumetric heat capacity, the better. See this table ('volumetric heat capacity') for the best material; water probably wins. So stuffing bags of water in every nook and cranny would seem like a good idea. Or else bottles.
Tip 2: if you have a freezer, stuff it with bags and/or bottles of water, and put most of those in the fridge once power goes out (swap with some of the bags/bottles that were in the fridge). The freezer will probably do better, because it has much better insulation than the fridge. And put the most sensitive foods in the freezer maybe a few hours after power goes out (or maybe later—lest they freeze after all).
Actually, start putting as much water bags/bottles in the freezer as you can several hours before power goes out, and move them to the fridge once frozen. They will remain half-frozen for hours and hours in the fridge, so they will add extra coolness to the fridge. This way you're "saving up" cold from the freezer and increasing your cold reserve even more.
Tip 3: most refrigerators have a temperature slide/wheel/thing, which determines what temperature the thermostat aims at. You could set the slide to maximum power (so lowest temperature) a few hours before the power outage. Most people, including me, have the slide somewhere in the middle normally. The slide usually doesn't mark the exact temperature, but rather some symbols. It is usually found inside the refrigerator.
Tip 4: cook and/or eat any raw fish and meat before the outage. I think it would not be necessary at all if you follow the above tips, but cooking your meat now may just be simpler. Then either store the cooked meat or eat it. Incidentally, I wouldn't half-cook any meat: that may actually increase the rate of bacterial growth if it doesn't kill the bacteria completely. But something like salmon can be (fully) cooked first, reheated later.
Answer: As others have mentioned, it depends a lot on the efficiency of your fridge, how much or little food there's in, the temperature of the room the fridge is in and so on. The USDA has a whole page about "Keeping Food Safe During an Emergency." A power outage of 10 hours seems rather long though considering they state you can expect the fridge to keep the food safe for about 4 hours (without any further preparations). Check the page for additional advice.

Keep the refrigerator and freezer doors closed as much as possible to maintain the cold temperature. The refrigerator will keep food safely cold for about 4 hours if it is unopened. A full freezer will hold the temperature for approximately 48 hours (24 hours if it is half full) if the door remains closed. Obtain dry or block ice to keep your refrigerator as cold as possible if the power is going to be out for a prolonged period of time. Fifty pounds of dry ice should hold an 18-cubic foot full freezer for 2 days. Plan ahead and know where dry ice and block ice can be purchased.
Answer: Ziplock bags of water in the freezer work great as ice-packs- for both the fridge and freezer.
Also, once my apartment was due to get hit by a hurricane when I would be gone for the weekend.  I was concerned that the power might go out for an extended period of time and I'd have no idea how long the fridge was without power.  Since I would be gone for several days, the fridge would easily have enough time to refreeze potentially spoiled food.
So to see if items in the fridge had melted and later refrozen, I left a frozen tray of ice cubes upside down in the freezer.
With this tip, if power is restored when you're away (or just during the night when you're asleep), then check to see if the ice cubes separated from the tray.  If they're just loose, you're probably okay.  But if they have melted at all then you know the freezer dropped below freezing long enough for items to melt.  The size and shape of the melted ice cubes can also be a good indicator of how much melting occurred.
Answer: Make or buy ice and put that on the top shelf of the fridge. Also, use a thermometer to check the temperature of the highest shelf with food after the power returns. If it's below 7ºC-8ºC, I'd risk it.
You should also take Yamikuronue's advise to NOT open the fridge during the outage.
Comment: Oh, but make sure to also put something in to catch the water when the ice melts (it will). E.g., put the ice in bowls.
Answer: If the door is not opened. 24 hours. 1 gal ice jug. Place in fridge & 1 small battery fan blowing on it will keep most cool 8 hours. With door opened several times.


Is it better to use ePub or mobi files in iBooks?

Question: I've purchased some books that make epub and mobi versions available for download. What are the main differences and which is better supported in iBooks?
Comment: Oracle docs are available in PDF, Mobi and ePub. Which format for iPhone/iPad? http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm
Comment: This is getting some spam traffic and it also needs to be refined to explain what "better supported" means to be of continued use to the site. Several answers have been added and none are selected, so feel free to ask a more detailed follow-on question or edit this one if you are still seeking help.
Comment: Given that mobi books aren't supported at all in iBooks (right?) this is not at all subjective and is a reasonable question.
Answer: ePub is the newer standard and is supported by the Apple iBooks app, but Apple only supports it's own FairPlay DRM wrapper used to encrypt the ePub files to protect the books from being copied or read on unauthorised devices.
Most other (non-Apple) eBook stores sell ePub books encrypted with Adobe's Adept DRM wrapper, which you can't read with the iBooks app (although certain other eBook apps do support the Adobe DRM system)
Mobi is for other reader systems (I believe the Kindle uses this format) and is not supported by the iBooks app. I expect there are other iPhone apps that support mobi files.
Answer: The latest version of iBooks supports the PDF format. The support is excellent. You can drag ePub or PDF files to your iTunes library.
http://www.apple.com/itunes/itunes-news/2010/04/using-itunes-to-add-epub-files-to-ibooks.html
Answer: There are differences that are covered in great detail in this article:
Worse-is-better in e-book formats
I do not think that an end user should care about this until the seller offers the books in all formats, in your case in EPUB as that is the format supported by iBooks
Comment: Link is broken: 404


Is there something like "did you forget to attach a file" in Apple Mail?

Question: In Thunderbird there is something like "are you sure you did not forget to attach a file" if you mentioned words such as "attached/in the attachment/ attach" and many more (could be set default on tb).
Is there something similar for the Apple mail on OS X 10.9 Mavericks or for iPhone (iOS 6)?
Answer: For OS X, there is a beta version of an older free (donationware) plugin called Attachment Scanner Plugin for Mail.app that is compatible with OS X Lion and OS X Mountain Lion. It works similar to the one you have mentioned for Mozilla Thunderbird. Since OS X Mavericks was only recently released, you can test it to see if it works or contact the author.
On iOS though, there's nothing of this sort in the stock Mail.app. Due to application sandboxing, third party developers cannot develop plugins for any application (Apple's apps or otherwise). This can only be supported if Apple makes such a feature available in Mail.app. I do not know if third party mail apps have such a feature.


Is it possible to increase travel on Cannondale Scalpel?

Question: I have a 2014 Cannondale Scalpel Carbon 2. It's an amazing XC race bike but some courses are so gnarly that I'd love to have a bit more trail. The head tube angle is so steep. I would like to make it just a bit slacker without having to buy the new 2017 model. Is there any way to do this? I am new to biking and bike mechanics so I hope I got all the terminology correct.
Comment: I don't have exact details but I've heard it is possible to increase travel on some Lefty 29s. Try this thread to start: http://forums.mtbr.com/cannondale/2011-xlr-29er-lefty-743144.html . Also note that what you don't want to do is go removing the internal travel reducers, at least without extreme caution, because they're there to keep the tire from bottoming out on the crown, making you crash.
Comment: If you go for a longer travel it may affect the geometry. You could get a slacker head angle at the expense of a higher bottom bracket. Sometimes this can be offset slightly if your headset is external and you manage to change to an internal type. I have a 2010 Cannondale and to be honest, when I looked at the amount of hassle and what the benefit would be of changing travel, I bought a better second-hand bike from a bike forum instead.
Answer: If you get a fork with longer travel, it'll result in a less-steep head tube angle, and a higher BB. I'd say it's worth trying, but in your case there is a major complication: the Lefty fork. So you have two options:

Get another Lefty with longer travel. And I don't think they sell those separately, so that's probably impossible.
Get a normal fork. And this will means replacing the parts that are designed to work with the Lefty: the front wheel, the stem, and the headset (you'll have to get a special reducer headset to make it fit in the over-sized headtube.) This is definitely doable, but you'll be better off just buying another bike.
Comment: Lefties are available aftermarket.


Restore page after deleting it from trash

Question: I accidentally deleted a page in my trash area, is there a way I can restore it? I can no longer find the page.
Answer: Unless you have a backup of your database then most probably your page is unfortunately gone forever. You could try contacting your hosting provider and ask if they have a backup stored somewhere.


GnuCash: Reimbursable expenses paid by credit card

Question: In my business we buy a number of things for client projects with the company credit card. I understand that to have them show up on the client's bill I need to use the Vendor-Bill process. But when I go to pay that Bill, the credit card accounts are not available choices for where to post the payment. All I have is cash accounts and A/P. At the time of the purchase, I am accruing a credit card payable so I would like to pay the bill without running every credit card expense through A/P then transferring the A/P balance to the credit card account. Is it possible to change a setting to allow credit cards as payment sources for Vendor Bills?
Answer: GNUCash won't show 'Credit Card' type accounts in "Process Payment", as of v.2.6.1. A workaround is to create another
<code>Liabilities:Credit Card
</code>
account of type A/Payable.
Then, transfer the operations you want to pay via "Process Payment" to this new account. It should be visible now. A drawback is that you have split your current Credit Card debt, which makes it harder to track.
Alternatively you may wish to only use this new account for all your credit card related expenses.
Another alternative is processing payments for these purchases manually to keep the 'credit card' accounts consistent.