Cannot create working Remote Hybrid Android app with Mobile SDK 4.1

Question: I've been trying for days now to get a working Remote Hybrid Android app to build for Android using the current (4.1) build of the Salesforce Mobile SDK.  I've made some progress (I think), but remain stuck.  This is a log of my progress so far.
Using forcedroid to create an app skeleton currently results in errors, as has been documented in the Salesforce Mobile SDK Google Group.
nvm use v0.12.2
forcedroid create --apptype=hybrid_remote --appname=sdktest --targetdir=. \
--packagename=org.jclark.sdktest --startpage=/apex/BasicVFPage

eventually leads to:
Fetching plugin "phonegap-plugin-push" via npm
Installing "phonegap-plugin-push" for android
Failed to install 'phonegap-plugin-push':Error: Variable(s) missing: SENDER_ID
    at /Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:346:23
    at _fulfilled (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)
Failed to install 'com.salesforce':Error: Variable(s) missing: SENDER_ID
    at /Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:346:23
    at _fulfilled (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/Users/jclark/.nvm/versions/node/v0.12.2/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)
Error: Variable(s) missing: SENDER_ID

If you attempt to run the app now (cordova run android), the app will build and run, however, you'll get a ERR_FILE_NOT_FOUND (file:///android_asset/www/index.htmlpopup, which I would not expect from a Remote hybrid app.
However, the error text indicates that the push plugin was not installed correctly, and looking at the command output and the source of forcedroid convinced me that some of the installation steps are being skipped when the plugin install fails.  Some folks in the MobileSDK Google Group reported removing the new phonegap-plugin-push and adding the older salesforce push plugin, but I could not get a working build this way, so I set out to fix the underlying forcedroid error.
The root issue is that the new push plugin, phonegap-plugin-push, expects a variable SENDER_ID to be defined, containing the Android Push Notification Client Id; the plugin installation docs show the variable being passed as part of the cordova plugin add commandline. Unfortunately, the push plugin isn't added with that command.  Instead, forcedroid adds the plugin SalesforceMobileSDK-CordovaPlugin, which lists the push plugin as a dependency in its plugin.xml.  A little experimentation showed that I could add the variable to the dependency declaration in such a way that it would use an ENV variable of the same name.  I forked the plugin and made that change, then edited my local forcedroid (in my case, /Users/jclark/.nvm/versions/node/v0.12.2/forcedroid to change the plugin add line:
//shelljs.exec('cordova plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin#v' + version);
shelljs.exec('cordova plugin add https://github.com/jclark-dot-org/SalesforceMobileSDK-CordovaPlugin');

With this change in place, running forcedroid with a SENDER_ID ENV variable declared:
SENDER_ID=0000000000 forcedroid create --apptype=hybrid_remote --appname=sdktest --targetdir=. --packagename=org.jclark.sdktest --startpage=/apex/BasicVFPage

Runs without error.  Running the app (cordova run android) will succeed like the first test (app runs, cannot find index.html), but further experimentation has shown that there's still an issue with the basic app framework... the after-platform-add-android hook of the Salesforce plugin (plugins/com.salesforce) never runs.  This script makes some changes to the AndroidManifest.xml, such as commenting out the first <application> tag found - presumably so that it can be replaced by the version in the Salesforce plugin's plugin.xml file.  Adding any plugin will fire this hook, and then running cordova prepare android will cause AndroidManifest.xml to be updated.  For example:
cordova plugin add cordova-plugin-badge
cordova prepare android

Now an attempt to build the app will fail:
:processDebugManifest
/Users/jclark/sdktest/platforms/android/AndroidManifest.xml:30:9 Error:
    Element activity#com.adobe.phonegap.push.PushHandlerActivity at AndroidManifest.xml:30:9 duplicated with element declared at AndroidManifest.xml:6:9
/Users/jclark/sdktest/platforms/android/AndroidManifest.xml:0:0 Error:
    Validation failed, exiting

The reason for this is somewhat complicated, but this is what I've determined: when the after-platform-add-android hook runs, it removes the first <activity> tag from AndroidManifest.xml, which the salesforce plugin replaces (see above), however, this changes the order of the tags within the <application> tag.  The activity which is removed and replaced is the "primary" activity (containing android:name="com.salesforce.androidsdk.phonegap.ui.SalesforceDroidGapActivity"); It is originally the first child of application, but after the manifest is updated it becomes the last child.  This makes <activity android:exported="true" android:name="com.adobe.phonegap.push.PushHandlerActivity" /> become the first child.  Then the cordova prepare step updates the first activity element found to set the android:launchMode explicitly, so the activity becomes <activity android:exported="true" android:launchMode="singleTop" android:name="com.adobe.phonegap.push.PushHandlerActivity" />.  However (and this is where I'm theorizing based on empirical evidence), it looks like the build process is re-writing the manifest by adding missing items; since it expects the version without android:launchMode="singleTop", it ends up adding it again.  I tried to work around this by adding android:launchMode="singleTop" to the main activity in the plugins.xml file (a change which remains in my fork, since it was in the original activity), but that doesn't stop this from happening.  Since I didn't want to fork the push plugin to change the plugin.xml to add the launchMode attrib, the workaround I've found is to manually edit the android.json file to add it there.  Then I remove all of the of the contents of <application> from the manifest, and run cordova prepare android to rebuild the manifest.
This moves past the prior error, but fails with:
/Users/jclark/sdktest/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml:45: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/sf__icon').

I addressed this with one more change to my fork of the SalesforceMobileSDK-CordovaPlugin, by updating the after-platform-add-android hook to change sf__icon to icon.
So at this point, I can set the ENV var SETTING_ID, run my custom forcedroid which uses my fork of the SalesforceMobileSDK-CordovaPlugin, add a plugin, run prepare, modify platforms/android/android.json to add android:launchMode=\"singleTop\" to the com.adobe.phonegap.push.PushHandlerActivity line, and run prepare once more to get a project that will build.  However, when I run it on device, I immediately get "Unfortunately the application has stopped".  logcat shows the following:
E/AndroidRuntime( 5009): FATAL EXCEPTION: main
E/AndroidRuntime( 5009): Process: org.jclark.sdktest, PID: 5009
E/AndroidRuntime( 5009): java.lang.RuntimeException: Unable to instantiate application com.salesforce.androidsdk.phonegap.app.HybridApp: java.lang.ClassNotFoundException: Didn't find class "com.salesforce.androidsdk.phonegap.app.HybridApp" on path: DexPathList[[zip file "/data/app/org.jclark.sdktest-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.jclark.sdktest-1, /vendor/lib, /system/lib]]
E/AndroidRuntime( 5009):        at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
E/AndroidRuntime( 5009):        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4327)
E/AndroidRuntime( 5009):        at android.app.ActivityThread.access$1500(ActivityThread.java:135)
E/AndroidRuntime( 5009):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
E/AndroidRuntime( 5009):        at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 5009):        at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 5009):        at android.app.ActivityThread.main(ActivityThread.java:5027)
E/AndroidRuntime( 5009):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5009):        at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 5009):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime( 5009):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime( 5009):        at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 5009): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.salesforce.androidsdk.phonegap.app.HybridApp" on path: DexPathList[[zip file "/data/app/org.jclark.sdktest-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.jclark.sdktest-1, /vendor/lib, /system/lib]]
E/AndroidRuntime( 5009):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime( 5009):        at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime( 5009):        at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime( 5009):        at android.app.Instrumentation.newApplication(Instrumentation.java:975)
E/AndroidRuntime( 5009):        at android.app.LoadedApk.makeApplication(LoadedApk.java:511)
E/AndroidRuntime( 5009):        ... 11 more

The key bit of course is Didn't find class "com.salesforce.androidsdk.phonegap.app.HybridApp".  It appears that the app is being built without all of the SDK components included.  At this point I've exhausted my knowledge of the Cordova/Android build process.  I tried adding the SDK libs directly to platforms/android/project.properties, e.g.:
android.library.reference.2=SalesforceSDK
android.library.reference.3=SalesforceHybrid
android.library.reference.4=SmartStore
android.library.reference.5=SmartSync

But that just led to more build errors; I'm thinking that I'm going in the wrong direction there... the plugin is part of the project, so I shouldn't need to add explicit references.
At this point, I'm not sure what to try next. My ideal solution would be a working forcedroid that can build a working Hybrid Remote android app from scratch, supports push, and continues to work when other plugins are added.  Once I have a set of steps to do this, I can work on my original problem of porting an existing SDK 3.x project to SDK 4.1.  I will be cross-posting this to the SDK Google Group as well.
Update 3/22: On the Salesforce MobileSDK Google Group thread for this post, SDK Dev Bharath Hariharan pointed me to a recent commit in the unstable branch of the Cordova Plugin that addresses the first issue (push plugin errors) by pinning the versions of all dependencies.  I updated my local forcedroid to use the latest unstable commit:
//shelljs.exec('cordova plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin#v' + version);
//shelljs.exec('cordova plugin add https://github.com/jclark-dot-org/SalesforceMobileSDK-CordovaPlugin');
shelljs.exec('cordova plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin#a45425d8e831c9567a0d0bf8b05bc3e1b19b4f23');

This fixes the first problem (push plugin errors).  While testing this, I found that for some reason the android post install script wasn't finding shelljs, so I added it locally as suggested in the script error message (npm install email@example.com); this allowed all post-run scripts to run successfully during the forcedroid run, and eliminates the need to add another plugin to get a fully updated AndroidManifest.xml.  So at this point, I can run the updated forcedroid using the latest unstable SDK Cordova plugin, run cordova prepare android to cause the duplicate activity issue, and manually add the launchmode to the push activity in android.json and remove the resulting duplicate activity in AndroidManifest to get a build that will install on the device.  It still crashes on launch with the Didn't find class "com.salesforce.androidsdk.phonegap.app.HybridApp" exception.
Answer: I have found that if my project includes plugins other than the SF one then I need to make sure that I add the SF one last. I have mentioned this in one of the git issues. At the time of writing I still have to follow the process of removing the plugin and platform and then re-adding both, only this way do I not end up with a duplicate issue in the manifest.xml.
As an aside yes the push plugin update to v1.6 was a right pain ;-)
Comment: We have to do this same process, readding the SF plugin last


Why is my Samsung Galaxy phone automatically moving read Yahoo email to the spam folder?

Question: Why is my Samsung Galaxy phone automatically moving read Yahoo email to the spam folder? This usually happens when there is an attachment.
Comment: What email client are you using? The stock Samsung one, Yahoo's own, or something else? And which Samsung Galaxy phone do you have?
Answer: This is another post that I found on this.  Basically the Samsung phone has it's own spam settings.  http://www.slipstick.com/outlook/moves-email-junk-folder/ describes this, and then explains:

The solution:

Go into the E-Mail app (on the phone)
Press the Menu Key, select Settings, then General Settings
Select Spam addresses and remove any addresses that should not be in there, such as your corporate domain.
Comment: Welcome to the Android Enthusiasts! Whilst this may theoretically answer the question, [it would be preferable](http://meta.stackoverflow.com/q/8259) to include the essential parts of the answer here, and provide the link for reference. Otherwise, your answer becomes useless in case the link dies. For further hints, please see: [How do I write a good answer](http://android.stackexchange.com/help/how-to-answer).


Old user's good questions

Question: What happens to users who have not seen their accounts for more than a couple of years? Do their accounts remain intact? I wanted to know so because, there are often a few questions with about 7-8 votes but no answers posted, by users who haven't seen their account for a couple of years. Will it be of any help if I answer them? More importantly, often before giving a good answer, one needs some simple clarifications about the question itself; but in this case, what am I to do if the O.P is not available?
Comment: The fact that you saw these Questions strongly hints that future Readers will see them as well.  Unless the only reason you spot them is prowling the unanswered-question list, (not that there's anything wrong with that), these future Readers will benefit from your incisive, well-reasoned Answers.
Comment: Did the user only have an account on [math.se] or did the user also have accounts on other stackexchange sites? If the user is still using any stackexchange site, they will get notified of answers to their questions across all of the stackexchange sits, even those they aren't currently active on.
Answer: If a user has at least one visible (non-deleted) post on the site, their account is preserved indefinitely. However, this does not mean they will ever use it again. So you should not expect any notes of gratitude from that particular user if you answer.
And you can expect is that an unanswered question with 7-8 votes is of interest to other people. Those who upvoted it, and many more who visited but did not have the privilege to upvote (you can gauge their number by looking at Views count). Additionally, when a question gets a good answer, this boosts the visits long term, since it gets inbound links over time. You may end up helping thousands of people, even if the author of the question never sees your answer. You will never know who they were... So, to have a visible token of appreciation, the site gives Revival badge for the first answer to an old unanswered question (provided the answer gets the score of 2).
As for clarifications: if the question cannot be answered because it's unclear, vote to close: "Unclear what you are asking". If the question never gets fixed, it should eventually be deleted: there is no point in having unanswerable questions lying around.
Comment: You want to know if the tetrahedron is assumed to be regular. There is no such assumption made in the question: therefore, the tetrahedron is not assumed to be regular.  But if you have a proof for the regular tetrahedron, you can still post an answer, saying that you solved the problem in this special case.
Comment: The best example is [this post](http://math.stackexchange.com/questions/358423/a-short-proof-for-dimrt-dimr1).
Comment: The clarification part : $1$ doubt.  Often in answering questions, you must have seen that you understand the full question and are even ready to answer, but one slight doubt clarification would clear all hurdles. For example in this question [link]( http://math.stackexchange.com/questions/455886/rotations-of-a-tetrahedron) , if you read my comment (at the very last), you will understand what minimal doubt I am talking about.

Old user's good questions


CiviContibute View Customization

Question: I am using CiviCRM on Joomla. I wanted to know if there is a way to customize how I view the contributions on the admin side (in the back-end). I honestly have no need to see time of donation or premiums (we don't use any right now). Are there any ways to hide these fields to clean up the view?
Comment: Do you mean the front-end form the end-user sees or the back-end admin screen(s)?
Comment: I mean from the back-end, sorry
Comment: Roger that, I've edited the question to clarify.
Comment: Thank you! I thought admin side was clear enough. Looking back though I see why there was confusion.
Answer: What you're asking for isn't possible without coding, unfortunately.  It's a major focus of CiviCRM 5.0 to be able to have user-definable forms in this way.
If you're a coder, or you can hire/borrow one, you can use hook_civicrm_searchColumns to change which fields show on the Contributions tab.  There's an example in this blog post.  Finally, I just uploaded an extension I wrote to Github, which replaces the Premium column on the contributions tab with info on soft credits: https://github.com/PalanteJon/coop.palantetech.showsoftcreditsinsummary
Answer: If you are talking about setting up contribution pages for end-users of your website, you can do quite a bit to customize your contribution pages, both in initial setup and in the profiles used in conjunction with them.  A good place to start is Set-up | Contributions and Profiles here, profiles there, profiles everywhere! (video of CiviCon Denver session)

CiviContibute View Customization


Access permission for Print Merge Documents

Question: I have CiviCRM installed on Wordpress. I am trying to limit the Print/Merge Document function shown in the below image, to only certain Wordpress roles. Is there such a setting in CiviCRM for this? If not, how else can we achieve this?
Comment: Hi R John, welcome to CiviCRM on StackExchange. This is entirely run by volunteers who will do their best to help.
Answer: Also, if you are willing to develop an extension, you need to check https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_summaryActions/ hook to add permission to the "Print/Merge Document" action link.
Something like -
<code>function mymodulename_civicrm_summaryActions(&$actions, $contactID) {
  $actions[print_pdf_key_name]['permissions'] = array(...); //your list of permission
}
</code>
If you need to create a new permission for this task - you need to check https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_permission/ hook as well.
Hope that helps.
Answer: As far as I know there is no specific Permission as you have probably already confirmed, therefore this would require a custom extension. If you have the development skills in-house then you may get the required support via https://chat.civicrm.org/civicrm/channels/dev-newcomers - otherwise you might need to check out a professional development team eg https://civicrm.org/partners-contributors
but you are likely to get some more specific advice on here too if you can be patient.


Simple tool for web server benchmarking?

Question: I want to make some simple load tests for a web application.
I remember one of the tools I have seen in a stage and I liked a lot was Selenium, but it is intended for developing use cases for testing user interface of  web application.
My needs are simpler, simulate concurrent users. I have seen Apache Benchmark 'ab' but one thing I would like to do is simulate a scenario where we begin with 5 users and make increments of 10, 15 ... until we reach 50 users (increments each 10 seconds, by example).
Do you recommend a simple tool for this use case?
Regards
Comment: [JMeter](http://jmeter.apache.org/) - check out *ramp up period*
Answer: I have chosen JMeter. It is not as simple as ab from Apache or httperf, but it isn't a complicated tool.
In the JMeter docs we can see a simple tutorial for doing web load tests. For the scenario for incrementing user number there is the configuration Ramp-Up Period which tells JMeter how long to delay between starting each user.
Answer: you may like curl-loader which supports customed number of users per-second and test different URLs.
there's another tool named siege, which is quite similar to ab(apache benchmark), have a try.


Copyright issues with sharing music and videos on social media

Question: What are the copyright issues with sharing music and videos that I find on social media? Not ones that I upload, but ones that I find besides my own. Like when I hit "share" on Facebook. Have I violated copyright law by doing so?
Answer: The legality of "sharing" ultimately depends on technical details of the platform, but the simplest answer is that sharing a link is not copyright infringement. If all you provide is a link to a file and the platform just distributes that URL (does not copy the content), this is not copyright infringement. This is true even if the file "out there" is illegally posted. You might be liable for contributory infringement if you're knowingly encouraging illegal copying, by massively distributing url's to illegal material.
You might be in violation of the target or source platform's TOS if you share a link to material contrary to their terms; and violation of the TOS means that you have infringed copyright (copyright law is the teeth behind TOS).
Answer: It is not illegal to give a link to an artistic, dramatic or any other type of work that's copyrighted on social media. Do they have content under a licence is your question. Most websites and organisations, such as Wikipedia, will definitely have a Creative Commons license for any material uploaded.
You can share a link to a photo or video.
There will be an EU Directive that will (may) forbid linking to news article and things. EU Directive for the Digital Market I think it is. Currently, many are opposing towards it.
Answer: Asa others have said, when "sharing" means providing a link to existing content, that is not copyright infringement. However, when "sharing" involves actually making a copy of the content and distributing the copy, that could be infringement, depending on the specific facts.
Also, making a "deep link" that bypasses an intro or login page  when the owner has clearly said to link only to the surface page, may be infringement. There have been cases that held this to be unlawful, as it might deprive the owner of revenue gained by requiring a login, or distort he owners expression by depriving it of context. This again will be a very fact-dependent situation.


why are turboprop/turboshaft engines rated only in horsepower and never in ft-lbs of torque like diesel engines or electric motors?

Question: I realize torque and horsepower are essentially the same measurement since horsepower is simply torque over time. But I'm curious as to why diesel engines or electric motors always provide torque ratings whereas turboprop engines are only rated in horsepower. Is there any reason for this?
Answer: The reason a Diesel engine has a torque figure and a horsepower power figure is because max torque and max horsepower occur at different engine RPMs. Have a look at any performance curves of a piston engine and this will be evident. Hence, to define in a few numbers the maximum performance of the engine, you need to give both figures.
However, turboprop engines for propeller aircraft, and turboshaft for helicopters, operate differently. Maximum efficiency for a rotor or propeller occurs at a certain RPM. Operating at different RPMs is inefficient. Hence, propellers and helicopter rotors are designed to operate at a fixed RPM. As load changes, the blade pitch angle is changed so it "bites" into more or less air. Hence, RPM can be kept constant, despite the load (and hence torque demand) changing. Now, since the power turbine is running at a constant fixed RPM, only 1 performance figure is needed (SHP or TQ) because the other can simply be derived from it.
Torque is just as important in a turboshaft or turboprop as a piston engine. These engines all have a torque sensor that usually works by measuring the twist in the power turbine shaft. Most helicopters do an engine performance check daily that involves reading TQ of the gauge prior to flight to ensure adequate performance.
Answer: Because it's less useful for aviation application.
For diesel and electric, or ground vehicle and industrial motors in general, lack of peak torque is a problem (engine/motor stall), but for aviation, there's never a condition that you can stall a turbine. Usually you stall the propeller way before you stall a turbine.
Or, put it another way, an aviation turbine is rarely found short of torque.
However torque is still an important performance metric and will be stated in the data sheet, but simply isn't actively marketed as much as diesel and electric motor.
Comment: @ChristophePochari Simply put, there's no minimum torque to spin the prop or rotor - it's going to spin however small the torque (within reason). Static friction is very small, so less torque just means longer spin-up (energy limited) or slower maximum speed (drag limited). This is adequately covered by the power metric.
Comment: Thanks for the answer. But I'm still curious as to why torque would be a more important metric say for a truck engine but less important for powering a low RPM helicopter rotor for example. Wouldn't torque be as important a metric for a turboprop or turboshaft, considering the RPM is low which requires a lot of torque? Maybe I'm just getting confused around the old torque vs horsepower debate.
Comment: @ChristophePochari Problem with truck is after you've dropped to 1st gear, or starting with 1st gear, the highest force the wheel can put on to the road is limited by the engine toque. And if the engine can not provide enough torque, then the result is usually very bad (stalling, rolling down hill, or can not start to move at all). For an airplane, as long as the system (prop, gear box) are well designed, the engine never face such difficult situation.
Comment: is it possible to compare the power requirements of a truck compared to spinning a prop or rotor?
Answer: Torque and horsepower are different measurements.
Horsepower is a measure of power, where one horsepower equals 746 watts.
Torque is a rotational force, which might be akin to voltage.  One can have large amounts of torque, but if a shaft will not turn, no work is done.
Work is accomplished by power.
One may frequently see torque specifications for diesels, because they tend have different operating characteristics.  For example, in common diesel engines, max torque may appear at substantially lower RPMs than on a comparable gasoline (Otto cycle) engine.  With similarly sized gas and diesel engines, the gas engine usually has a higher horsepower rating, and always at a higher RPM.
The torque rating of a diesel engine or an electric motor are merely forces which the device can apply, at a certain RPM.  They are not power ratings.
Horsepower and torque are important attributes when designing propulsion systems, so that the drive requirements (eg. propeller, fan, or wheels on the road) can be matched effectively to the power plant (eg. engine, motor or rubberband).


Explain the comparison between a state and density matrix

Question: The density matrix $\rho = \frac{1}{2}(|0\rangle \langle0|+|1\rangle \langle1|)$ describes a system which is in state $|0\rangle$ and in $|1\rangle$ with equal probability.
Also the state $|\psi\rangle= \frac{1}{\sqrt2}(|0\rangle+|1\rangle)$ describes a system which is in state $|0\rangle$ and in $|1\rangle$ with equal probability. But the density matrix corresponding to $|\psi\rangle$ is not $\rho$, there are some cross terms $(|0\rangle \langle1|,|1\rangle \langle0|)$. So how should we explain this?
Comment: possible duplicate: *[What is the difference between superpositions and mixed states?](https://quantumcomputing.stackexchange.com/q/1461/55)*. See also https://quantumcomputing.stackexchange.com/q/1365/55, and links therein
Comment: Thank you for sharing. Now I got it.
Answer: The two states $\rho$ and $|\psi\rangle$ describe quite different things. $\rho$ is, in essence, something classical, while $|\psi\rangle$ is a truly quantum state.
The clearest way to see the different is to do an experiment on these two cases. First, apply a Hadamard gate, and measure in the standard basis. For the mixed state,
$$
\rho\xrightarrow{H}\rho
$$
This has 50:50 outcomes on measurement.
For the pure state,
$$
|\psi\rangle\xrightarrow{H}|0\rangle
$$
always gives the answer $0\rangle$.
So, we have an experiment that clearly distinguishes these two cases. They are different things.
Moral of the story: where quantum is concerned, it is insufficient to only think about probabilities in the computational basis. It is the coherences between those basis states that are the essential element of quantum behaviour.
Comment: That's a good example, can you share any resource where more discussion is given on this? Thank you.
Answer: The off-diagonal terms in your case, tell us how much $|1\rangle$ state is there together with $|0\rangle$ to in the same time (superposition).
Since the first case (mixed state) doesnt contain states from different bases together (in superposition), the off-diagonal terms are zero.
Answer: Just as a matter of clarifying terminology, as well as complementing the answers given so far; both are normally called states. The difference is just that one is a pure state, which is the same as a vector state, while the other is a mixed state, exactly because it can be understood as the convex mixture of two states. Pure states cannot be a convex mixture of any other state by definition.
I wouldn't particularly say that $\vert \psi \rangle \equiv \vert + \rangle$ is a truly quantum state because we know that there are many classical models that reproduce the statistics and the phenomenology of states as such: Ref1, Ref2. Nevertheless, it is a coherent state with respect to the computational basis, so it does particularly have some nonclassical aspect attached to it.
The state $\rho$ can be understood as simply preparing either the states $\vert 0 \rangle \langle 0 \vert$ or $\vert 1 \rangle \langle 1 \vert$ with equal probability, while the same kind of procedure cannot be used to prepare the states $\vert + \rangle \langle + \vert$ because they are, by definition, not convex mixtures of anyone else.


HTML5  autocomplete Attribute

Question: What is the point of the autocomplete attribute? Isn't it bad practice to tell your users how their browser should work to fill a form?
Answer: There are cases where you could conceivably want to force the user to manually enter data:

A domain registrar might apply this to the domain field to ensure accuracy and avoid the auto-filling of previous attempts.
If an application might be used in a fairly public setting like a shared kiosk, you might want to prevent a form from giving hints as to who's used it previously.
The app provides its own auto-completion.
E-mail/confirmation fields.
The spec gives some other examples.

Isn't it bad practice to tell your users how their browser should work to fill a form?
  […]
  I was thinking about the whole "don't open links in new windows, let the user decide"

Don't confuse bad practice with judgement call, even if that call tends to lean heavily toward "Don't."
Yes, it's generally accepted that you shouldn't open links in new windows, but that was more a retaliation against a time when many sites would open nearly all links–or at least off-site ones–in new windows. As with most tools, even disliked ones, there are cases where it's useful and you need to decide if the technique applies to your situation.
Comment: This is false. "most have a no-refund policy if you mis-type the domain" ICANN requires all domain registar's give users 5 days to cancel registrations with full refund. http://www.icann.org/en/resources/registries/agp/agp-policy-17dec08-en.htm
Comment: Yes it is irrelevant but it is our duty to not spread false information.
Comment: Odd. I remember running into that all the time(though never had it actually be a problem for me), and assumed it still fairly standard. Either way, it's irrelevant to the actual question.
Comment: …which would be why I removed it. You could've made the edit yourself, by the way. (I think your current rep allows, though it'd be queued for approval, but still.)
Answer: From the w3schools site you linked:
"Tip: It is possible to have autocomplete "on" for the form, and "off" for specific input fields, or vice versa."
This could be so that only certain fields are autocompleted, rather than the browser attempting to fill in ALL of the fields. It would also only work if the browser has autocomplete enabled.
"Isn't it bad practice to tell your users how their tool should work to fill a form ?" Can you please clarify this? What is Their tool ?
Comment: I was thinking about the whole "don't open links in new windows, let the user decide"

HTML5  autocomplete Attribute


What is the difference between "Rücksichtnahme" and "Rücksicht"?

Question: I want to understand the difference between those two, I think "Rücksicht" means hindsight. When I look HERE for "Rücksichtnahme" they refer me to "Rücksicht".
Comment: It's not hindsight. This is a false friend.
Comment: "Hindsight" is not Rücksicht. Maybe "Rückblick" would be more appropriate? Rücksicht is "caution". Maybe you got confused about the meaning of the English word "hindsight"...
Answer: The word Rücksichtnahme is made from the verb phrase Rücksicht nehmen.

Der Autofahrer nahm keine Rücksicht auf die Fußgänger.

The car driver did not take regard of the pedestrians.
That sentence would not work with Rücksichtnahme, because there's already the nehmen inside it.

Der Autofahrer nahm keine Rücksichtnahme auf die Fussgänger.

But if somebody is referring to the verb phrase Rücksicht nehmen, the word Rücksichtnahme fits perfectly.

Die Polizei sprach von einem groben Fall fehlender Rücksichtnahme im Straßenverkehr.

Police called it a severe case of regardless driving.
Though Rücksicht would work here, too, Germans love to use nouns made from verb phrases. You will encounter such nouns very often.
Comment: "Rücksichtnahme" can often mean the same as "Rücksicht", used exchangeable, a more blown up, baroque form, a bit ugly as well.
But it can also be the real abstraction. While "Fehlende Rücksicht" sound good referring to a particular situation, "mangelnde Rücksichtnahme" fits well in a description of a personality trait or a general tendency in sorciety.   I love Janka's example for that use.


The standard list controller and Custom Buttons on Related Lists

Question: When creating a cutrom button on a related list (say the functionality is create a new task), why does my VF/Apex need to make use of the standard list controller (standardcontroller with the recordSetVar attribute defined on your page)? Why not just the standard controller, since in this case, I'm not acting on/displaying a set of records?
Answer: The recordSetVar is required, because without it there is no way for the platform to know that your controller extension supports list views. Your extension also needs a constructor that has a ApexPages.StandardSetController argument
Can you clarify why don't you want to set the recordSetVar? While you might not be interacting with the list of records currently, if/when the requirements change refactoring will be much easier. Another minor bonus is it's self documenting that you are interacting with a list view.
Answer: I completely agree.  If you're not acting on a specific set of record in the related list with your custom button, i.e. if you're building a custom New button, there really isn't any need for a standard set controller. IMHO, salesforce should just have a standard way of passing over the details to a custom button and leave the visualforce page developer to figure out whether to implement with a custom controller, standard controller, or standard set controller depending on their specific requirements.
So why is it needed?  I can only guess, but I would assume it's to prevent administrators from accidentally wiring up a button to a visualforce page that may not be able to accept your input.
That said, there are two ways to work around this.  First, use a url for the source of your button.  Using your example of a new task button on say an account record you could do
<code>/apex/myCustomNewTaskPage?id={!Account.id}
</code>
Second, you can create the page and set the recordset var, create the button, then just edit your page.  Once the button has been set up it doesn't enforce maintaining the recordsetvar attribute (although it may complain if you try and edit the button later).
Comment: Hi Ralph, I considered suggesting the workarounds you proposed in my answer, but decided against it for the simple reason that I can't understand why someone would need a workaround. What are your reasons for not wanting to use a StandardSetController?
Comment: It's not that I don't want to use the StandardSetController, I just can't see a reason for using it.  This sort of use case the primary actor is really a single task or a single account depending on your view.  Nothing about that feels *listy* to me ...


Written on a book I bought "Fresst meinen Sternenstaub, ihr Langweiler!"

Question: What does "Fresst meinen Sternenstaub, ihr Langweiler!" mean? I tried google translate but nothing showed up.
Comment: "Eat my stardust, you bores!" lt. https://www.deepl.com/translator - ein ganz passabler, wenn auch nicht fehlerloser Übersetzungsdienst für kleinere Texte (wenige Absätze). Siehe auch https://www.youtube.com/watch?v=a24wVSVLtLQ ("We are stardust", Joni Mitchell, @Woodstock)
Comment: I vote to reopen, because this can't be answered by simply working with a dictionary - even if the OP used something a lot better than google translate.
Comment: Bei der Nachbarfrage hier: https://german.stackexchange.com/q/41769/266 scheitert deepL allerdings schon, selbst wenn man mit "Strafgericht" den dicksten Bock (Gericht i.S.v. Nudelgericht) aus dem Weg räumt.
Comment: I also tend to reopen, however the question lacks of references and context. Please add more information to the question.
Comment: The only thing I would add is the fressen is the "animal" version of essen which is also used in less formal contexts.
Answer: tl/dr
The other answers in this thread are quite correct, but with all the other items on the web in mind the best answer would be "Eat my stardust, suckers!"
And here is why:
Unicorns became cool again with the help of the "Dispicable Me"-movie in 2010. Especially because of this scene. Soon there were memes, clothings, chocolate and toys all over the internet.
With this in mind designers and marketing crews considered what to do next to sell their stuff. Unicorns are magical creatures and when you make them cute and fluffy like in the movies and no noble creatures like in classical fantasy books they become colorful and sparkle. And what else sparkles? Oh yes, stardust, which fits unicorns perfectly.
From there on its just a step from the english mockery eat my dust to "eat my stardust". And then someone added "suckers" because it fits the sentence quite well. You can find this sentence on a lot of items Google.
And then someone in Germany saw this and wanted to sell these items too. He (or she) translated it to "Fresst meinen Sternenstaub, ihr Langweiler!". Sucker doesn't fit well to Langweiler, but its quite a good sentence and gets the spirit.
Answer: It's similar to Bart Simpson's "Eat my shorts".
Obviously it's a colloquial phrase created by some designer who committed to the ongoing "unicorn" trend.
A unicorn stands for freedom, self-fulfillment, emancipation, never giving a damn on what others demand or expect one to do.
The unicorn proceeds making its own way, dispersing a cloud of "stardust" on its way to universe. All the "Langweiler" (slowpokes) can do is inhaling/eating (pejorative: "fressen") the dust while staying in their daily grind.
Comment: Ha! Unicorn farts :-D ...
Comment: :-D indeed. :-)
Comment: Should we put an [illustration](https://i.pinimg.com/736x/c9/cd/52/c9cd5232feee65a5e8c6d7cf699827b5--majestic-unicorn-unicorn-farts.jpg)? ;-) ...
Answer: Unless somebody added this in the last 10 hours this is what my Google translate spits out:

Devour my stardust, you slowpoke!

Apart from the missing plural in Langweiler there is nothing wrong with this translation. It has the same weird meaning in German.
Answer: Hard to tell, but the meaning is the same as saying: "Well folks, I will leave you and you have nothing left but the dust."
So to say, the thinker or writer of the phrase meant: Patience is over :-)
Sternenstaub, everything is made out of this, so is your Endocannabinoid System.


JQuery - Widget Public Methods

Question: If I create a JQuery widget (code example below), and then define a "public" method, is there any other way to call the method other than using the following form?
$("#list").list("publicMethod");

I would like to create a series of widgets that all define the same methods (basically implementing the same interface), and be able to call the method without knowing anything about which widget I currently am invoking the method on. In the current form, I need to know that I am executing the method on the "list" widget.

Below is an example of creating a widget with the "public" method.
 (function($) {
    var items = [];
    var itemFocusIdx = 0;

    $.widget("ui.list", {
        // Standard stuff
        options : { ... },
        _create : function() { ... },
        destroy : function() { ... },

        // My Public Methods
        publicMethod : function() { ... }
        ...
    });
}(jQuery));

Comment: Do they have to use $.widget, or are you open to using inheritance and $.fn?
Answer: jQuery UI widgets use jQuery's $.data(...) method to indirectly associate the widget class with the DOM element. The preferred way to call a method on the widget is exactly what was described by Max...
$('#list').list('publicMethod');

...but if you want to field a return value, you'll have better luck calling it this way, via the data method:
$('#list').data('list').publicMethod();

However, using the second way side-steps the whole jQuery UI widget pattern, and should probably be avoided if possible.
Answer: Slightly off-topic, I know, but you may want to look at jquery Entwine.
This provides a form of inheritance and polymorphism which allows some clever behaviour with simple code.  It sounds like this would do what you are trying to do.
Answer: lets say you have list, list2, and superList... let's call "publicMethod" on for each of them:
$.fn.callWidgetMethod = function(method) {
  var $this = this,
      args = Array.prototype.slice.call(arguments, 1);

  // loop though the data and check each piece of data to
  // see if it has the method
  $.each(this.data(), function(key, val) {
    if ($.isFunction(val[method])) {
      $this[key].apply($this, args);

      // break out of the loop
      return false;
    }
  });
}

$("#some-element").list();
$("#another-element").list2();
$("#hydrogen").superList();

$("#some-element").callWidgetMethod("publicMethod");
$("#another-element").callWidgetMethod("publicMethod");
$("#hydrogen").callWidgetMethod("publicMethod");

Answer: Try this:
$("#list").list("publicMethod");

Answer: This solution is inspired by @Jiaaro's solution, but I needed a return value and implemented as a JavaScript function rather than extending jQuery:
var invokeWidgetMethod = function(methodName, widgetElem)
    {
        var $widgetElem = $(widgetElem),
            widgetData = $widgetElem.data(),
            dataName,
            dataObject;

        for(dataName in widgetData)
        {
            dataObject = widgetData[dataName];
            if ($.isFunction(dataObject[methodName])) {
                return dataObject[methodName]();
            }
        }
    }

Answer: How about this one:
$("#list").list.publicMethod

As you are  extending ui.list with your key:value pair set

JQuery - Widget Public Methods


What data are OBD-II scanners capable of logging?

Question: I've been reading that certain scanners are capable of logging data that can be recorded while driving. What sort of data are most popular to be recorded? Can someone comment with examples of data logging capabilities out there today?
Comment: Depends on the make and model of scanner. This question is too broad.
Comment: I think this question would lead to better answers if it were put in the context of what you're trying to learn or do through logging. In real life you'd also have to deal with the differences between cars, older cars tend to have less data available, newer one often have more.
Answer: Scanners that can log things can generally log whatever they can also display.1
Also it wouldn't be unusual for a scanner that supports logging to let you choose what to log.
From an implementation perspective, it wouldn't really make any sense to make the set of loggable data be anything less than the complete set of readable / displayable data.
The real differences are e.g. how many parameters can be logged at once, or how often log entries can be written, or how long a log can be, or what format the logged data is in. For that you'll just have to check product description pages.
1 "Whatever they can display" may be a subset of all possible parameters -- this depends on the vehicle -- but in general if you can see it, you can log it.
Comment: Aha, so it sounds like they're always capturing time series data and all the data displayed in table format is simply the most current data point. Without logging enabled all that data gets discarded since only the most recent is kept. If logging is enabled then that time series historical data gets recorded someplace, some file in some sort of memory somewhere.
Comment: @jxramos Yep, that's the essence of how those things are implemented, or at least how they appear to behave from a user's point of view. Read data => Display to you and / or save to file or wherever => Rinse, repeat.
Comment: @jxramos PS I second the other answer's suggestion of the Torque app on a smartphone and a cheap Bluetooth OBD-II adapter as a starting point (I have [this one](https://www.amazon.com/gp/product/B005NLQAHS/ref=oh_aui_search_detailpage?ie=UTF8&psc=1) and it works like a charm with an Android phone and my '01 Honda - might not work with iPhone but they make wifi ones too). Torque does support logging as well; it stores the data in CSV files on your phone that you can email to yourself from the app then open in Excel or whatever; log file size is limited only by phone storage.
Answer: It depends on what car you have - some cars provide data that other cars don't. It also depends on your scanner - some capture more data than others.
As a cheap way in, get a copy of Torque (for android or apple) and an ELM327 OBD transmitter (you'll need a bluetooth one for an apple). That pretty much captures everything, although you need to work a bit at it (e.g, knowing what you want to scan/graph really helps...)


Why is response/inbox notification cache so sticky?

Question: The obvious answer is performance. But I find that in order to make both the red notification icon at the top left and the blue notification icon on my responses tab go away, I have to click around to the item that caused the notification twice (accessing once from each method). Even if I am on the item and hit refresh. The result is that I am constantly wondering whether the notification I'm seeing is a new one or one I've already seen.
Answer: Your experience isn't entirely as it seems (or at least shouldn't be). As soon as you open the StackExchange™ MultiCollider SuperDropdown™ or view the responses tab, the notification icon on each respective control should disappear regardless of whether or not you actually go to the relevant notification item (although in the former case, some people wished things worked a bit differently).
As for why you have to clear them independently and deliberately, I'll refer you to this answer by Kevin Montrose:

The responses tab and inbox show slightly different data.
The inbox doesn't include revisions, and the responses tab only shows
  activity on the current site. Viewing either clearing the unread count
  on the other would be incorrect.

...as well as this one.
Comment: No, this is not quite what I was seeing before. Often the scenario I had is this (on SO): (1) I see a red 1 on my MultiCollider SuperDropDown. (2) I click the dropdown and click on the question title. (3) I'm on that page, and then click on my username. The red (1) is still there unless I hit Ctrl+Refresh. Perhaps this is a user agent-specific symptom, but *now* when I click on the dropdown, the red icon disappears immediately (before I even visit the question where the new comment appeared).
Comment: Ah I see. Well, it certainly wasn't *supposed* to behave like that. I'm not sure what would have caused that to happen.
Comment: It also behaves that way if I go to the item with the notification and then click back. But I understand why that functionality behaves that way and that it is mostly the browser driving it.


How accurate are Illumina microarray chips for genotyping?

Question: What is the error rate for these machines in genotyping (like for 23&me)? What is the chance of a false positive or false negative?
Answer: 23andme uses DNA microarrays ("chips") to perform genotyping. These methods only assay a set of previously known single nucleotide variants, so the probability of missing some specific variant (false negative) is high if that variant is not specifically assayed. It is not quite 100% as frequently known variants missing from the chip are closely associated with a variant that is on the chip, so you can sometimes impute missing data.
Sequencing-based methods will in theory pick up unanticipated variants, but they have their own foibles.
Generally both methods are quite good at single nucleotide variants (SNVs) but are bad to only ok at other kinds of variants. See for example (this paper (chosen somewhat at random, there are many similar papers) to see what the state of the art is for sequencing-based non-SNV calls.
Getting back to chips, these themselves depend somewhat on what version of the genotyping chip is used. For specific information on different versions of 23andme chips, I recommend this blog. For tech specs on the most recent Illumina chip used by 23andme, you can see their product sheet, and specifically Table 5. Their data claims that call rate among targeted variants is >99%, and among those the reproducibility is >99.9%. However things can be reproducibly wrong, so that's not exactly false positive that you requested.
Though it's somewhat old, this paper will give you a sense of both technologies in terms of variant ascertainment, claiming 89% sensitivity and 99.6% specificity (for European genotypes only) for either low coverage sequencing or a then-current chip.
To learn more about how these stats work for chips, specifically for false positives, this video may help.
Hope that helps.
Comment: Thank you for the thoughtful response. Am I correct in saying that since what they refer to as the "call rate" is >99.5%, that out of 650,000 SNPs 32,500 are erroneous?! That seems ridiculously high especially if those SNPs are for disease variant alleles
Comment: Hi Joe, I am understanding "call rate" to mean the rate at which the chip provides enough information for the chip-reading software to be confident enough to give a genotype in the first place. To state it differently, <0.5% of the SNP data will be _missing_. So not a false positive, but maybe a false negative. Also, SNPs are usually present in triplicate/quadruplicate on a chip, so there is backup for failures. For serious disease though, a chip is not a great detection tool for this reason, I believe chips are generally not used medically (?). Mostly for research cause they're quite cheap.


Best Programming Language for Data Science

Question: I'm learning JS, HTML and CSS, but I doubt JS is very good at Data Analysis. So, what would you guys recommend me learning to start my "career" in Data Science? What's the best programming language for processing data?
P.S. I love statistics and programming so I think this will be fun.
Comment: python. You are right; it will be fun. But if you choose R get [this book](http://www-bcf.usc.edu/~gareth/ISL/).
Answer: This is no doubt a duplicate, but here's how I'd weigh in on the major languages:
R:

Fantastic support for packages and specialised stats analysis
community, you can find a package to do just about anything you need
and it will be relatively easy to use.
Is good for throwing together prototypes and performing exploratory analysis.
Is Free and Open Source.
Slower than Python. Basically don't loop over anything. It's an odd language for a programmer to use (coming from a software dev
background). Clearly designed by mathematicians.
Relatively little choice of good IDEs

Python:

Fast.
Also very good as a general purpose language so has 'broader' package support. Free and Open Source.
Easy to use for Big Data applications.
Not as streamlined for analysis as R.
Syntax can be difficult to read (no surrounding braces to make it obvious where functions/ if statements end).
Can be particularly tedious working with Dataframes compared to R.

MATLAB:

Generally slower.
Has very impressive packages for signal processing/image recognition and all the cool stuff.
Is very readable and easy to comprehend generally.
Is NOT free. Student licenses are available. Was quite complicated for me to get my hands on one though...
Has very good support for mathematical analysis similar to R, but much better matrix functions.

Personal recommendation: Python. Kill two birds with one stone, learn good general to advanced programming concepts and data science at the same time.
Good article: https://www.linkedin.com/pulse/r-vs-python-matlab-octave-julia-who-winner-siva-prasad-katru
Answer: Python is a great choice if u are from programming developer
This article will be good if u want more details
http://www.kdnuggets.com/2015/05/r-vs-python-data-science.html
Also u've mentioned to recommend u to  start your career in data science.I think Kaggle.com will be the best choice for the beginners.It will help u to know whether this field suits u or not.
And for blog i think kdnuggets.comwill be a good choice.
Hope this answer is helpful..


I don't like the new tag page

Question: I prefer the older tag page.  What do you guys think?
Comment: Everyone is negative about the new designs. Not only on SE, though. Also the Twitter app, Facebook, Xcode 4. Appearantly, redesigns always suck?
Comment: Now I am scared of so many changes in short period of time.
Comment: Bad subjective. «it is a rant disguised as a question: "______ sucks, am I right?"» «there is no actual problem to be solved: "I'm curious if other people feel like I do."» «real questions have answers, not opinions» etc. etc. etc. etc. etc.
Answer:
I prefer the older tag page. What do you guys think?

Well I like it, but then again I wrote a fair bit of it.
The new tags page includes interesting statistics about the tag, I can tell how active it is this week,month,year.
There is a great little link for editors to directly edit wikis from there, which should save lots of time and help populate wikis.
The excerpt is not too obtrusive and does not take up to much space.
Overall I see this redesign as a big win, we now have the huge tag link as a destination, not just a link you click when you are searching for a tag. All the old functionality is maintained.
Comment: @waffles: What about `15/month, 93/year`? I like the info, but the first time I saw it it looked like a grammar error and was confusing.
Comment: @waffles: There's one thing I find really strange. It says e.g. "15 month, 93 year" in the last line. From your answer I understand that this is the activity, but that didn't come to me _at all_ when I saw it first. My first thought was "SO hasn't been around for 93 years, has it?"
Comment: @Hendrik, I just added a tooltip, any other suggestion to improve this?
Comment: @waffles: Definitely better; I had tried hovering the mouse already and got disappointed. No other suggestions, sorry. For my part, that line could just go away, but that's my personal opinion; the info there is of no use to _me_.
Comment: I don't want all this information.  It's the same as the users page.  You're throwing gobs of information at us, most of which we don't care about, and it's overwhelming.  I'm sorry, I do hate to dump on the work you guys are doing but it just isn't a good design.  The edit link (which only shows itself when you mouse over) is the only part that I do like.
Comment: @aaro you could install a user script to modify the page to your tastes -- see http://stackapps.com/?tab=scripts
Comment: Ugh, not the user script workaround again. That's fine for Stack Overflow but surely you can't honestly expect the Cooking or Photography communities to go for that?  This is like Desktop Linux all over again.
Comment: @Aarobot ... is this really that bad? how often do you visit this page? is it better for new users? what do you do when you visit this page? ... personally I think you are overreacting, I barely ever visited the tags page, and when I did it was just to look up a tag.
Comment: Is it the worst thing I've ever seen?  No.  Is it noticeably less usable than the original version?  Definitely.  There's no regard for the way people scan pages with their eyes; it's really, really hard to parse all the information when there is information, and obviously when there isn't information it just looks silly. I would frankly consider the information overwhelming *especially* for new users - you could have accomplished roughly the same thing, but much more readable, with a vertical 2-column table like the badges screen.
Comment: Does SO collect statics on any of the changes?  For instance after this change the only time I hit the "tags" is by accident.  If the general population doesn't like a change they will use a feature less often,  and this should be quantifiable.
Answer: It looks "OK" to me on Stack Overflow where most of the top tags have wikis (I'm not saying I like it, just that I can tolerate it) but it looks pretty brutal on Stack Exchanges, where the whole page is almost nothing but white space.
Maybe this could revert to the default view if fewer than 75% or so of the tags have descriptions?
Comment: or, maybe the community would be incentivized to fill out tag excerpts for the first page?
Comment: @Jeff: Artificially making the page look like a dog's breakfast when it looked perfectly fine before is a highly inappropriate way to "incentivize" that. I was even going to pre-emptively point that out but honestly didn't think that could possibly be the motivation here.
Comment: @aaro I will personally fill out all page 1 tags excerpts on all sites, yes, for those that aren't yet populated. Unless you have a good idea of some machine-generated thing to put there instead?
Comment: Exactly, it's just not reasonable to expect that every tag is magically going to end up with a wiki within a few days of a change like this. What's actually going to happen is that it looks like crap for weeks or months or indefinitely as new tags get added and shift around the list.  On a site that gets 10-20 questions a day, there are going to be very few people who bother with wikis. You've got to assume that for the purposes of this page, many tags aren't going to have wikis, and make the design accommodate that.
Comment: @Jeff: the people who need the tag wikis are never going to visit the tags page. You're lucky if they happen to hover over a tag and notice the description that pops up. You've made the tag wiki page ugly just to spite the users who already know the value of tags. I really don't understand how this is a good thing in any sane universe.
Comment: @aaro it is, so your community can fill the excerpt, or I will do it for you. Either way works for me.. I'll spend all weekend on it.
Comment: @Jeff and what about people who click through to the second and third pages, and so on?  You do realize that 9 out of 10 (maybe more) people who go to that page have no interest in doing that?  Are you personally going to fill out excerpts for *all* the tags on *every* site? I'm all for encouraging people to fill in tag wikis and I liked the gentle nudging of the badges and tooltips... but this is basically trying to *force* people and that is aggressively user-hostile behaviour.
Comment: @raven this discussion is why we did it; we wouldn't be having it otherwise, and tag excerpts could be safely swept under the rug and forgotten forever as they have been in the past. It emphasizes the importance of the tag wikis, at least for page 1 tags that describe *what a site is*.
Comment: @aaro all I care about (and all the vast, vast majority of users will ever see) is page 1. I have no problem assisting to make sure all page 1 tag excerpts are set on all sites.
Comment: @Jeff: Have you determined that the tags page is where a significant number of people form their opinion of a SE site?  I would think it would be the sites root or questions page.  By the time they get to exploring the tags page, aren't they already hooked in?  Don't they already know *what the site is*?
Comment: @raven the tag excerpts go a long way toward educating people about what the site is, and what the tags mean. I'm very happy to put them front and center. Just editing them to get into shape here on meta is quite illuminating.
Comment: @Jeff: On the main sx sites, I think I'll learn to prefer the new design. However, on _meta_.tex.sx, we have hardly any tag wikis, and I don't think they're that important. Maybe for the mod tags, yes, but we should fill out _all_ the tag wikis on the main site before bothering about meta. In short: For meta.tex.sx, I don't like it at all.
Comment: @hendrik we'll be pushing all the common meta tag wikis to all meta sites, so don't worry about that. It's the main site page 1 tags that should be quite good (and to a lesser extent page 2)
Comment: @Jeff: Thanks a lot for the info. That would be very helpful indeed. On tex.sx, the page 1 tags are quite good already; page 2 is still nasty.
Answer: The only thing I ever used the old tag page for was searching for tags. Since that still works just fine, I have no problems with it being changed.
That said, the last line of long summaries is cut in half on Stack Overflow and looks lousy - that should probably be fixed. But even with it broken, it's no worse than the old page (which didn't show summaries at all.
Answer: I don't really see the point of the redesign of that page except to make it match the new Users page design.

For me at least, showing fewer tags means showing less information. This also means a lot more paging if people are actually browsing through the tags (something I've never done; not to say people don't do that).
When searching for tags, especially a broad search, the result tags themselves are very spread out on the page visually, making it more difficult to consume the results.
I find the new page order (changed from [top-to-bottom, left-to-right] to [left-to-right, top-to-bottom]) quite annoying because I expect the page to be a list of information. (I realize the same thing happened to the Users page, but it's less annoying there somehow.)
If I'm a programmer, on Stack Overflow, do I really need to see what the C# tag means right on the page? We already have the tag popups which show the same information (more, actually) if users are curious. Yeah, the popups aren't really obvious, but they tend to pop up so aggressively that they're really hard to miss.
Answer: Yeah, Its crowded, and some descriptions are not intended to fit in the ~100 chars, so some are cut off, becoming not-so-useful descriptions.
But I believe they are still working on it at the moment. It might not be final page yet.
Answer: I preferred the old tab page, but I can see the usefulness of displaying the descriptions. I see two problems with this, however.
First, many descriptions are truncated. It looks silly. Either the character limit for the excerpts should be reduced to avoid truncation or the design should be changed to accommodate longer excerpts.
Secondly, when you get past the first few pages on most sites (i.e. not Stack Overflow), you end up with a lot of unnecessary whitespace. It's not really aesthetically pleasing. Even if the goal is to encourage the creation of tag-wikis, you can't reasonably expect little-used tags to have a wiki.

I don't like the new tag page


Setting different email address on LG G3

Question: I am not computer savvy, I don't want you all to laugh at me. When I set up my cell phone I used the same email address that I use on my home computer.  Needless to say, I get all my emails on my cell as I do my home computer.  I don't like that.  Can I set up a different email address for my cell phone, and if I do that will that delete my email address from computer?
Answer: Obviously not. It is even possible to add a variety of email accounts on your LG G3 including personal email and work email . But for your case, simply add a new adress. Create your secondary email adress and delete the main adress (from the phone: settings > account > Google > [your address ] > delete).
Now you have two addresses, one on the computer, the other on the phone.
Answer: I understand from your question that you do not want to receive any email from your "computer" email account, onto your phone.
For that you can remove your current account from your phone, and add a new one. Simply go to settings -> accounts -> Google -> "email@example.com". Now open the menu (three dots on the top right) and select "remove account".
This will remove the account from your phone, but you will still be able to access this account from your computer.
Now you can add a different account. Open settings -> accounts. And press in "add account" -> "Google" there you'll have an option to add an existing account, or to create a new one.


What is the Japanese equivalent of "to pick up a girl" or "to hit on girls"?

Question: How do you say "to pick up girls" in Japanese?
I would like to say: I'm going to go and pick up some girls!
I tried: 女を持ちに行くぞ!
But I don't think 持つ is the right verb to use here
Comment: see also 口説く http://dictionary.goo.ne.jp/jn/62414/meaning/m0u/
Answer: You're right about 女を持ちに行くぞ! -- that sounds horribly odd, and it quite made me smile.  :)  It sounds like a troll going out to literally grab some women and come home, perhaps to throw them in the stewpot.
The word
When it comes to picking up girls in a less literal and more figurative sense :), the word I learned years ago living in Japan was ナンパする.  Now that I'm researching the term, the etymology seems quite interesting too.
The origins
From what I can glean out of Shogakukan's 国語{こくご}大辞典{だいじてん} and Sanseido's 大辞林{だいじりん}, the kanji spelling is 軟派{なんぱ}, literally "soft group, softliner".  This is (was?) an antonym for 硬派{こうは} or "hard group, hardliner", which apparently referred to young men who viewed finer clothes and interacting with women as effeminate and weak.  In contrast, the "softliners" were young men who enjoyed the company of women and liked dressing well.  Over time, 軟派{なんぱ} seems to have shifted from being used primarily as a noun as "this kind of young men" to more of a verb use as "to be sweet on women" and then to "to seek out members of the opposite sex for purposes of having fun" (loose translation of the Daijirin definition for sense 5 shown here).
I have noted that women may also use the term in modern usage, so it may be more of a general "to pick someone up".  (That said, I may be mis-remembering, or accurately remembering dialectal usage.)  There is also 逆{ぎゃく}ナンパ, which does seem to be restricted to meaning a woman picking up a man.
The spelling
I've heard this term used in speech much more than I've seen it in writing, but my general sense is that this word is now more commonly spelled in kana than in kanji.
Comment: Trivia: there is also 逆ナンパ, used exclusively for women picking up men.
Comment: @kuchitsu, thank you! I'd forgotten about that one.  I'll edit momentarily.
Answer: 「ひっかける」

http://renso-ruigo.com/word/%E5%A5%B3%E3%82%92%E5%BC%95%E3%81%A3%E6%8E%9B%E3%81%91%E3%82%8B のキャッシュです。
女を引っ掛けるの類語、関連語、連想される言葉
 ・ 路上で女を調達する ・ 言い寄る ・ ボーイハント ・ ガールハント ・ 逆ナンする ・ 口説く ・ 女漁り ・ 軟派する

「ガールハント」

zokugo-dict.com › カで始まる俗語一覧
ガールハントとは"girl(少女の意)"と"hunt(狩るの意)"の合成語で、男性が遊び目的の女性に声をかけ、ひっかけることをいう。ただし、ガールハントは和製英語であり、"girlhunt"といった英単語はない。1950年代から普及したガールハントだが、1970年代末辺り ...
Comment: It would be worth adding that ガールハント is 死語, obsolete now.
Answer: "女を持ちに行く" doesn't make sense in Japanese at all. "女を引っかける" is commonly used for "tempt / make advance to a woman." "(女を)ひっかける" is a colloquial version for "誘惑する."
"ナンパする" is also used in the same meaning of "引っかける," especially among yougergeneration. It derived from "軟派" which is defined as ⑤遊びを目的に異性に交際を求めること。[例]かわいい子をナンパする – to approach the other sex just for sexual pleasure. Example: hit on a cute girl. "


mold on basement walls

Question: I have a basement that I am planning on finishing.  There was a mold problem.  After washing the basement walls, I soaked them in Concrobium.  I then painted the walls with a masonry waterproofing paint that's antimicrobial. Two days later, I see brown mold stains coming through the paint.  Is the mold still living?  What can I do here?
Comment: Are the walls masonry or drywall?
Comment: It doesn't sound like mold. Mold won't grow through the paint in two days. It may be new mold on top of the paint but the antimicrobial additive should be preventing that. May be some type of efflorescence but the masonry waterproofing paint should prevent that. If you have cleaned all the mold off the walls as you indicated there shouldn't be anything to bleed through. Might want to do a mold test to see if it is mold or not and post some close up pictures. By the way, what did you wash the walls with?
Comment: I used Concrobium House and Deck Wash.  And then I soaked them in Concrobium Mold Control.  And then I painted two coats of Seal-Krete waterproofing masonry paint, which is very thick stuff.  I noticed with painting, there were a few brown spots that just came right through the paint immediately.  Other spots have appeared 24 hours later.  The basement is dry.  The walls were bone dry.  There's plenty of ventilation.
Comment: The walls weren't mold free.  The foundation walls probably have a bit of water in them.  You have now sealed the water in and enclosed the mold which is a perfect growth multiple.  You need to really clean the mold perfectly.  The paint is something I would never suggest in your case.
Comment: If you ask me the most relevant question is do you have water proofing layer under your floor and behind your walls? Also I'm 99% sure that mold wasn't removed completely.
Comment: Bleach does not kill mold. Comcrobium is a great product but I dont know what your doing wrong.
Answer: I have never used Concrobium.  I have cleaned foundation walls with hot water and bleach.  Now that you have painted you have added something else into the mix.  The paint can actually harbor the mold.  I would simply get a heavy bleach and hot water solution with some heavy duty metal brushes and scrub the crap out of the whole area.  The paint probably has to go.  Make sure you have gloves on, goggles, and a mask.
Fan the area out for 2-3 days.  You need to wait a minimum of 2-3 weeks and possibly a few months before I would even think about drywalling.
I would really try to get at the source though.  Even if mold is growing it needs food.  It wouldn't have returned that back unless your basement was feeding it water.  If you don't take care of the moisture issue first you will keep fixing a mold problem.
Comment: Thanks for the feedback. I haven't installed the drywall yet. I'm just talking about the foundation walls. I painted the concrete walls after treating them with Concrobium and the mold is showing through two days after I painted them. I'm surprised because I really doused the walls with Concrobium. They were bone dry when I painted. I want to deal with this before I do all the framing and drywall work.
Comment: +1 for pointing out the source of the problem seems to be moisture. Even if it is not mold but something else leeching through, moisture could very well be a decisive factor.

mold on basement walls


What is split portrait lighting?

Question: Ok, so I got interested enough in the other lighting setups, what is split portrait lighting and when is it appropriate to use?
Comment: I'll be your dancin' monkey and answer this quesiton! ;-)
Comment: can we have a question like "what are the different types of lighting" and have done with it ;)
Comment: Now where's the fun in that? :-)
Comment: Actually, I'm liking getting more detailed responses in a per question format.
Answer: What is Split Lighting?
Split Lighting is one of the 5 basic lighting setups used in studio portrait photography. Split lighting at its most basic level is constructed with a single light source placed 90 degrees offset from the subject and a bit higher than eye level, lighting one half of the face, and leaving the other in shadow.
The thing that distinguishes Split Lighting from Short or Broad lighting is the placement of the subject's head- Split Lighting is always taken with the subject facing square to the camera, unlike Short, Broad, and Rembrandt lighting which all have the subject's head angled in relation to the camera.
One-light Split Lighting setup:

When do I Use Split Lighting?
Split lighting is a very 'moody' lighting option, so it is generally used when the photographer wants to create a strong sense of drama with the image. It is less frequently used in portrait photography because generally people want to see a subject's whole face in a picture, though it does go in and out of fashion for commercial and advertising photography every few years. This is often referred to as 'the comic book villain' lighting style, and indeed, many comic artists use this technique when they are portraying the bad-guy in their comic books. Whereas Short Lighting and Rembrandt Lighting are 'everyday' lighting choices and the vast majority of portraits will use one of these lighting setups, Split Lighting is an 'accent' lighting choice... A session with a small number of Split Light portraits can add some variety, but a little goes a long way and an entire session of Split Light portraits can become boring very quickly.
Comment: It's actually just a Photoshop file with lots of different elements that can be arranged however you'd like on a page. It was designed by Kevin Kertz and you can download it for free from his website here: http://www.kevinkertz.com/ (link is bottom center of the page) I think the elements he created are really classy looking, myself.
Comment: what do you use to make your lighting diagrams?
Answer: Here is a summary of the main lighting schemes : paramount, rembrandt, split, etc.
The split is achieved by placing the main source to 90° relative to the axis of the face and approximately at the height of the face. it can be done in broad lighting and more rarely in short lighting.

What is split portrait lighting?


Verbs of perception with passive voice

Question: Is "I saw this being used by you" (odd sentence) the correct way of phrasing this? The word in question is being which I don't know why it is correct. I asked a very similar question some time ago but the answer referred to the other meanings of the verb "see" as its explanation whereas it got its main meaning here. Of course I could avoid the passive altogether and definitely should here (I saw you use...) but I want to know regardless.
Answer: This is the correct way to say it, if you really want to use "being" in the sentence. As you mentioned, the better way to say this is this:

I saw you using this.

But if you're set on using the passive "being", then yes, this is correct! It isn't used super often, but it's understood by anyone who hears it.
Comment: A more common passive mood statement would be "I think that you are being used", with the connotation that somebody is taking advantage of you.

Verbs of perception with passive voice


How does bike stay balanced when the gear is on the side not in the middle

Question: I wonder why because my road bike has crank and rear gear on right side so I thought they might lean on right side?
Comment: @Szabolcs I'm not sure the question is really detailed enough to justify the depth required to interest Physics stack exchange. However, it's a good question for here as it is.
Comment: Any weight applied to one side of the bike does have some non-zero effect that will have to be compensated for, drivetrain parts included. It takes a lot before the effect is noticeable to a rider, but it's there.
Comment: Ask your physics professor.  Or maybe ask on https://physics.stackexchange.com/
Comment: @NikoNyrh - The torque is not being applied "off-center".
Comment: Not enough weight to unbalance the bike. And the force from your legs are moving the force backwards into the rear wheel. Not to the side.

Also, bikes are naturally quite top-heavy and don't stand up on their own.
Comment: Do you ask this because of the weight of the parts, or because the pedaling torque is being applied off-center to the bike? With a static weight you'd be amazed how well the bike can handle it just by tilting it to the opposite side.
Comment: Indeed, this should be moved to Physics.SE. The most highly voted answer doesn't even mention angular momentum and seems to imply that balancing is mostly up to the rider which is not true (otherwise everyone who can ride could also track stand).
Comment: @LoremIpsum I would like to -1 that comment. Not everyone is as gifted in understanding physics as you are, and there's no harm in asking these inquisitive questions. And I would expect you to know the insignificance of angular momentum regarding stability.
Answer: The answer - of course - is that the bicycle doesn't balance at all. Try and stand one up if you can, you'll be there a long time.
However, when you are riding the bike, you can dynamically account for unbalanced loads using the steering and your body position. It's easy to ride a bike with a pannier bag on just one side weighing several kilos - significantly more than the drivetrain components! - and still be able to hold a straight line or maintain proper control.

Thanks to @WillVousden for pointing out that a "normal" bike (without a rider) will be able to roll eg down a hill, sometimes for quite a long time, until it falls over due to veering off course, slowing down too much or hitting an obstruction (including a rough surface). The drivetrain doesn't have much effect on the weight distribution of the bike in this scenario as (mentioned in other comments) the drivetrain components are all quite close to the centreline and even the combined weight of them is not enough to cause the bike to lean by a noticeable amount, though there is probably a calculable effect.
Comment: Worth noting that with the right forward speed, frame geometry, and mass distribution, the bike doesn't even need a rider to stay upright. Bikes can be self-stable.
Comment: In fact, very few vehicles are perfectly balanced on the center line.  A car with only a driver and no passenger is biased towards one side by the weight of the driver.  Okay, so that has 4 wheels to stabilize it.  A motorcycle doesn't, but it's not center-balanced either.  The engine is off to one side, the fuel tank may be on the other, tailpipe is usually only on one side, etc.  Airplanes aren't usually fully balanced either, but compensate with rudder/elevators to stay level.  (I was once asked to change seats on a smaller plane when one side was overfull.)
Comment: Roll a riderless bike down a slope, and it won't *always* fall over to the right. The gear/chainwheel is a very small proportion of the total weight of the bike.
Comment: There's a bike race at a university in Indiana where they take advantage of this phenomenon, @WillVousden, every time they change riders!
Comment: Thanks @Tim that's right, and different forces are involved in keeping it upright from those implied by the original question.
Comment: Thanks @WillVousden   I had to look up this paper: http://bicycle.tudelft.nl/stablebicycle/StableBicyclev34Revised.pdf  The essential criteria is that the falling bike has to steer into its fall, and one way they ensured that was with weight forward on the steering assembly.
Answer: There are many parts to the balance of a bicycle.
First, the weight of the Derailleurs, Cogs etc. is fairly small compared to the total weight of the bike, and a lot more so compared to the combined weight of bike, driver and baggage. It's also still pretty close to the center pane, meaning there's little force and a short lever, resulting in very little "unbalancing momentum".
Then, balance of a bicycle is dynamic and not static. You might notice, when driving very slowly, that you are not going in a straight line, but in long s-shaped lines (how do you say that in English?). That means, when you start leaning to the right, you automatically steer to the right, and vice versa. As a result, on average you'll have the center of mass above the pivot axle (which is the theoretical line drawn between the contact points of your wheels with the road).
Additionally, as you go faster, you get gyroscopic stability from the rotating wheels. Just like a spinning top, any spinning mass has a tendency to maintain its attitude, i.e. for your bicycle wheels, a desire to stay upright. You can test that easily, by holding a wheel by its axle and changing its direction or attitude. then, have someone spin it up, and try the same changes in attitude. You will notice it to be much harder the faster the wheel spins, because of the gyroscopic stability.
Comment: I would suggest "in slow sinusoidal oscillations", but then people would notice that I've studied physics...
Comment: "Long, s-shaped lines" sounds right to me :-)
Comment: @Burki After you unpack the concatenation, I think "snake shaped lines" would be the accurate phrase :D
Comment: In german, we say "schlangenlinien", which would translate as "snake (shaped) lines". I was wondering if there's a similar term in English
Answer: It works similarly than steering a bike: you angle the bike away from the upright position, although only very slightly in contrast to steering where you angle a lot.
A bike that is steered needs the center of mass far left or right to the tire contact pacth centerline. You do that by countersteering, which moves the wheels of the bike to the right for example. If the center of mass is traveling straight and wheels are moving to right, the center of mass will soon be left to the tire contact patch centerline, allowing you to initiate a left turn.
A bike that is riding straight needs the center of mass directly above the tire contact patch centerline. If there's a heavy pannier, let's say a fully loaded Ortlieb Back Roller (9 kg) on one side of the bike only, you just sit straight on the saddle and slightly angle the bike in such a manner that both you the rider, and the bike underneat the rider is slightly angled to the other side. This brings the center of mass above the tire contact patch centerline.
It doesn't require much angling. The bike is presumably at least 10 kg and the rider at least 60 kg. This makes 70 kg total angling capacity to counter the 9 kg load.
Answer: Those parts are not far from centre, and light compared to you (the rider) or the mass of the whole system.
While riding your bike and steering + shifting your weight side to side to maintain balance, you probably need to lean a tiny fraction of a degree to the left (on average) for the bike+rider center of mass to be centred above the contact patches of your tires.
(It doesn't have to mean the bike frame is leaning at all, though, if your weight in the saddle is slightly to one side.)
Any actual change in direction of travel requires having the centre of mass inside the turn radius of the wheels, in which case this slightly off centre mass will require leaning a fraction of a degree more or less.
You'll never notice a fraction of a degree when riding; it still feels like the bike is upright.  (Unless it's not, like if you stand on the left pedal and let the bike lean left, against the inside of your left leg.)
You could still balance a bike with a 5 kg weight welded to stick out maybe half a meter to one side of the bike, where it would have a significant effect on balance.  (or 10 pounds, 1 or even 2 feet if you prefer non-metric units). Rocking the bike noticeably to the left would bring the weight in closer to the centreline, but the more noticeable effect.  But most of what you'd do to balance is probably stand up on the pedals so you could shift your bodyweight to the opposite side a bit.  You being much heavier than 5 kg wouldn't need to go nearly as far out to the side.
This thought experiment hopefully demonstrates that it's possible to balance an uneven bike, with the amount of asymmetry determining the amount of compensation required.  With an actual bike that's not intentionally unbalanced, it's pretty easy to see that the amount of compensation is small enough to not be noticeable.
You may even have ridden with a bag hanging from one handlebar, which is extra bad because it also affects steering directly, as well as sticking out to the side.
Answer: Let's consider a car - they are not balanced but do not fall over.  That's because the Center of Mass is between two wheels and two axles.
Most vehicles are front-heavy, and while the engine is central, the driver is always on one side which adds ~100 kg.  A front-seat passenger is optional so may or may not counterbalance.
Returning to your question about bikes, the center of mass is much higher up whether the bike is ridden or not.  And the contact patch is much narrower, so it is easy for the COM to not be over the the contact patch, and bike falls sideways.
Notice the bike does not fall forwards or backwards over it's wheels, because the COM is between the wheels.
Comment: I feel like the comparison with a car is a little misleading, if only because cars don't exactly fall over the way bikes do if no balancing input is provided.
Comment: @MaplePanda true - I'm looking for anything with more than two wheels, inline.  So a motorbike won't be a good example here.


Difference between Wordpress and Webflow

Question: In regards to blogging, what is the difference between WordPress and Webflow? According to Wikipedia, WordPress is a content mangement system (CMS) and Webflow is a "software as a service for website building and hosting". Webflow gets compared to Squarespace, Weebly, Wix, and Webydo -- but not WordPress. Is it that Webflow and friends are a higher level abstraction that may include a CMS?
Answer: The main difference between services like Webflow (and Squarespace, Wix etc) and WordPress is that WordPress is open source.  You can host it yourself wherever you like  You can tweak code or even contribute to the WordPress core.  There are a squillion themes that you can also modify to suit.  In short, you pretty much have full control.
With other services you are locked in their ecosystem...by design.  When you reach the limits of what they can do you are stuck.  WordPress has thousands of plugins to extend functionality, you can even create your own - I did.
When you do outgrow a proprietary service, migrating is painful.
Comment: @Plato - trust me on this.  I own a web hosting business and over the years have seen a lot of pain as people realise they are either stuck with the service or that have to re-start their sites from scratch.
Comment: Looks like SaaS website builders can indeed be difficult to export. From Wix not allowing it to Squarespace natively supporting WordPress export (src: https://ma.tt/2021/04/wix-dirty-tricks/). Generally, seems like company's best interest for one not to leave the proprietary platform.


How to program two NXT motors to run at the same time?

Question: I'm working on a project with multiple axis of movement… trying to get two motors to run at the same time in order to achieve a mix of two!
Comment: I'm building a robot that will draw specific lines on a popsicle stick. The stick is on a table that moves up and down. The pen is attached to something that makes it move left and right, forward and back. I can achieve a straight line… but for a diagonal line I have run into trouble.
Comment: Can you describe the result you're trying to achieve?  I don't understand the "mix of two" part.
Answer: In NXT-G if you place a block after another block it will run in succession. To get two motors running at the same time you can place two motor blocks, one at the start and the other just above or below. Drag the sequence beam (the white Technic beam) to the second block to complete the circuit.
Don't forget to make sure the motor blocks are controlling separate ports and that both ports on the NXT brick are attached to motors.
You could just use one block to control the two ports but they would both have to be running in the same direction.
Answer: It depends on the programming language, but assuming you're using NXT-G then the Move block may be sufficient.  The Move block is designed to coordinate 2 motors so that they both rotate at the same speed over a distance.  The Move block has settings for speed/power of the motion.  There is a forward/backward setting.  There is also a steering setting, which is implemented as a slider bar giving about 20 ratios of motor output.
Setting speed to 75, forward and steering = 0 should give you a diagonal line.
Change the steering to something +- 100 to give other diagonal lines.
To give straight horizontal or vertical lines, turn one motor off, the other on.
Comment: Both answers helped, thanks! It was just a little thing I had to change in the command… now to get the exact angle of diagonal I want is a whole other story :P
Answer: If you want two things to run at the same time place the first just in front of but not touching the start block and the other just below the first. Click on the joiners (grey ovals on the end where blocks join) and press wire from here and tap on the first code. Do the same with the second.
Answer: do 2 starts. From the orange. :)
Comment: Hi krisblom! I believe you have the correct answer, but it would be much nicer if you could flesh it out a bit better. E.g. by including detailed steps, maybe screenshots, etc.


HP LaserJet Always Uses Color

Question: I have an HP color LaserJet CM1312nfi.  It always seems to use color toner even if I'm printing black and white text.  I looked through the settings but I couldn't seem to find anything relevant.
Answer: All printers with colour ink or toner will use colour to do greyscaling around letter as an antialiasing effect. This improves the quality of the print.
The User Manual for the printer has an entry for this in its section on page 88 (User Manual Link), the setting is called "Neutral Grays", and you want the option to be "Black Only" instead of 4-color.

HP LaserJet Always Uses Color


Should [tag:jello] be a synonym of [tag:gelatin]?

Question: I don't have enough rep to directly suggest a synonym, but I have just observed (via a question that was closely related to one I asked a while back) that there are separate jello (9 questions) and gelatin (48 questions) tags, with no overlap. I believe that Jell-O is just a brand name for gelatin products, so is there any reason why it should not be a synonym of gelatin?
Answer: Agreed, I can't think of any occasion where "gelatin" won't cover "jello".
Synonym created.


What is volatility drag?

Question: Given a leverage portfolio, what does the term volatility drag mean? And how does it affect the value of the portfolio?
Answer: See the answers for the question Investing in a leveraged index ETF for retirement.  Risky? .
Whether an ETF is the investment or you create your own leverage, it's the same phenomenon.
Say the market (or whatever 'basket' you invest in) is up 10% one day, down 10% the next. .9 * 1.1 is .99 of course and that basket is off 1%. But. If you are leveraged 2X, You will be up 20%, then down 20%, and .8 * 1.2 is .96 or down 4% vs the basket down just 1%.
Comment: -1 That depends on how you're leveraged. If you've borrowed your own money that won't be a problem.
Comment: How does using ones own money lessen the phenomenon described?
Comment: Because unlike a leveraged ETF, you don't "seek to replicate 2X the *daily* performance of the S&P500" or whatever: you replicate 2X the "however long I hold this position" performance, minus "the interest costs I'm paying on the money I've borrowed." If you own 500 shares of XYZ and owe $500, and XYZ's price quintuples one day and falls to nearly zero the next and day three returns right back to where it started, you still have 500 shares and $500 in debt (plus interest) and the daily performance just doesn't matter (unless your broker does a margin call on you, but that's beside the point).
Comment: Uh, I was being dense. Much thanks for kindly opening my eyes. Crystal clear now.
Answer: In the general case, volatility drag is about how an "average" return over several years may be wildly different than the real return. An example: If your portfolio doubled in value one year, and then halved in value the next year, your real return is 0%. However, if you were being sufficiently careless, you could also say that the average annual return was <code>(-50% + 100%)/2 = 25%</code>. The difference between that 25% and that 0% is volatility drag.
Volatility drag in a sense isn't a real "force" most of the time. There's just a bunch of people out there buying and selling stocks at different prices, and at the end of your investment it only matters what you can sell your holdings at, not where they were in between and how wildly the price swung (+). Any "drag" you experience is a mathematical artifact of being mislead and using the wrong set of numbers (though it's worth thinking about how you may be looking at the wrong set of numbers even now).
With regards to leveraged portfolios, things get trickier, especially when you turn the math into returns.
There's a couple of ways of leveraging your portfolio. A standard way is to borrow on margin: you put $1000 in an ETF, and then take out a loan against your holdings in that ETF for another $1000 and buy more of that ETF. (You don't actually need to do it in multiple steps like that, but conceptually that's what happens. Also, in practice you probably don't want to borrow every single dollar you can, but whatever, this is an example.)
Another way is to invest in a leveraged ETF. You place $1000 in a fund whose prospectus says something like "This fund seeks to provide 2 times the daily return of [index]."
Now suppose that the index the ETFs are trying to replicate goes crazy and doubles in value one day (+100%). Then the next day everyone comes to their senses and it returns to its original value (-50%). In the first case, you still own the same number of shares in that ETF, and you're essentially back where you started, minus two days' worth of interest on the $1000 you're borrowing.
In the second case, you gained 200% of your original investment the first day, but then lost 100% of your portfolio's value on the second day. Game over; you lose.
(+) Price swings do make a difference if you were adding additional funds in the middle of the process - for instance, by reinvesting dividends - but that's another kettle of fish.
Comment: You say "in the second case" but don't say what 'second case' you're referencing.
Comment: The para starting with "now suppose" is the second case.  The answer is fine.

What is volatility drag?