Node discovery (Kademlia) not working after upgrading chain from v2.0 -> v3.0

Question: I am experiencing some issues with node discovery after upgrading from substrate 2.0 to substrate 3.0
After upgrading our chain from using substrate 2.0 to substrate 3.0 (Upgrading the client & runtime with a forkless upgrade), the nodes fail to discover peers through Kademlia. mDNS is disabled (on purpose) and only bootnodes are being discovered.
If I the same build and create a new chainspec and chain starting from block Kademlia discovery is working as intended.
The version of libp2p used is 0.36.0.
I add –log sub-libp2p flag on the node and I can see in the logs that the substream is opened, the Kademlia discovery being invoked, but throws this error Failed to get record: NotFound
validator-1_1   | 2022-02-17 15:33:59.909 TRACE tokio-runtime-worker sub-libp2p: External API <= Message(12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp, SetId(2))
validator-1_1   | 2022-02-17 15:33:59.910 TRACE tokio-runtime-worker sub-libp2p: External API => Notification(PeerId("12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp"), "/paritytech/grandpa/1", 150 bytes)
validator-1_1   | 2022-02-17 15:33:59.910 TRACE tokio-runtime-worker sub-libp2p: Handler(PeerId("12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp")) <= Sync notification
validator-1_1   | 2022-02-17 15:33:59.926 TRACE tokio-runtime-worker sub-libp2p: Handler(ConnectionId(TaskId(0))) => Notification(12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp, SetId(2), 150 bytes)
...
validator-1_1   | 2022-02-18 08:20:58.033 TRACE tokio-runtime-worker sub-libp2p: Addresses of PeerId("12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp"): ["/dns/validator-0/tcp/30333", "/dns/validator-0/tcp/30333", "/dns/validator-0/tcp/30333", "/dns/validator-0/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp"]
...
2022-02-18 08:21:04.063 TRACE tokio-runtime-worker sub-libp2p: Libp2p => Failed to get record: NotFound { key: Key(b"h\xe9\xa0\xe3h\x17\x1e\xfc\xfds\xc0\x8c\x11\x8c\n\x9f\x03\xa6\xe5\xac\xa6\xd5{\x11\x83\x94\xeda\xc9\xa6P\xc9"), closest_peers: [PeerId("12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp")] }
validator-1_1   | 2022-02-18 08:21:04.063 TRACE tokio-runtime-worker sub-libp2p: Libp2p
...

Are there any know issues in this area? Closest I could find was this, but the fix is already applied to our codebase.
https://github.com/paritytech/substrate/pull/7985/files
I also tried to rotate the session keys in the validators, just in case there was an issue with old keys but nothing changed.
Any ideas/suggestions?
Comment: Which substrate 3 version? A monthly tag, master or something else?
Comment: v3.0.0 tag from codebase
Comment: I think 3.0.0 tag was a while ago. I would recommend choosing the latest monthly tag or the last tagged polkadot version or master.
Answer: This sounds like some incompatibilities from the numerous libraries involved. Substrate 2.0 is very behind. I would rebuild your node starting from the latest node template to fix this.


How to disentangle the environment after the quantum erasure channel?

Question: How does error correction disentangle the environment from the encoded state after the quantum erasure channel?
For example; the paper Codes for the Quantum Erasure Channel introduces a 4 qubit code for the erasure channel, with the first codeword: $$|\bar{0}\rangle=|0000\rangle +|1111\rangle,$$
If we assume that an erasure occurs on the fourth qubit, then applying the channel isometry, the state becomes $$|000e\rangle \otimes |0\rangle_E +|111e\rangle\otimes |1\rangle_E .$$ The reduced state accessible by the decoder is $$|000e\rangle\langle 000e| +|111e\rangle\langle 111e|.$$ If the decoder map preserves even parity of vectors, then it will map $$|000e\rangle \rightarrow |0000\rangle$$ and $$|111e\rangle \rightarrow |1111\rangle.$$ Then the reduced state is mapped to $$|0000\rangle\langle 0000| +|1111\rangle\langle 1111| \neq |\bar{0}\rangle\langle\bar{0}|,$$ which is not the original state? What am I missing about the decoder operation?
Answer: $\newcommand{\ket}[1]{|#1\rangle}
\newcommand{\bra}[1]{\langle #1|}
$The erasure error is not a unitary transformation. You can't reverse it with a unitary mapping.
Instead, run the full gamut of error-detection and correction. You take your state post-erasure and add a blank qubit
$$
(\ket{000}\bra{000} + \ket{111}\bra{111}) \otimes \ket{0}\bra{0}.
$$
Then do the syndrome measurements on this. In this case, the code is actually a stabilizer code with generators $XXXX, IZZI, ZIIZ$, so quite simple. The syndrome measurements will project the four-qubit state into a distorted code space $\tilde C$, i.e. the code space $C$ affected by a Pauli error. Here, because there is one erasure it will be a single-qubit Pauli error.
You will probabilistically get one of four random syndromes (corresponding to $I,X,Y,Z$), because the erasure error is not a Pauli error. Based on the syndrome you get, and knowing that the error is on the last qubit, you figure out the decoding operation to apply.


Drawing Neural Network diagram for academic papers

Question: Is there any tool that one can use to draw neural network architecture diagram for research papers?
Example diagram:
Answer: There are few online tools available that give you ability to draw "canned" CNN  diagrams like NN-SVG
EXAMPLE :
Another popular choice seems to be InkScape
There is always PowerPoint
Answer: As far as I know, most researchers use general drawing tools to visualizes neural network architectures. Although there are some libraries to do it automatically. However, the visualizations in your paper are quite important to get your ideas across and using custom hand-made visuals allows you to visually explain your work in the most appropriate way (not being limited to the design choices of an automated drawing library).
Therefore, I suggest to just use a general drawing tool of your choice. Also, MS PowerPoint or Google Slides can be quite convenient to draw shapes as in above picture.


running hadoop on Google app engine?

Question: Is it possible to run map reduce jobs on Google app engine?
Any reference or tutorial would help
Thanks
Answer: Sort of.
You can't use the actual MapReduce framework - the architecture is too incompatible with AppEngine.
However, there is an equivalent system built specficially for GAE - appengine-mapreduce. That site is a bit confusing, as the first version of the code only supported mappers, without the subsequent reduce step - recently they released a version with full mapreduce support, but some of the documentation still referes to the earlier mapper-only one.
The best introduction is the GoogleIO talk from Mike Aizatskyi.
Answer: You cannot run Hadoop on Appengine (No filesystem access as well).
You may want to check AWS ElasticMapreduce. Its a cloud based platform for running Mapreduce jobs.
ElasticMapreduce
Answer: Here is the full documentation: https://developers.google.com/appengine/docs/python/dataprocessing/overview
Answer: Saw this Google Cloud Platform advertisement:
Hadoop on Google Compute Engine virtual machines
https://cloud.google.com/solutions/hadoop

running hadoop on Google app engine?


XRandR DPI on multihead linux

Question: I have multiple screens with different correct DPI settings.  I can use xrandr --dpi X to change DPI for all screens, is it possible to set different DPI for each screen?  How do I make apps recalculate font sizes when they are moved to a different screen?  xrandr --dpi X only affects new windows, old windows still use the old DPI value.
Answer: I haven't tried it out yet, but there is a good looking answer here which suggests using the xrandr option scale  which should get you the effect you're after.
UPDATE: This does work, I've written summary instructions here.
Comment: Please, always copy-paste instructions to the answers. It's precaution against information loss of historical questions. Sooner or later, most of external links area DEAD, and that would make your answer pointless... Anyway, most of the users would like to see answers on one site, ...
Comment: Even if that site is another StackExchange site?
Comment: The scale command seem to be very GPU intensive when comparing to multi-monitor set-up on Windows 10. Scale means scaling the pixels directly while Windows 10 resizes the text.
Answer: I was able to solve this (with issues) using the details outlined in the following github discussion: https://github.com/linuxmint/Cinnamon/issues/3606
External Monitor QHD (2560X1440), Internal/Laptop Monitor 3200x1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

OR
External Monitor FHD (1920x1080), Internal/Laptop Monitor 3200x1800
xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

These work, but there is a significant amount to tearing in the high resolution monitor (laptop) when I move windows, resize screens or scroll on a browser. This feels like a software rending solution (which has all these issues of tearing, and slow refreshes).
Its 2017, Linux/Gnome needs to address the multi-monitor, mixed scaling solution. Both Windows 10 and OS X have this resolved without having to resort to command line band-aid fixes that partially work (the tearing issue isn't acceptable for gaming)
Answer: It is not possible to set different DPI with xrandr.
To handle this situation, there are a number of solutions in various forums and Stack Exchange using scaling (e.g. --scale 2x2 or --scale-from 1920x1440).
While these did work for me, there was a slight blurriness on the up-scaled monitor. It was not very obvious and could be missed easily, but I am very sensitive to such things and it gave me headaches.
A better solution which does not create any blurriness is to use --transform instead of --scale. I have no idea what transform does differently from scaling and the fact that it works is only an empirical observation.
The position of the 2 monitors needs to be set properly: the likes of --left-of, --below, etc. don't work as they don't take into account the transformation.
Here is what I am using, with explanations for each value so that you can adapt it to your situation:
xrandr --output DP-1 --mode 2560x1440 --pos 0x0 --transform 2,0,0,0,2,0,0,0,1 --output eDP-1 --mode 3840x2400 --pos 0x2880 --primary

You can find the name and the proper default resolution for your monitors by running xrandr without arguments.

My external monitor (DP-1) has a resolution of 2560x1440
I need to transform the resolution by a factor of 2
My laptop (eDP-1) has a resolution of 3840x2400

I want to have my external monitor above the laptop.
--pos is the position of the top left corner of one monitor in the monitor space (the total area occupied by both monitors).
--pos 0x0 puts the external monitor at the top.
To have the laptop below it, I need to get the proper value for the y coordinate (x will of course be 0 in this case): it is the height of the external monitor (1440) corrected by the transformation (a factor of 2 here), i.e. 1440*2 = 2880.
I am thus using --pos 0x2880 for the laptop.

For reference, this is the system I am using:

OS: Arch Linux
WM: i3
Laptop: 4k
External monitor: 1080p

Note: I initially posted a very similar answer on another Stack Exchange here.
Comment: While the approach is great, it's missing the DPI setting. One of the Monitors' DPI settings should be set - here it's guesswork - and the scaling worked out from that. Maybe you could annotate this otherwise excellent answer with the DPI value which arewhat lead to the scale factors - not the resolutions.
Comment: The DPI can be set through many different ways (`Xft.dpi` in .Xresources, `xrandr --dpi`, etc.) and the OP already knows how to set it. The question was about setting different DPIs through `xrandr`.
Comment: Also, with Xorg, it isn't guesswork, it is 96 (see the note at the top of the section [here](https://wiki.archlinux.org/index.php/Xorg#Display_size_and_DPI)). So setting the DPI for one monitor can be a complex topic and feels to me off-topic for this question.
Answer: you can set different values for each screen with:
xrandr --output <Display1> --dpi X --output <Display2> --dpi Y

To se what  are available use just xrandr,to restart the font. I think you could turn off the display and turn it on again with  with:
xrandr --output <Display1> --off
xrandr --output <Display1> --auto

but am not really sure
Comment: Various sources including https://wiki.archlinux.org/index.php/HiDPI#External_displays suggest that only a single DPI setting is possible at once (in a single Xserver instance). The xrandr command suggested by Agomezl doesn't work.
Comment: As far as I can see '--dpi' is not a per-output setting. It results in a call to XRRSetScreenSize for the entire screen. As far as I can see X11 simply does not support setting different DPI values for different outputs. Which would suck...
Comment: Ah, actually RandR outputs do have a width/height specified in both pixels and millimeters, so different outputs can have a different DPI - but AFAICS there is no RandR call to manipulate the physical size of the output.

XRandR DPI on multihead linux


How to integrate SAP Crystal Reports in Visual Studio 2015 Enterprise Edition

Question: I have downloaded VS 2015. I want to integrate SAP Crystal Reports in VS 2015 Enterprise Edition. I have also downloaded the MSI file of the latest SAP Crystal Report edition and installed it. However, I am not able to see the Crystal Report Viewer.
Answer: I had a very difficult time finding this particular download page and the appropriate download link on that page for Visual Studio 2015 (I also have Enterprise but I don't think that matters too much, if at all for this).  The link is provided below, the download link is titled, "Support Pack 15 (v.18.104.22.1680)".
http://scn.sap.com/docs/DOC-7824
So I did the following:
<code>1.) I had to uninstall two Crystal Report applications that I had previously installed (one was an update for it I think).

2.) Then I shutdown VS2015.

3.) Then I ran the downloaded executable, it installed fine and I installed the 64 bit run-time feature for Crystal Reports.

4.) Then I made a mistake and tried opening VS2015 afterwards, it crashed repeatedly.

5.)  After restarting the PC, I have no more errors and I now have the crystal reports icon in the Report's category when adding a new
item to my Web Application project. It also allows me to use the wizard.
</code>
Hope this helps!
Comment: Finally got the crystal report option with visual studio 2015 with update 1
Comment: I tried the same process like you but still I am unable to find crystal report menu
Comment: Okay, I suggest removing/uninstalling any software related to Crystal Reports and then reinstall the "Support Pack."  Restart the PC, open Visual Studio and I'll hope that you see it there.  -- I had to uninstall all software related to crystal reports before I got this to work.  I hope this suggestion helps.
Comment: Nice job!  I should have included that information in my original answer to you because I'm using VS2015 with Update 1.  I'm glad you now have the Crystal Reports option now.
Comment: Apparently uninstalling and installing it back again is the key. Happened twice, resolved twice with the same approach. Not very convincing though
Answer: You can download it from:
http://scn.sap.com/docs/DOC-7824

Download "Crystal Reports", click in the link "Support Pack 16" ((#1 in the picture)) for developers.
Download the "Run time", clic in the link "MSI 32/64 Bit" ((#2 in the picture)) for the clients.

Finally, restart your PC.... open your visual studio 2015 again and you will see "Reporting" option for Crystal Reports when you add a new item.
Happy code!
Comment: That's fine and dandy, your instructions worked, but I don't want to create a new Crystal Report. I want to look at one that already exists without changing it. We are trying to move our reports from Crystal to SSRS.
Answer: You can download it from this link http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_18.exe
After installing, Open Visual Studio,

Create a folder for the reports
Right Click and Add new Item
Go to Reporting

You will see Crystal Report on the list. Select that and start designing.


Where should I look to find Testing and QA talents?

Question: We are looking to build up a QA and Testing team within our Product Development. We started out by looking for a person with experience both hands-on and as a manager and for a product similar to ours. After a first unsuccessful hiring round we have now focused the search in two areas where we need most support and are looking for two different profiles: a selenium expert and a java test automation engineer. Still we are having very little luck in the job search. Do you know any specific job boards or places where we can find talented testing and QA candidates?
Comment: We can't answer the question without knowing where you are.  A  lot of job boards are region-specific, and even for international job boards, some are more popular in one region than in another.
Comment: Dice.com tends to have some decent talent. There is several linkedIn groups dedicated to QA as well that might be a good resource for you.

If you don't mind, where is the position located at? A lot of the people here (myself included) match the profile you are looking for.
Comment: I agree with Paul, you either go to a job portal and post your requirements there or you can give the contract to a consultancy company which can line up some good candidates for interview. There are plenty of job portals out there you can pick one depending upon your base location.
Comment: Hi very sorry for the late reply! The job is located in Switzerland.
Comment: Any consultancy companies that are specialized on testing and QA? Location is Switzerland.
Answer: Disclaimer: I help run and moderate the site...
Software Testing Club has a jobs board - here
Comment: Thanks! I looked into it and I will defintely post the job descriptions there.
Answer: Meet with real people in meatspace. Find a meetup in area for relevant technology/language, give 2-minute pitch about positions. Possibly even sponsor pizza or soda for participants. This way, you can reach to people who don't actively look for new jobs.
You may also consider researching possible answers to this question in workplace exchange - about finding/hiring good job candidates: https://workplace.stackexchange.com/
Comment: Thanks Peter. Idea worth following up. Unfortunately we have no meetup area but dedicated events. Will see if we can reach out and connect to people in a more informal way.


Exit program in windows command prompt

Question: When in the command prompt: I am looking for a Windows equivalent of CTRL+C in unix and mac to force exit a program in a command prompt. Sometimes my program would just infinitaly wait for... something and I would like to close it without hitting CTRL+ALT+DELETE and force quitting the windows command prompt.
Thanks!
Comment: Ctrl+D also works sometimes.
Answer: Ctrl + C will stop a program running from the command prompt, similar to other operating systems.
To force kill a process from the command prompt, use the following command:

taskkill /F /IM process.exe

/F will force termination, /IM means you're going to provide the executable (image) name, and process.exe is the process to end.
Comment: Make sure to use "process name.exe" if it has a space!
Comment: How to get arround ERROR: The process "remoting_host.exe" with PID 8164 could not be terminated.
Reason: Access is denied.
Comment: Found it myself, going to Services and killing the service with the PID that was returned above.
Answer: Actually, it's Ctrl+C on Windows too. Ctrl+Break usually works as well, but with some commands it has some interesting differing semantics compared to Ctrl+C (see ping -t for example).
Comment: Just wanted to add that Ctrl+Pause also works. Yes, Pause and Break are the same key for most computers, but in my case, and I am sure others, I have to press the FN key if I want to use the Break portion of that key. So, pressing Ctrl + FN + Break works, but so does Ctrl + Pause, which is great for those of us that want to use as few keys as possible.
Comment: According to my experience most program only stops by ctrl+break and less stop with ctrl+c
Answer: Normally, that would be CTRL-BREAK (the PAUSE/BREAK key on a 101-key keyboard) but I think this can be disabled.
Give it a shot.
But this isn't really a programming question so I'm voting to shift it to superuser.
Comment: Do you have any idea if there's an equiv. for a macbook keyboard?
thanks!
Answer: Command to exit command prompt:
taskkill /IM cmd.exe

Exit program in windows command prompt


Which Star do we see at the end of Interstellar?

Question: Is there a name for the star that we see at the end of Interstellar? While Cooper is exiting the Tesseract, we see a bright shining star. I was wondering if anyone knew more about it.
Answer: I'm not exactly sure what star you are talking about here. When Cooper exits the tesseract, he makes a short "handshake" with Amelia traveling through the wormhole in the past, and then he is put near Saturn. There is indeed a bright light on the right of Cooper fading away when Saturn comes into canvas from the left side. It is not entirely clear what light that is.

It could just be a visual enhancement without much significance, somewhat of a lens effect put there for purely aesthetic purposes.
It could as well be a visual artefact of the, admittedly largely unknown and mysterious, "transportation" that brought him there from the tesseract.
Or, if any star at all, it would simply be our local star, the sun.

The only other thing you could be talking about are the two little lights that we see near Saturn right after that. However, notice that those lights have a regular distance form each other and are actually blinking. This is just the spaceship that was sent by the nearby Cooper Station to pick him up.
Comment: @Napoleon...I am referring to the first image posted by you. 4-5 secs into this scene, I see 2 sources of light on both sides of Cooper and the right one moves and there's a flood of bright light on Coop's face.[Could'nt post a pic for the same :( ]
Comment: @Shal Well, then see the first part of my answer, which elaborates on exactly that light.


Accepted Method for Selecting a Validation Set in Python

Question: Is there an accepted method for separating out a validation set in python? In R I would use the sample function. I have 4000 training instances as json and I want to save out a validation set. Should I just randomly pick indices and separate those out? Also is 30% of the training set a good size for the validation set?
Answer: I'm not fluent in Python so I'll stay out of code advices but for the percentage part, a 30% is a fairly standard ratio, as Andrew Ng points out in page 2 of the CS229 material for Model Selection, in http://cs229.stanford.edu/notes/cs229-notes5.pdf.
Answer:
I don't think you'll get much advice on python code. I haven't seen much on this site.
Random sampling is almost always the correct approach. (If you have clustering or events recorded over time or at different locations - then other sampling techniques may have added benefit.
The issue of split sample has been addressed here a few times. Sample entries:
Splitting the dataset into Testing,Cross Validation and Training Set
Logistic regression performs better on validation data

Generally
-70/30 split commonly done. More traditional than anything. (though would be great if someone had a reference for this)
-Often sample size is inadequate to justify 70/30 split (see logistic regression... above).


Who coined the name tensor and why?

Question: Who coined the name "tensor" and why? What does the word "tensor" really mean, not the mathematical definition?
Comment: Is this question appropriate for MO? The reasin I'm asking is that it does not address the mathematical term.
Answer: I think the OP referes to the modern meaning of the word, in which case, according to that website, it first appeared in german physicist Woldemar Voigt's paper Die fundamentalen physikalischen Eigenschaften der Krystalle in elementarer Darstellung published in 1898.  (I do not have access to this paper, but probably this deals with deformation tensors in crystals).
Comment: This is the right answer. Voigt used the word tensor to describe stress and strain (i.e., things that stretched). In mechanics there is the stress tensor, strain tensor, and elasticity tensor. More precisely, it seems that what interested Voigt were special cases of symmetric tensors. See en.wikipedia.org/wiki/Woldemar_Voigt and http://en.wikipedia.org/wiki/Voigt_notation.
Answer: A tensor muscle is a muscle that stretches some part of the body, e.g. the tensor veli palatini or tensor tympani. The word
ultimately derives from the Latin tendere meaning "to stretch", see Douglas Harper's etymonline.
Hamilton first introduced the term to mathematics; see its entry in "Earliest Known Uses of Some of the Words of Mathematics".
Comment: Hamilton's usage has been abandoned, however, and the word means something entirely different now.

Who coined the name tensor and why?


How to restore nautilus 20.04 appearance

Question: I was playing around setting-> appearance-> Window colors that changed the nautilus appearance to an old version. I was happy with the new look. Is it possible to restore that?
Comment: You should not have removed tweaks.. Reinstall tweaks n change the Icon theme to Yaru. If nautilus is opened close it and open again.
Comment: Are the pics from the same system? It seems icon theme some how changed? Did you remember anything that you changed from gnome-tweaks?
Comment: The first one is for me the second I got from a search to show what I mean by new look. I change the appearance from tweak then I restore the change and remove Tweak but I think when I click on the Appearance from system setting it changed the look.
Comment: So you initially had the second image b4 you started playing with the appearence rite. Do you have gnome-tweaks installed??
Comment: Yes I just Installed Ubuntu 20.04 and the file browser looked fine, Then I installed tweak and played with appearance, It did not change the file browser. Now I have removed Tweak and restart to see if it restore back. but it is still the same.
Comment: Yes, it worked great.
Answer: The things present in your images are:
Main theme:

Ubuntu's default "Yaru" theme

you seem to be using the "Yaru Dark" variant
you can change between 3 variants: "Light", the default, and "Dark", on the Appearance tab of the standard Settings app (also called Gnome Control Center)

Icon-sets:
Those dark-grey/purple-ish folder icons belong to the icon-set used by the "Yaru" theme, also called "Yaru" icon-set. To me, these seem to be optimized for dark themes.
The brighter, orange icon-set is called the "Humanity" icon-set. They were used as the default on previous versions of Ubuntu (e.g. 16.04). I find that they offer a much more readable experience in Nautilus, when using a light theme.
You can change the icon-set used in your theme either by running commands like these in the terminal:
# To choose Yaru
gsettings set org.gnome.desktop.interface icon-theme 'Yaru'

# To choose Humanity
gsettings set org.gnome.desktop.interface icon-theme 'Humanity'

or by installing the gnome-tweaks app and changing the "Icons" setting on its Appearance tab.


For what program was this Cessna 182 fitted with canards?

Question: I want to see if anyone knows what the heck is going on here. I was doing a flight out in Palo Alto California recently, and during the run up this Cessna 182 pulled in next to us.   It appears to have a canard foreplanes attached near the firewall of the airplane, and it appears to have a movable control surface on it as well. No this is not a Photoshopped image, this is an actual airplane that was sitting right next to us. I'm just curious if anyone here knows of any program using this aircraft and the purpose of the canard foreplanes.  Thanks.
Answer: It's a King Katmai STOL mod for a Cessna 182. From https://www.avweb.com/ownership/king-katmai-mod-safe-stol/

The full King Katmai modification consists of the canard, 300-HP IO-550, choice of 82- or 86-inch, three-blade prop, speed mods/drag reduction fairings, wing extension, increased gross weight, heavy-duty landing gear, which includes Cleveland brakes, stainless steel leading edges on the gear legs, brake lines faired in behind the main gear legs and routed so they are unlikely to be snagged during rough field operations, heavy-duty Airglas nose strut and oversize tires.

It brings the stall speed down to 31 knots. 3100 lb gross weight takeoff distance of 290 feet from a hard surface runway.
Comment: Yeah come to think of it that's what was written on the nose of the aircraft. I never realized there had STOL kits featuring canards.  Thanks, Terry!
Comment: Could it be the Kenai, since it doesn't seem to have the large main gear tires?
Comment: Whoa, I thought the Grob 115C had a low stall speed at 45 knots with flaps at 60°.
Answer: Terry got it right!  It's a King Katmai STOL Kit.  You can practically squeeze that thing into a parking lot!
Comment: He had me right up to the part where he said it cost $350K(!).
Comment: Yeah they basically do a spinner to tail rebuild.  Not exactly a run of the mill STC kit!
Answer: For those who do not know -- the difference between a King Katmai and a Kenai is whether or not the plane includes the Wing-X STOL wing extensions, which add about 3' to the wingspan.  AFAIK, everything else is configurable.  I cannot tell from the picture whether or not the plane has the wing extensions, so the picture shows either a King Katmai with small wheels (a bit unusual) or else a Kenai.  Note that the video's performance figures are for a King Katmai with its usual tires (29" Bushwheels), not the smaller tires with wheel pants shown in the picture.
(The above assumes it had the 300HP IO550.  If not, there is one more choice -- a 260SE.  Think of that as a Kenai with a 260HP engine.)
As to price -- it can go up to the mid-$400K's -- depends on things like the avionics requested, how fancy a custom interior you have installed, and how fancy a paint job you have done.
Comment: This would be a better fit as a comment than an answer.


java - how to limit sending email by 3rd party tools?

Question: I have a (Win2008 R2) box running the Jenkins continuous integration server.
It's a java program running as a Windows service.
The command line looks like this:
> "C:\Program Files (x86)\Jenkins\jre\bin\java.exe" -jar "C:\Program Files (x86)\Jenkins\jenkins.war" [more params]

I want Jenkins to be able to send email (e.g. when a build fails).
The box runs a McAffee firewall that blocks everything except a whitelist of programs/ports.
I have added a whitelist rule allowing C:\Program Files (x86)\Jenkins\jre\bin\java.exe to acccess the SMTP port (25).
The problem is, a 3rd party java program could use the same java.exe to execute, and thus would be able to send email.
How do I fix that?
FWIW the Jenkins server runs as a specific user account ("autobuild")
Answer: Limit access to a relay server that requires authentication and configure the auth data into your Jenkins instance.


List Item Character Uppercase

Question: I have a custom list. I want to,  when I add new item the list, characters are automatically converted to uppercase. How to enter characters uppercase in textbox?
Answer: I think the best solution would be to create a calculated column and use =UPPER([ColumnName]).
You can read more about that here as well: https://msdn.microsoft.com/en-us/library/office/bb862071(v=office.14).aspx#sectionSection4
Answer: there are couple of ways to do it,

easy is to use the Caculated Column as mentioned by "Jordan".
use javascript code attached to [column] field edit box which will save the value as Upper values
Youcan use a little jQuery to force the upper case. On keyup event, get the string and set it to upper case.
use the  event handler

C#
public override void ItemAdded(SPItemEventProperties properties) {
  string val = properties.ListItem["Title"].ToString();
  properties.ListItem["Title"] = val.ToUpper();
  properties.ListItem.UpdateOverwriteVersion();
}

Answer: 2 more options:

On Creation of an Item, kick of a SharePoint Designer Workflow which converts to UpperCase;
SharePoint Designer does not have a Upper function but you can loop the string; see http://www.documentmanagementworkflowinfo.com/sharepoint-2013/sharepoint-designer-2013-workflow-propercase-strings.htm
Less User Friendly but a good option if you can not add any coding or workflows:
add a validation rule to the Title field and present a Validation Message when they (try to) hit Save.

Note: I copied the Formula from my Task list
You would think a simple
=IF(  [Task Name]=UPPER([Task Name])  ,true,false)

would do the job, but I never got this to work, it always results in true
A slight alteration does work in a Validation rule
=IF(  EXACT( [Task Name],UPPER([Task Name]) )  ,true,false)

List Item Character Uppercase


API Usage Last 7 Days report - Minimum Permission Needed to Run?

Question: I am trying to create a reporting user. One of the reports the user will run is the API Usage Last 7 Days report. I want to minimize the access to as much as possible but it seems the user's profile has to have Modify All Data checked. That checks a number of other admin options and provides full access to all standard and custom objects. Something I want to limit as much as possible. If the community knows a quick minimum permissions needed that would be awesome. I have a feeling I'll just have to do a trial and error of unchecking and checking permissions.
Answer: After much digging it looks like Modify All Data is needed at the profile level. That box has to be checked. When you check it it provides complete access to all standard and custom objects. Not what I was hoping for but it is what it is.
Answer: Here's a link to where you can find a list of all User Profile permission descriptions which includes what they do. From the list, you should be able to determine what permissions your profile needs to have.
Comment: Hmm, I don't see it in there at first glance. This seems like a link-only answer, and the link may not contain the answer.
Comment: It has the API User permissions, the create & edit reports, and all the other admin related permissions. I can't say exactly which permissions he needs, so am pointing him to where the reference is that will allow him to see what the perms are and what they cover.
Comment: Fair enough. It's just hard to tell. If this post came from a low rep user, I would have flagged it.


Who killed the Waynes in "Joker"?

Question: In the last part of Joker (2019), Arthur was rescued and Thomas and Martha Wayne were killed by a clown-masked gunman, but their son wasn't. Who did that and why wasn't Bruce killed?
Answer: In the movie, the clown-masked gunman is an unknown person.
In comic-book canon, it is Joe Chill… or not. It is depending on which comic version you read.
Comment: Hence my opening line.
Comment: But without considering the other versions, how do we say he is **Joe Chill**? There is no clue to recognize the gunman in the movie.
Answer: The identity of the gunman is not relevant. He's just a random guy.
What is important is what seems to have brought this guy to seek out Thomas Wayne. Specifically, he is wearing a clown mask, and specifically quotes the line that was broadcast all over TV and made Joker an overnight celebrity:

You get what you fucking deserve!

The gunman shot Thomas Wayne for the same reason that Joker shot Murray Franklin: because they felt their victim deserved it.
Why, specifically? We don't know. But Thomas Wayne is not painted as a philanthropist the same way he is in other Batman incarnations. Remember that in this movie, he specifically said that people who have made something of themselves will always think of people who didn't make something of themselves as clowns.
That arrogant attitude is a very possible reason why one of these so-called clowns sought revenge against him. The city is already buckling under inequality, and Thomas Wayne willingly amps it up, publically.

why wasn't Bruce killed?

Simply put, because the gunman believed Bruce didn't deserve it.
Also note that even criminals tend to have some moral boundaries, and killing children is quite high on that bar.
Whether he killed Martha because he believed she also deserved it, because he wanted the pearls, or because she would be a much more accurate witness than Bruce would be; is never elaborated on.

A large portion of Arthur's actions are reflected on society. Gotham is already a powder keg, and Arthur unknowingly lights the fuse that sets off others to take up violent action, inspired by Arthur's actions.
Indirectly and thematically, Arthur set in motion the events that would kill Thomas Wayne, but it is much too indirect for Arthur to have knowingly done so.
Comment: League of Shadows took responsibility for the attempt to "cleanse" Gotham. In the movie it looked like the ambulance targeted the police car where Joker was and after they got him out of the car they left (or we can't see them anymore). Also they were not in the same euphoric state like the other protesters, they were calm. The same was with the guy that killed Thomas Wayne, it looked like he was waiting for them and executing an order. Also the music change when these masked men appear. Just a thought though; I always wondered why so much focus on those scenes in the end movie.

Who killed the Waynes in "Joker"?


Not escorting NPC in Dragon's Dogma

Question: I currently have an Escort mission in my quest list. I'd like to do other quests without the quest NPC following me around and in danger of dying. Is there any way I can get the NPC to stay in the the city while I complete and clean up other quests on my list?
Comment: You can drop an escort quest by heading back to the quest board you got it from. I'm almost certain they'll be available for pickup again, but there's a waiting involved (and I believe some quest are one-shot, either you complete them or the NPC moves on without you, like when you're supposed to escort the female shop-keeper to the main city.)
Comment: ah ha thank you. the quest was a peddlers petition. got it in gran soren. off the board at the in. i'm assuming that if i check the board again, it will be there.
Comment: usually yes, i do believe there are some that even if obtained from the board can only be picked up once or only at certain points in the progression of the story
Answer: The easiest way to do escort quests is to figure out where they want to go (you can usually find this out in the quest description), then before you grab the quest, go to the finish point and set a port crystal.  Then go back and get the quest.  You can use a ferry stone to port right to the end point and the quest will quickly be completed. You can then pick the port crystal right back up again and re-use it.  The further you get into the game, the more ferrystones/crystals you will find.  Sometimes the shops in Gran Soren will sell ferrystones, too, so be on the lookout.

Not escorting NPC in Dragon's Dogma


What does ABBO (Away best bid and offer) refer to?

Question: I know what the NBBO is but I've seen mention of ABBO and I'm not sure what it means?
Answer: From the Turquoise features document:

6.3. Away Market Best Bid and Offer (ABBO)
6.3.1. The ABBO is defined as the Best Bid and Offer prices as represented by an aggregation of relevant  European Order Books as
  defined by Turquoise. An external market's Best Bid and Offer will
  only be  part of the ABBO when that market is in Continuous Trading.
  Turquoise will advise for each security  which external markets will
  be included in ABBO by a Market Notice and on the Turquoise Website. Turquoise will provide a reasonable period of notice prior to
  implementing any change.
6.3.2. If there are no orders in the relevant European Order Books as defined by Turquoise or if the markets  are closed the ABBO is deemed
  to be undefined.
6.3.3. The ABBO can be set in smaller tick sizes than Turquoise tick size.

In other words, it's the best price from all other exchanges. Ie, NBBO minus this exchange.
Answer: Well it's the best away from the market quote on the bid and ask side.  Or put in terms of level 2 quotes, the highest bid below the top level and the lowest ask above the top level.


Share All Resharper code formatting/inspection options

Question: As denoted in This Article ReSharper's .sln.DotSettings file contains only those settings which values changed from default ones. Is there a way to store all the code editting and code inspection settings in a team-shared layer, regardless of the value being changed or default?
The only way to do this I see is changing each and every value and switching it back (so all of them end up in .sln.DotSettings file), however this seems to be quite a time-consuming task.
The problem I'm trying to avoid is as follows:
Suppose a team has 2 developers, say Jessika and John, and they decide that they are OK with Resharper's default to prefix private fields with with an underscore:
<code>int _myPrivateField = 1;
</code>
So they are not changing the "Instance fields(private)" setting under "C# Naming Style" section and check in the .sln.DotSettings file.
However, when Jessica checks out the source code on her home laptop it Resharper still suggests using
<code> int myPrivateField = 1;
</code>
because her computer has its setting changed to have no prefix, saved as "Save to this computer". As denoted in Resharper's docs if a "This Computer" layer has a value for a setting, whereas the other layers don't the value will be applied (see the middle green setting in this picture: http://blogs.jetbrains.com/dotnet/wp-content/uploads/2012/08/layers3.png
Answer: Regrettably, at the moment we can offer no option other than changing options one by one and saving them in the requisite layers. We are aware that this approach is inconvenient, and are in discussions as to how to best handle this.


Extension of holomorphic function

Question: Let $\Omega$ be a simply-connected domain in $\mathbb{C}$, and $A$ be a closed simply-connected set such that $A\subset \Omega$ and $\Omega\setminus A$ is connected. Let $f$ be a holomorphic function in $\Omega\setminus A$. It is true that $f$ can be extended to meromorphic function $g$ in $\Omega$ ?
Comment: Generally, no. Try to find (simple) counterexamples.
Comment: @DanielFischer, right. Assume that $g$ can have only isolated singularities (essential, pole, removable). It is still false ?
Answer: Take $\Omega$ to be the whole of the complex plane, and $A$ to be the complement of the unit disk. There are functions that have the unit circle as natural boundary. For example, the function  $1+z+z^2+z^4+z^8+z^{16}+\cdots$ does not extend to any open set containing the unit disk.

Extension of holomorphic function


Removing concrete lip at garage

Question: I am interested in removing a garage concrete slip (31"Wx8'4"Lx1.5"H) to accommodate a storm shelter (4'x8').  The slab is post tension.  The project entails a diamond blade set to cut at a height of 1.25", chipping away at the concrete, grinding to garage floor level.  Do you think this is a good solution?  Can the vibrations affect the post tension cable slab foundation.  The shelter weighs about 2,000 lbs and we have been informed that building up the concrete is not a good option because of bonding the new with the old.
Answer: I would challenge not being able to bond a portion of a new pad to old concrete.  I have used latex based bonding liquid to skimcoat to old concrete.  If the floor has been sealed or painted, such that it won't absorb water, might require a surface grinding.
As fully supported pad over a pad, no bonding is even necessary.
Its not clear from your information WHY a interface/overlap area is necessary (presumably IN the garage).
If removing the 'lip' is the easier option, that should be alright, unless some rebar or reinforcing lath is embedded in the lip.

Removing concrete lip at garage


Broadcom 802.11n won't connect to home network

Question: This has been very frustrating.  I have updated firmware on my old router. I updated bios. Uninstalled wireless card and rebooted. Updated wireless driver. Bought a new router.  I get ip address and default gateway. It says connected but limited. I can't ping anything other than NIC.  Dell came and replaced motherboard, wireless antenna, and card.  I can connect to wireless at work just fine. I have no idea whats going on other than this card is a big PoS.  Please help.
Answer: n uses the 5ghz range and a/b/g use the 2.4ghz range. its possible that your router only has the a/b/g - 2.4ghz antenna active and your card is set to N network only or vise versa... i would check settings on both.


Question about Galilean time invariance

Question: I've been reading Arnold's book on Classical Mechanics.  I understand that most "classical" forces such as gravity, spring are supposed to be Galilean invariant.  But what if I start a rocket, and then at certain time, adjust the thrust vector of the rocket differently (i.e. control.).  This rocket as a mechanical system is obviously not time invariant because the "F" depends explicitly on time.  Is there something I am not understanding here?
Answer: Yes, you're misunderstanding what "invariance" means.
Galilean transformations relate observations between different reference frames.
What it sayys is that "physics are the same" in any intertial frame.
This doesn't mean everybody measures exactly the same results. This means that physical laws are the same.
If I am observer $A$ and I see the rocket accelerates at $t_0$, suppose there's another observer $B$ who starts counting when I measure $t_0$.
If I see the rocket crashes at $t_F$, $B$ will see the crash at $t_0-t_F$. YEs, the time in both frames is different, but not random: they are related by Galilean transformations.
That's what transformations do: they relate measurements from different observers.
If they must be related it's because they are different, but not randomly different, because the physical laws hold the same way, and therefore we'll get the same conclusions.
Comment: I understand that the results are not randomly different.  However, in chapter one of Arnold, he concludes that the "force field" of the mechanical system cannot depend explicitly on time.  For example, the gravitational force in a n-body system does not depend on time explicitly (only through the position of the particles).  But here, we have an artificial force that does depend on time.  Perhaps because this artificial force is not a kind of fundamental mechanical law.
Comment: That's correct, it refers to "natural forces".  Time dependence is broken when energy is not conserved.

Question about Galilean time invariance


Navigation Controller view is distrupted when launching modal view controller (after upgrading latest xcode/ios 5)

Question: My name is Luca and I am experiencing an issue in my app after upgrading my XCode for ios 5. I really can find a solution to that, so I hope that someone can help me.
My software is a window-based application that uses a navigation controller and a toolbar item. The navigation controller is connected in mainWindow.xib to the application delegate navigation controller property (IBOutlet). The navigation controller init with a root view controller that I call 'starting view controller' (this is done in IB). The app has the status bar visible on top.
In my application delegate I do:
[application setStatusBarStyle:UIStatusBarStyleBlackOpaque];

 application.statusBarHidden = NO;

 self.window.rootViewController = navigationController;

[window makeKeyAndVisible];

[startingViewController onLaunchApp];

Once the app has finished loading I try to present another view using the Modal View Controller. The Modal View Controller is presented in the root view controller (starting view controller) by doing
[self presentModalViewController:'another view' animated:YES];

Here comes my issue. Once I dismiss the modal view controller, the navigation controller moves on the very top of the main window pulling up with it the root view controller. Part of the navigation bar lies behind the status bar (20 px) and other 20 px of white space are left at the bottom of the root view controller. Therefore my view becomes completely messed up and the only way to fix it is to rotate the device in landscape and then back in portrait orientation. After these operations the whole views' stack is ok and if the modal view controller is presented and dismissed again everything works just fine. In other words, this problem occurs only the first time the modal view controller is dismissed.
I have tested the app with all the simulator versions and they all work correctly except for the latest 5.0.
I spent the last 6 hours reading documentation, posts and trying to fix the app, but no luck.
I would appreciate a lot if someone could help me or give me any hint.
Thank you very much in advance.
Comment: did you got any solution to this problem? I am facing the same issue.
Answer: If you haven't implemented it this way, try to dismiss modal view controller from the root view controller.


what exactly backup fuses are?

Question: Rather basic, but I can't figure out what exactly backup fuses are! I was studying a Weidmuller PRO ECO 120W 24V 5A power supply's datasheet (accessible via the catalogue page). It has recommended three types of backup fuse for input, but I can't find out what backup fuses are and why to connect them. I searched for it but it didn't help me that much!
Comment: Would you care to share a link to the datasheet with a reference to the page number?
Comment: If something is a 'backup' it usually means that it is a second line of defence, in other words 'its there just in case'. A fuse is fuse.
Comment: This is the link to the product catalogue . in the input section you can find recommended backup fuses.

http://catalog.weidmueller.com/procat/Product.jsp;jsessionid=66BC46C7EA660DE9CF87CFF9C941D0B9?productId=(%5b1469480000%5d)&page=Product
Answer: The datasheet states that the PSU has an internal fuse. The backup fuse is the external fuse that you supply.

Figure 1. Extract from Weidmuller PRO ECO 120W 24V 5A datasheet.
The datasheet gives you three options. Choose one to suit - perhaps to match fuse or circuit breakers in the rest of you control panel.
Answer: The instruction manual states:

This unit is equipped with an internal fuse, so no additional external device protec tion is required. The recommended backup fuse is listed in the Technical Specifications.
Notice: When the internal fuse is triggered, the probable cause is an internal malfunction. The device must then be inspected in the factory!

I don't see any limit on the fault current capability of mains supply to which the product is suitable to be connected. However the standards that apply may state limits for such products and require backup protection with higher interrupting capacity if the product is connected to a supply that is capable of supplying a higher fault current. Local electrical codes may also require external protection under some circumstances.
Answer: Redundant fuses or breakers would be a convenience for additional fault protection if there is frequent power cycling.  Normally PSU's in large companies such as Weidmuller are tested for reliability with 10k power cycles but the surge currents can cause stress on components.  If your line voltage is not well regulated and turn on occurs during peak voltage this would cause the maximum surge current such as power restore in a building with imbalanced phases for startup with surge drop on one phase and rise in another phase.
Inrush current is 40A max.
Power cycling is a reliability test and the design of soft start would reduce the need for redundant tighter threshold of surge currents , if the protection inside is a "slo-blow" type fuse.
Consult with OEM tech support for additional reasons for choices and to confirm my above assumptions if you have doubts on power cycling or slow blow internal fusing.
Internal faults can be externally caused from unfiltered lines and transient conditions, so every situation is different, but I would expect at least minimal line filter is included inside this design.
If you plan on buying in large quantities, I would suggest a rated load power cycling test  plan to confirm reliability.

what exactly backup fuses are?


Tubular Neighborhood Theorem for $C^1$ Submanifold

Question: Can anyone reference/disprove the theorem in the case where the embedded submanifold is merely $C^1$ instead of smooth? I have a compact $C^1$ embedded submanifold of $\mathbb{R}^n$ without boundary that I want to show there exists a tubular neighborhood of (with the radius of the tube not necessarily constant). Actually, I want to be able to create one piecewise using a finite covering. Much obliged.
Answer: The answer to your question depends on whether you are looking for a tubular neighborhood in the general differential topological sense or the more restrictive geometric sense. The answer in the topological sense is Yes, but in the geometric sense the answer in general is No. These two conceptions may coincide for $C^2$ submanifolds, but  for $C^1$ submanifolds the construction is a bit more subtle, or non-canonical, as I will elaborate below.
A $C^1$ submanifold $M\subset R^n$ may not have any neighborhoods fibrated by normal vectors. So $C^1$ submanifolds do not in general have canonical tubular neighborhoods generated by the exponential map, and "radius" of the neighborhood does not really make sense; however, they still have a tubular neighborhood in the topological sense, i.e., a $C^1$ embedding of the normal bundle which extends that of $M$, as the zero section of the bundle. These may be constructed as follows.
The fastest way to construct a topological tubular neighborhood for $M$ is by noting that there exists a $C^1$ diffeomorphism $\phi\colon R^n\to R^n$ such that $\phi(M)$ is $C^\infty$ (e.g., see Thm. 3.6 in Chap. 2 of Hirsch's book). Then $\phi(M)$ is going to have a tubular neighborhood $U$ in the standard sense, obtained by applying the inverse function theorem to the exponential map (or taking the union of all sufficiently short normal vectors), and $\phi^{-1}(U)$ yields the desired tubular neighborhood of $M$ (which will be $C^1$-diffeomorphic to the normal bundle).
An example of a $C^1$ submanifold without a neighborhood fibrated by normals may be constructed as follows. Take an ellipse in $R^2$, which is not a circle, and let $M$ be the inner parallel curve of the ellipse which passes through the foci. Then $M$ will be $C^1$, but it will not have a tubular neighborhood in the geometric sense. Indeed, the nearest point projection map into $M$ will not be one-to-one in any neighborhood of $M$.
Comment: The term "Riemannian" here did not seem to me to be preferable to "geometric" because the question is stated in the context of the Euclidean space $R^n$, and I did not want to unduly expand the context at the risk of creating confusion. When I say "geometric" I mean involving the notion of metric.  Of course things are obvious to experts, but in my experience many people are confused about the notion of the tubular neighborhood of $C^1$ submanifolds. I was also confused about this not long ago. I do not think that standard texts such as Hirsch make this issue sufficiently clear.
Comment: I'd not use the expression "in geometric sense" for a tubular nbd with leaves orthogonal to the submanifold. Maybe "Riemannian sense". (But that doesn't seem to be the issue of the OP, as it is quite obvious that for  $C^1$, in general there is no tub nbd in this sense).
Comment: This is also true, then maybe for submanifolds  of  $\mathbb{R}^{n}$ "canonical vs. non canonical" would do. (Also, the term "topological" suggests a non differentiable object)
Comment: OK, I incorporated the term canonical in the answer. Thanks.
Comment: (that was just my opinion --I didn't mean to ask you to change)
Answer: Yes, you can; you don't need compactness of $N$ nor finite dimension: the key word here is paracompactness. I wish to do a general remark and recall some basic facts, since this seems to be a recurrent topic. Let $N$ be this embedded sumbanifold of $M$. You want a homeomorphism (maybe with more regularity and with some special feature) between the normal bundle $E$ of $N$ in $M$ and some open nbd of your submanifold $N\subset M$, that extends the natural homeomorphism $j$ between the zero-section $E_0$ of $E$, and $N$. The typical situation is that you already have some map $\Phi:E\to M$ that extends $j$ and which is a local homeo at any point of $E_0$ (a local condition that it is usually easy to check e.g. by the local inverse theorem), and you want to show it subordinates a global homeo between an open nbd $U$ of $E_0$ in $E$, and an open nbd $V$ of $N$ in $M$. Clearly, $\Phi$ is an open map on some nbd of $S_0$ so all you need is to have $\Phi_U$ injective on some nbd, which is not completely obvious; then you may further restrict it to an open nbd $U'$ diffeomorphic to $E$. The key lemma to get injectivity is the following topological "extension of homeomorphisms" lemma:

Lemma.  Let $E$ and $F$ be paracompact spaces; let $X$ be a closed subset of $E$ and $Y$ a closed subset of $F$. Let $f:E\to F$ be a
  continuous map such that:
(i) $f$ is a local homeo at any $x\in X$ (meaning that for any $x\in X$ there is an open nbd $B_x$ of $x$  in $E$  such that $f(B_x)$ is open in $F$ and $f_{|B_x}:B_x\to f(B_x)$ is homeo);
(ii) $f_{|X}:X\to Y$ is bijective (hence a homeo).
Then there are open nbds $U$ of $X$ in $E$ and $V$ of $Y$ in $F$ such
  that $f_{|U}:U\to V$ is   a homeo.
Comment: Dear Mohammed, of course, but I am not talking about the exponential map. Local Inverse Theorem: if the differential of a $C^1$ map is invertible in a point, the map is a local diffeo at that point- (You can find this material in any textbook) . Nor I am talking about a tubular nbd which is a foliation in *orthogonal* disks to  $N$ (it is trivial that for a $C^1$ submanifold in general this will not give a foliation: think to the graph of $|x|^{3/2}|$ in $\mathbb{R}^2$). But orthogonality of the leaves is not required for a tubular nbd.
Comment: @MohammadGhomi At least for me, a tubular neighbourhood is any embedding of the normal bundle that extends the embedding of the submanifold. There is a contractible space of those, so it makes sense to speak of "the" tubular neighbourhood.
Comment: @ Mohammad Ghomi this is also as I understand the question.  In my experience, such a map $\Phi$ may come from various sources or constructions (e.g. by integrating a vector field, or even projecting some $\mathbb{R}^{n+h}$-valued map to $\mathbb{R}^{n}$: this happens in the method of characteristic lines for PDE). While in almost all these situations  the map $\Phi$ is naturally a local diffeo at points of $N$ by construction, the common problem is to restrict $\Phi$ to some smaller open nbd where it is a global diffeo.
Comment: I do not follow how the "local inverse theorem" mentioned above can be applied when the manifold is only C^1, because then the exponential map will be only C^0 in general.
Comment: If not the exponential map, then which map are you using here?
Comment: @DenisNardin: OK, I understand that, but how is this embedding to be constructed when the submanifold is only $C^1$? To me, that seems to be the main point of the question.


Help on understanding multiple columns on an index?

Question: Assume I have a table called "table" and I have 3 columns, a, b, and c.
What does it mean to have a non-clustered index on columns a,b?
Is a nonclustered index on columns a,b the same as a nonclustered index on columns b,a? (Note the order).
Also, Is a nonclustered index on column a the same as a nonclustered index on a,c?
I was looking at the website sqlserver performance and they had these dmv scripts where it would tell you if you had overlapping indexes and I believe it was saying that having an index on a is the same as a,b, so it is redundant.  Is this true about indexes?
One last question is why is the clustered index put on the primary key.  Most of the time the primary key is not queried against, so shouldn't the clustered index be on the most queried column.  I am probably missing something here like having it on the primary key speeds up joins?
Great explanations.  Should I turn this into a wiki and change the title index explanation?
Answer: This is turning into a more-general introduction to indexing, but I suspect you'll still find it useful. The first two paragraphs especially speak to your question.
Clustered vs Non-clustered
This refers to how the table is physically arranged on disk. A clustered index works by sorting the physical pages and rows in a table on disk based on the index definition. Non-clustered indexes use a separate location on disk to store a copy of the columns in the index (and only those columns), plus a pointer to the source records. For this reason, clustered indexes are often faster because they will always cover any data you need in the query. However, you only get one of them because otherwise you'd duplicate the entire table. It's also important to know that adding non-clustered indexes to a table actually slows down write operations like inserts and updates, because the database has to rebuild the index, or at least certain pages in the index.
Index Order
An index on (A,B) is not the same as on (B,A). If the first case, records in the index are ordered by column A first, and column B only effects the index order when you have duplicate values for A.  Searching the index with a column B value only won't help you, because you still have to scan through every record in the index to find all your matching values in B.  In the second case, the reverse happens: records are ordered by column B first, and column A only helps when you have duplicate values for A.  Searching that index with a column A value only won't help you.
Covering Indexes
Sometimes a database can fulfill the requirements of a query entirely from an index. In this case, the index is said to be a "covering" index for that query.  This is advantageous because indexes are often cached in memory, and so the database may not have to go do disk at all. To understand this, imagine an index on (A,B) where there are very few duplicate values for A.  Including A in the index seems wasteful, unless you have a query that runs often that looks for a particular value of A and also needs B. This index will now save a lot work going back to the original table to retrieve B.
Selectivity
Selectivity is a value from 0 to 1 (often expressed as a percentage) that tells you how unique each value in an index is.  A selectivity of 1 or 100% means there are no duplicates. A selectivity of 0 means there is only one value in the column. Generally, a higher selectivity (approaching 1) is better for indexes.
To demonstrate this, think about what would happen with a low-selectivity index.  For example, you try to speed up a query by adding an index to a bit column in a table with 10000 records. In this case (assuming uniform distribution), the selectivity is .5. You run your query, and the index returns 5000 records. But each of those records still has to go back to the original table, and since the index order doesn't match the table order it would have to do a lot of separate look-ups into the table. Instead, it's likely faster to just scan through the entire table start to finish to retrieve the needed data.
Selectivity explains why you would want to cluster on the primary key. Since the clustered index tells the database how to order the table, going for anything less than 100% selectivity here means a query will have to scan the table more often. Clustering on the primary key gives you perfect selectivity. And since this primary key is often used as the record pointer in other indexes, you want to keep it as small as possible (ie, an integer identity column).
There's a good article on the selectivity and indexing here:
http://www.akadia.com/services/ora_index_selectivity.html
Sargable
This refers to whether the database is able to use a particular filter with an index.
As we have shown, indexes normally work by first sorting the data into a specific order, so that lookups into that index can use something efficient like a tree-based search rather than a slower linear search. Anything that can't be effectively compared with sorted data can't be used with an index. A good example is the LIKE operator. This is sargable:
SELECT * FROM [Table] WHERE [Column] LIKE @Value + '%'

but this is not sargable:
SELECT * FROM [Table] WHERE [Column] LIKE '%' + @Value + '%'

Some other things that can make a filter un-sargable are non-deterministic functions (and there are more of those than you think).
Per-Column Indexes
A common mistake I've seen is to have a separate index for each column in the table. For example, someone will take a table with columns (A,B,C,D) and create four separate indexes, one each for A, B, C, D, believing they have now indexed every column and so every query should be fast. In fact, this is rarely helpful for reasons I hope I've already explained, and will often make things worse rather than better because the database will now need to update these indexes for every change to the data.
Comment: Great explanation.   @Xaisoft - make sure the indexes that exist match how you query the data.  Look to table joins or where statements and compare them to those indexes.
Answer: A non-clustered index on (a, b) is a "copy" of a part of the table whose rows are sorted on a then on b and contain the reference to the original row.
It helps to run the queries like this:
SELECT  *
FROM    mytable
WHERE   a = @A
        AND b = @B

, this:
SELECT  *
FROM    mytable
ORDER BY
        a, b

, this:
SELECT  *
FROM    mytable
WHERE   a = @A
ORDER BY
        b

and many others.
For instance, we have a table like this:
#       col1    col2    col3
1       1       1       1
2       1       4       8
3       7       2       3
4       3       3       9
5       8       9       4
6       2       2       7
7       5       3       5
8       3       9       4

If we create an index on (col2, col3), it will contain the following data:
col2    col3    #
1       1       1
2       3       3
2       7       6
3       5       7
3       9       4
4       8       2
9       4       5
9       4       8

, i. e. sorted first on col2, then on col3, then on the reference to the row.
It's easy to see that this index is an index on col2 just as well (sorting on (col2, col3) implies sorting on col2 alone).
Order matters, so if we create an index on (col3, col2), the rows will be sorted differently:
col2    col3    #
1       1       1
2       3       3
9       4       5
9       4       8
3       5       7
2       7       6
4       8       2
3       9       4

This index is an index on col3 too.
If we want to find the rows within a certain range of (col2, col3) we just take a slice from the ordered data:
SELECT  col2, col3
FROM    mytable
WHERE   col2 BETWEEN 2 AND 3

col2    col3    #
1       1       1
----
2       3       3
2       7       6
3       5       7
3       9       4
----
4       8       2
9       4       5
9       4       8

Easy to see that we cannot take this slice on col3 using this index, since col3 is not ordered by itself.
The "reference" mentioned above is a RID of the row (a pointer to the place in the tablespace), if the table is non-clustered itself, or the value of the table's cluster key if the table is clustered.
A clustered index does not create a shadow copy of the values. Instead, it rearranges the tables rows themselves.
If you create a clustered index on (col2, col3) above, it will just rearrange the table rows:
#       col1    col2    col3
1       1       1       1
3       7       2       3
6       2       2       7
7       5       3       5
4       3       3       9
2       1       4       8
5       8       9       4
8       3       9       4

Clustered or non-clustered, therefore, is a storage method rather than an index.
In Oracle, this is called index-organized table (rows are sorted), as opposed to a heap-organized table (rows are not sorted).
Answer: index A,B  is different from index B,A
That is because an index is organized along a particular sort order.  So imagine you need to search with the following WHERE clause
WHERE A='somecrit' AND B='SomepartialCrit%'  -- notice the wildcard

The A,B index will be very efficient at resolving the query,  but if it were
WHERE   A='SomepartialCrit%'  AND B='somecrit'

The (A,B) index would only partially help  (could be better than full table scan but not optimal..)  whereby the (B,A) index would come to the rescue...
For use with a query that included both A and B as exact match (no wildcard), either index could be used in an equivalent fashion (efficiency-wise), although the choice of one particular index could be driven by other part of the query such as ORDER BY clauses etc.
An index on A is different from an index on A,C
For one the index on A,C could be used to resolve queries that involve both A and C criteria, and also the A,C index could be use to "cover" the SELECT clause or part thereof, that is:  If the SELECT clause only includes column A and C (from this particular table), SQL could provide the results without having to get data from the table proper, it would get the A and C values from the index alone.
Are "redundant" indexes a bad thing ?
As said above, extra indexes may help resolve SELECT queries more efficiently.  On the down side, they a) use storage space and b) make the INSERT, UPDATE and DELETE queries less efficient (because the new/updated/deleted values need to be added/changed/deleted in more places.
It is therefore a matter of finding the right balance based on the available storage space available and the use case (some mostly read-only databases can have a slew of indexes without hurting performance at all, databases with frequent inserts can see their performance degrade terribly with too many indices)
On clustered indexes
See explanation by Joel Coehoorn.
No, the clustered index of a given table does not need to be based on the primary key.  Selecting a good clustered index (or indeed deciding to not use a clustered index) is a part science part art process which scope is beyond this short response.
Answer:
Is a nonclustered index on columns a,b
  the same as a nonclustered index on
  columns b,a? (Note the order).

NO! Order is important. If you have a non-clustered index on (a,b), you can use this if your WHERE clause has a restriction on a and b - or if it has just a restriction on a (but not if it has just a check against b).

Also, Is a nonclustered index on
  column a the same as a nonclustered
  index on a,c?

No it's not - but the SQL Server query optimizer will use this non-clustered index if it encounters a query with a WHERE clause just on "a".
Marc
Answer: Think of the index as a phonebook. Usually phonebooks are ordered by lastname, firstname, street. So if you want to find the phone number of Joe Smith, 101 Main Street, you open the phone book at S for Smith, then you look up all Joes under Smith, look for the Joe Smith who lives at 101 Main Street, and you find the phone number.
The phone book could be ordered differently, say by street, firstname, lastname. Then you'd look up Main Street first, then Joe, and finally Smith. If you only want to find one person's number, that would be equally fast.
The difference becomes important if you want to list the phone numbers of all people who live in on Main Street and whose first name is Joe. With a normal phone book this is a drudge: you have to loop over all last names, find out the Joes with that last name, and whether they live on Main Street. To do that, you have to look through the entire phone book. But if the index order is street, firstname, lastname, the task is almost trivial: Look up Main Street, Joe, and copy all lastnames and their phone numbers. Way faster.
Also, the fact that phone books list streets, too, is irrelevant if you are only interested in the names. If you want to find the phone numbers of all Joe Smiths, you'd need a phone book ordered by lastname, firstname (or firstname, lastname). You don't care if the phone book has all Joe Smiths ordered by street or not. In that sense, an index on (lastname, firstname, street) encompasses an index on (lastname, firstname).
So: index (a,b,c) is not equal to (c,a,b), and if you have (a,c) you don't need another (a)


How to write a email to boss asking him to hire qualified empolyee to help me in QA dept

Question: I joined as a junior in QA dept then grew to manager,day after day the products of the company get larger and I am unable to conduct all experiments and tasks lonely. So what I need to ask my boss to dedicate someone could assist me and achieve the required work at high level .could anyone help me in writing this email properly and convincingly??
Comment: Have you ever asked you boss for anything? As a growing company/division someone needs to think ahead and have some sort of measurement to determine how much work you can do alone and when to hire another person.
Comment: @JoeStrazzere I agree with your point, but there are some workplaces where things flow predominantly through written communication. OP is probably working at one of such places.
Answer: Before doing so, track your tasks and progress to ensure you have an accurate record of what you are doing and not doing. Otherwise, "I cannot keep up" becomes opinion and is easily refuted by management.
Second, consider automation or other improvements. If you can show efforts to do your job better, arguments for new staff are much stronger.
If both these avenues are exhausted, talk to your boss. Start with the facts (both the above) then suggest help. If you start with the request for new staff, it can sound like frustration rather than a rational argument and bosses are good at dismissing non-rational discussions.
You do not elaborate on your organization but your boss may not have the authority to hire or assign new staff. He or she may need to request to his management and, even if the case is sound, budget constraints or dozens of other reasons may mean the request is denied.
In the meantime, if you feel like you cannot achieve everything in the allotted time, tell your boss everything you have to do and ask him/her to select what to do. Bosses are good at prioritizing issues like this. It also ensures any last focus or priority changes are considered.
Comment: Great Answer! Particularly the last paragraph.  Having your manager prioritize work based on product needs is something many miss.  @user32659 - If you've never read the Mythical Man-Month, I would encourage you to do so at this point - because the book hits on exactly what you're facing.


How to create search functionality in site.com site?

Question: I want to create search functionality in site.com site which i created. In that, based on search keyword i want to display related content from that site.I have a website which has various kind of data, what i want to do is after entering a a word, my site should display the page names which contain that word.I basically have no idea of whether we can do that in site.com or not. so just wanted to ask that what i should do to implement that functionality?
Comment: Hi Koustubh, welcome to SFSE! Please take the time to visit the [Help] and read [How do I ask a good question](http://salesforce.stackexchange.com/help/how-to-ask). The more details you provide, particularly code you've written, the more likely it is that someone will respond to your question with an answer you'll find helpful. As an example, knowing more about the kind of content you want to add search capabilities for would be helpful.
Comment: Hello  crmprogdev , thanks for your suggestion about reading those articles. I edited my question as you suggested, but problem with my question is I wanted to know whether or not this search functionality can be implemented in site.com. So i will appreciate anything which will help me implementing that functionality.Thanks and i think you should consider this question for reopening.
Comment: What you're asking about would seem to me to require a SOSL query. Have nominated for reopening. Suggest you investigate dynamic SOSL query controllers "with sharing" on the objects you wish to expose. Please edit your question to include a general description of custom objects/content you want to expose if you want a useful response and the votes from others to get this reopened.
Comment: Basically SOQL wont help because i dont want to search any records(fields,objects) within the salesforce. I just want to search within the static content of the site.com itself.Anyways, thanks for the reply and suggestions.
Comment: You want to search the content of the static pages? If so, sounds like you want to implement a link to a Google Search engine of some kind and allow them to "crawl" at least parts of your site. You'd only want to do that if your site is open to the public as guest users. Not the thing to do for a Secure/Private Site. To enable specific pages for crawling by Google with robots.txt see https://help.salesforce.com/apex/HTViewSolution?id=000159800&language=en_US.
Answer: Site.com doesn't seem to have a search feature.
That being said, you can see what this person suggests https://developer.salesforce.com/forums/?id=906F00000009AK9IAM or try indexing it with google search.


Why do I need special microgreen seeds?

Question: I'd like to start growing microgreens indoors. Why do I need to buy specific microgreen seeds? Why can't I use seeds that I'd plant in my garden? It seems like a marketing gimmick to me.
Answer: You don't.
At least that's one person's opinion.
So, I've seen "microgreen mixes" for sale before but here's the deal - they are just a variety of seeds that are commonly used for growing sprouts.  I believe this is all a convenience thing, but I'm not a "microgreen expert" and perhaps there's a legitimate reason one would need to buy a special mix.
But I doubt this seriously.
Sprouts are just that - the sprouts of plants that, if given time, would grow into a mature plant, whether that plant is arugula, beet greens, peas, lettuce, tatsoi, endive or a variety of other plants, spinach for instance.
Personally, for the sake of convenience, I'd grab a Mesclun mix.  They're tasty (in my opinion) and will all generally sprout at the same time, making it very convenient.
But again, I think there's nothing "special" about the mixes, except that they tend to contain greens that work well.
One other thing - I like the idea of growing mesclun or baby greens because you can generally do the "cut and come again" thing with them.  Sprouts, once you snip them off, which I believe is the way this is generally done, will not grow back.  Those mesclun mixes and baby greens will generally grow back, at least that's been my experience.
Comment: They *could* be treated and it *might* not be obvious from the label that they are.  None of the seeds I use have been treated.  I buy the vast majority of my purchased seeds from Southern Exposure Seed Exchange (southernexposure.com) and they do not treat their seeds.  As with everthing, you've got to do your homework.  That's for the question!
Comment: Ok, thanks for your advice! Do you know if 'non-microgreen' seeds can come coated with any chemicals (since it's assumed they will have time to 'grow out' of the chemicals?) I suppose they would need to say that kind of thing on the package so it's a non-issue. After your response, that would be my only remaining concern. It sounds like any seeds will do :)
Answer: Seeds that are for garden use often require multiple tests and such in order to meet performance standards. They have a much bigger job ahead of them, so a high germination rate, uniform growth, uniform looking plants, uniform maturity,  uniform looking harvests, and a number of other things are all necessities. For microgreens, all you need them to do is sprout. This makes the seed-production process a lot simpler, and make it easier to produce a higher number of seeds for lower cost.
Take radishes for example. Good gardening varieties need to be mild, fast, round, and uniformly colored. This means a hybrid is going to bring best results, and can be improved. But the sprouts from hybrid seed, if any, are very variable in comparison to those from heirloom seed. Most microgreen seeds are heirloom for this reason.
Another thing - seeds for garden use are often - but not always - treated with different things, sometimes fungicides, sometimes seed protectant/germination enhancers, so you will need to read the labels of these seeds if you intend to use them as microgreens.
Comment: @xcross They will not conform to the same type, like heirloom seeds will. They will begin reverting back to species. That's why people who save their own seeds for the next year always go with heirlooms; they're much more stable. Because heirloom seed is far cheaper to produce than hybrid seed, the microgreen seeds are likely not to be hybrid.
Comment: Thanks for the insight. That all makes good sense to me, but what do you mean by "the sprouts from hybrid seed, if any, are very variable in comparison to those from heirloom seed"? The sprouts are variable in what way?

Why do I need special microgreen seeds?


Bluetooth on wp7

Question: I need to develop an app, which has to connect to a bluetooth module, how can I do this?
Comment: I dont know if you still need to information but for WP8 a Nokia Engineer (Justin Angel) has release a Bluetooth SDK   [link] (http://metroeeg.codeplex.com/documentation)
Answer: There is no way to get access to Bluetooth in current versions of WP7 API.
Comment: There is actually a way to work with Bluetooth. And this way is only available for OEM and mobile operators.
Comment: And there is no any undocument API. Thank you.
Comment: how is that possible ? Do we need external library or use our own btstack ?
Answer: you can use the Launcher "ConnectionSettingsTask" to achieve it.
Just use the ConnectionSettingsType to Bluetooth and call the show method of the ConnectionSettingsTask . This will Launch the Bluetooth Settings Window and lets the user to change the Bluetooth settings or even enable or disable the Bluetooth.
You use the Launcher , use the namespace Microsoft.Phone.Tasks;
private void LaunchBluetoothSettingsForm()
    {
       ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();
       connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.Bluetooth;
       connectionSettingsTask.Show();
    }

Answer: I've develop a application for send and receive image/video/audio files for Windows Phone, BI submit this application on microsoft store, They rejected ma application. they said that this application allow users to send copyright protected data, so they can't publish this kind of application.
Answer: As of today we developers don't have access to the bluetooth module, hopefully in WP8 we will have access to it through the SDK.
Answer: Use this codes for your button event. You can also enable Wifi and even airplane mode with this codes. Just replace the word Blutooth to Wifi or airplane mode.
private void Blutooth_Click(object sender, EventArgs e)
{
   ConnectionSettingsTask Task = new ConnectionSettingsTask();
   Task.ConnectionSettingsType = ConnectionSettingsType.Bluetooth;
   Task.Show();
}

Bluetooth on wp7


"Public APIs are forever: Only one chance to get it right"?

Question: In an OS book I just read that, "Public APIs are forever: Only one chance to get it right". Is it true? Is it applicable only in APIs of Operating Systems or other APIs too? For example, will this be true for the APIs of Android Applications such as Tasker, Locale and Pushover?
Comment: @tp1: writing perfect code is a skill that does not exist in the real world.
Comment: @michael borgwardt: Just need to choose which version of perfect to use.
Comment: I would extend the principle to all code. There just isn't enough time to write the same thing multiple times. Writing perfect code is a skill that can be learned.
Comment: I've seen this in the real world, and it depends on what type of API.  Lesson learned: the first requirement in any "public facing" web API is the ability for the API user to select which version of the API they will use.
Answer: It is generally true for any public API, yes.  Once you expose an API to the public and people start to build applications that depend on that API, it becomes extremely difficult to change the API because doing so will break all those applications.  That tends to be both a difficult technical problem and a difficult political problem.
Of course, it is possible to change a public API.  It does happen, for example, that projects will depricate an API in one release, introduce a new API, and then remove the old API in some future release.  But that assumes that every (important) application that uses the old API will be rewritten to use the new API before the old API is removed.  That often takes multiple years.  And that means that the owner of the public API is imposing a cost on every other project that consumes the API.  Since there are generally far more consumers of an API, those consumers tend to be a relatively powerful political lobby.
Comment: @luiscubal: that's because it's a damn difficult technical problem indeed.
Comment: "Public Answers aren't forever..."
Comment: @luiscubal You mean once. Repeated once, said twice.
Comment: @Chris Not really. Justin's answer is now no longer compatible with luiscubal's comment. :-)
Comment: "both a difficult technical problem and a difficult technical problem" You repeated "technical" twice.
Comment: @luiscubal - I wish that had been intentional :-)  I meant technical and political.  Fixed the answer.
Answer: Quote author is Joshua Bloch, the statement is from his Bumper-Sticker API Design article:

Public APIs, like diamonds, are forever. You have one chance to get it right so give it your best.

For more details on that, author refers readers to his conference session presentation, "How to Design a Good API and Why it Matters". Slide Why is API Design Important to You states it pretty clearly that this is relevant to any programming activity (operating systems or not, doesn't matter to author):

If you program, you are an API designer

Good code is modular - each module has an API

Useful modules tend to get reused

Once module has users, can't change API at will
Good reusable modules are corporate assets

Thinking in terms of APIs improves code quality

Slide Conclusion also stresses this as a general approach:

API design is a noble and rewarding craft

Improves the lot of programmers, end-users, companies...
Comment: Technically diamond is metastable. Thermodynamically speaking, graphite is a more stable form of carbon.
Answer: APIs always change, otherwise what would be the point of system upgrade? Changing internals only?
Each version of system brings new APIs, old APIs become obsolete and obsolete APIs disappear.
API change only has to be very careful both technically and in terms of communication.
Comment: As long as you can commuincate well with all your consumers and they can talk t their users - look at Windows: Windows has tons of old, deprecated, bad APIs as end users like running extremely old applications even on modern systems
Answer: My opinion would be that once released, that 'version' of the API is forever, but you can deprecate it by releasing a '2.0' API (there are several examples where this is happening - currently, I can think of Strava who have released a 2.0 version of an API for development against to consume their services).
The problem is supporting that original API ad infinitum... I guess it depends on the usage of the old API, and what the value of those API consumers hold to you.
Going back to 'the old days' of say Windows 3.x and 9x etc., once release, those OS APIs were done and set.  Now, OS updates are pushed all the time, so new APIs can be released, but I think so long as you are running a particular OS flavor (major release), those APIs would only be added to, never removed... may not be the case for the 'next' major release though.
Hmm, maybe I strayed from the original question intent.
Answer: It depends on what kind of API it is (and I am assuming breaking changes, otherwise the statement is obviously not true).
If the caller can choose what version they're using (e.g. with libraries/frameworks that are bundled with the calling application), then changing the API is not a huge problem - but still bad for the reputation of the software. People like to to upgrade seamlessly.
On the other hand, when people cannot keep using the old version of the API (such as with an online service, or things like a browser or OS where running old versions is very undesirable), then changing APIs in an incompatible way is very bad indeed, since it will break all software that uses it and is not updated as well. This imposes a maintenance cost on developers, and they'll hate you for it. And software that isn't maintained and breaks will reflect badly on you as well.
On the gripping hand, there is at least one API provider who constantly introduces breaking changes in the API and is ridiculously successful anyway: Facebook. But they do manage the changes very carefully: there is a published policy, breaking changes are announced and explained at least 90 days beforehand, and developers can choose to activate them early within that timeframe.
Answer: If you have the foresight to include a version number in the API itself. Either on the connection/initialisation call, or, somewhere near the beginning of the parameter list on each call, then your API can evolve and mutate over time without disrupting existing clients.
Answer: Although all what we do is to make 'em best at one go, but since time change and improvement comes, sometimes we need to update the information, as many of giant providors have been doing, (like face book several update, twitter one major turning to oAuth and several major, but at most possible all comes with improvement so no frequent changes. And Yes please don't stop supporting older one, It hurts!! :)
Answer: Anytime that you release any sort of communications protocol, which would obviously include an API, you have one chance to get it right in the sense that the protocol/interface must be backwards-compatible and extensible.
This allows you to add new functionality and release new versions without having to worry about breaking people who are using older versions.  Never in the software world are you going to have a situation where you can just have a hard cutover at a certain point in time, and everyone drops the old version and starts using the new version.


What is the etymology of the name Vidura?

Question: What is the etymology of the name Vidura? Is there a verse that in the Mahabharata that indicates the meaning of his name and how it arose?
Comment: What's the etymology of covfefe?
Answer: Assuming you mean Vidura (विदुर), the etymology is derived as vid-kurac (lit. "wise" or "intelligent") using Panini's rule 3.2.162:

vidibhidicchideḥ kurac
The affix kurac comes in the sense of 'agent having such a habit etc.' after the verbs 1. vid 'to know' 2. bhid 'to divide' 3. chid 'to pierce'.
As viduraḥ paṇḍitaḥ 'a knowing Pandit'; bhiduraṃ kāṣṭam 'a splitting or fragile wood'; chidurā rajjuḥ 'a cutting or breaking rope'. The affix is employed in a reflexive sense after the verbs bhida and chida.
Vart:- The affix kurac comes after the verb vyadha 'to kill'; and there is vocalisation of the semivowel; as vidhuraḥ |
Source
Comment: Is there any verse in the Mahabharata or other text that explains the origin of his name?


Trackpad and keyboard of MacBook Pro unresponsive

Question: My MacBook Pro (2014 model) trackpad and keyboard suddenly became unresponsive few days ago and I took it to the apple repair shop.
Today they informed me it's a top case problem. I am curious, why would a top case cause problem in the trackpad and keyboard. Also, I have been taking great care of the MacBook, why is there a problem in the top case ? Is it because it is a defected unit and can I get a replacement?
Comment: We don't know. The best people to ask would be the repair shop that opened it up.
Answer: While I agree with Tetsujin that you need to ask the repair shop for details, it probably helps to understand some terminology.
"Top Case", at least to me, is a bit of a misnomer.  You would think it would be the "top" or the case around the screen not the part that has the keyboard assembly...but hey...it is what it is.
Anyway... the top case is the general term for the entire assembly that has the top cover of the Logic board, the keyboard, track pad, and power button.
When there is an issue with any one of these components, people generally say "it's the topcase" because it is royal PITA to change the individual components out.  However, on the MBP 2014 model, you can replace the trackpad w/o disassembling the topcase.  It still is a PITA, though.
Here are some instruction on that repair for your reference.
Now..... "why did it go bad?"  Any number of reasons from liquid damage, hitting it too hard, or it just wore out.
Is it defective and can you get it replaced?  Yes.
The follow up question is "is your MBP under warranty or AppleCare?"  If not, then you will be paying for the repair out of pocket.
I hope that sheds some light on the problem.