Feature bloat - how much is too much?

Question: I'm a computer science student designing a project and I've started wondering what are good examples or software, or even hardware that are toeing the line between being feature rich with good usable features for regular users and being too intimidating for new users. Also could anyone recommend any good tips/books for designing good quality applications that are feature rich but not "bloated"?
Answer:
"Make everything as simple as possible, but not simpler." - Albert Einstein
"Perfection is reached not when there is nothing left to add, but when there is nothing left to take away." - Antoine de Saint-Exupéry

I am not trying to be flippant but these quotes really are the best advice.  Simplicity of design should be your goal.  Not that achieving simplicity is easy!  On the contrary, it is quite difficult but it is possible.
Try thinking about things a bit differently.  Rather than

How many things can I add before this becomes bloated?

try

What are the fewest number of features and elements I can include while still providing a superior experience for my users?
Answer: Here's a good set of slides from a presentation on the topic: Rescue Princess 2.0.
The first order of business should just be keeping the application easy to use. Beyond that, all I can say is, beware of writing features for an imaginary user: make sure someone actually needs it before you start coding.
Answer: As a direct answer to your question: pretty much any Microsoft product.  I'm showing my bias here, but Microsoft has a strong tendency to keep their codebase, and add features on  top of features until the original functionality of the app is nearly lost beneath mounds of accreted crud.
Look at MS Word, for example; while you can still just open it up and start typing, god forbid if you want to renumber a section of your document while leaving the rest alone.  Heaven forbid if you want to generate a Table of Contents that includes references to an Appendix.  This sort of stuff is something that is de rigeur for Word Processors, and Word supports it, it just supports it in a way that you cannot get it done without a manual, several cups of coffee, and bandages to stop the bleeding from banging your head on the desk.
Microsoft isn't alone in doing this; this thing tends to happen all the time, with all sorts of products; but they are among the worst offenders, I've found.
Answer: 1: What do your users need, and want, and
2: Which features will you have time to implement?
Your question is pretty general. Which features constitute bloat? That kind of depends on whether you're writing an antivirus scanner, an OS or a word processor.
Answer: There is no clear barrier between "good" and "too much".
However, it depends on what you want to do.
If you're developing a SDK, I recommend splitting your implementation in several small libraries(rather than just one big SDL library, there is the SDL core, SDL_Mixer, SDL_Image, etc.)
If you're developing an application, keep a module-based system and a plug-in mechanism.
That way, new features can be added more easily and bloat can be more easily detected.
You may get to a point where you'll add new features some will consider "great" and others "bloat". Otherwise, your application may reach a point that some will call it "feature-poor" and others will call it "just enough".
Answer: This isn't an exact quote, but the idea was something like this:

A piece of software is perfect not when there is nothing more to add, but when there is nothing more to remove.

In essence, the simpler and more to-the-point is a software, the better.
To get examples of good software design, take a look at programs that are popular today. Google applications would be a nice place to look. Skype perhaps. Heh, even StackOverflow. :)
If you want intimidating, go to the world of CAD. Check out for example Blender. That's a freeware 3D designer software. Good tool I'm told, but the UI has so many buttons/panels/menus/etc. that it makes baby bunnies cry. Unfortunately I cannot say if this would be a good example of a "bad" UI. 3D designing is a very complex process and all those tools are probably in the right place. But it's definately intimidating. :)
A bad UI design can often be found with propieritary software that comes with propieritary hardware. Unfortunately I cannot give you any examples from the top of my head.
Answer: I always tend to design my projects in a way that they're just skeletons which are as extensible as possible. Limiting factors are performance, complexity or Thirdparty-limitations.
This way you could add additional features after finishing the basic structure. A user could also add his needed features.
This probably does not work very good for GUI-applications which should have a good usability without much configuration, but I'm sticking good with this approach for those libs I develop. (They're used by other coders who like to have a highly modifable piece of software)
It's not very hard to develop an application/lib which is bloated with features. But it is to develop an app which could be easily extended by other developers/users to match their own needs.
Answer: Develop a wide-ranging plug-in system so you add and take out stuff at any time. Problem solved. If only that was as easy as writing spaghetti code. ;)

Feature bloat - how much is too much?


Potential staging area for human outposts beyond the planets?

Question: If in the future the human race spreads out in the solar system I would think an outpost orbiting in the vicinity of the heliopause (the furthest extent of the solar wind's influence) might be reasonable. What would be the next reasonable staging area away from the sun's gravity well?
Comment: The Oort cloud is likely to have billions of objects in it which are more than 20km across, any of which would provide plenty of material for a base.
Comment: The "Oort cloud has a lot of..." (anything) is plain wrong. It is pretty much empty space compared to any inner part of the solar system in regard to the number of bodies per volume or total mass per volume. It is just a tiny bit less empty than the rest of the space.
Comment: @Tantalus'touch. In whatever sense one can imagine. If, and it's a big if, the human race will one day explore beyond the outer planets would they simply stop at the heliopause? I'm not assuming FTL technology, but I'm fine imagining suspended animation technology and some sort of ion engine. Would the next stop be Proxima Centauri, or someplace closer?
Comment: I posted a question inspired by yours ;D
Comment: the oort cloud would most likely best place. it has lots of ice asteroids there that you can build an outpost into.  And just in case  you don't know what the oort cloud is, it's the area of the solar system that's beyond the Kuiper belt, and extends to about 0.3 LY from the sun
Answer: At first blush, there doesn't seem to be much point to an outpost at the heliopause, at least not from the perspective of an interstellar voyage.
The heliopause is about 123 AU, or 0.0019 light-years. On the other hand, the closest other star is Proxima Centauri at 4.24 light-years, or 2230 times the distance. Even in the best case, it seems hard to believe that resupplying for the first (or last) 25th of a percent of the trip is worth the extra difficulty of hitting the fuel depot. Efficient launch windows to Mars are only open for a few months out of the year, and it's practically our next-door neighbor in comparison. I don't even want to think about how rare your ideal launch window would be for a heliopause outpost.
The other problem, of course, is getting the supplies to the depot. In theory, a station on Mars, one of the gas giants' moons, or even a TNO could use resources present there to create fuel for passing ships. But in the heliopause, there's nothing to harvest. Any fuel we load onto ships there will have to be laboriously transported to the station from elsewhere in the solar system, cutting drastically into the overall efficiency of our scheme. And the station will itself require power, and life support if it has crew.
Ultimately the added complexity of building and maintaining the station itself, stocking it with supplies for ships, arranging for pickup of those supplies, and coordinating launches around the orbit of the outpost (or worse yet, two outposts, one in each system) would simply be impractical compared to the expensive, yet very simple approach of increasing the ship's fuel and supply capacity.
Answer: In the immortal words of Douglas Adams, "Space is big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist's, but that's just peanuts to space."
Because it's so big (as in, billions of outposts around the heliosphere wouldn't stop a Romulan invasion), you actually need a good reason to have an outpost. You didn't propose one, so I'm going to somewhat ignore your question and answer the question, "What reasons would require a human outpost at our solar system's heliopause?"  Hopefully, that will answer your question.
Good Reason: There was a day long before GPS when giant concrete arrows could be found all over the United States. Their purpose was to help guide early airmail pilots. Now, you may think that keeping that big bright sun in the crosshairs is easy, but 3D navigation is harder than you might think! So outposts serving as transponders would help navigation. Six would be all you need, broadcasting in all directions. Your ship need only pick up three of them (more would be better) to triangulate the approach to Earth — especially if Earth had rules governing exactly how an approach could be made.
Poor Reason: Refueling. Honestly, the size an outpost would have to be to deal with resupplying incoming or outgoing ships is planet sized. As in Death Star sized. You'd have to have something large enough to grow its own food and hope to never need another piece of metal ever. The cost of resupplying the outpost is well beyond its value. Just build bigger ships.
Kinda Good Reason: Such outposts could act as a detection net. If you had enough outposts (possibly millions or billions), you could use light and, when someone was detected, forward that data to Earth. The incoming ship must slow down (unless it's a strafing run) so the light will always arrive first. Or you can use a trope (tachyons, etc.) to achieve faster-than-light detection.
Good Reason: (Thanks @David258!) Scientific exploration. Similar to the Hubble telescope being outside our atmosphere being a good thing, a research station outside the heliopause would allow for incredibly clear views across the electromagnetic spectrum.
Good Reason: (Thanks @JoeBloggs!) Diplomacy and customs port of call. This would inevitably become a trade station (or at least an aggregator to reduce traffic around Earth itself).
And that's all I've got.
As for more distant outposts, the only reason I can think of would be trading posts at cross roads. In this case you'd want a big ol' death star sized object at or near where multiple trade routes between multiple stars cross. While this would make a pretty good scifi story stage, in reality it's probably so unlikely for trade routes to cross close enough to each other (see Douglas' quote) to justify the outpost.
One thing to keep in mind, though, what we just learned when Voyager passed the heliopause is that intersteller space is HOT. As in 89,000℉ hot. That's hotter than our sun's photosphere. Interstellar space travel has some huge problems to overcome. But, to be fair, if you have the tech to travel, you have the tech to outpost.
Comment: Talking of cross roads and customs stations: some SF authors' universes are based on the idea that wormholes can't be erected (artificially, by man) but do occur naturally. An entrance to one may be a good place for such an outpost. Heck, even if mankind **could** create them, maybe there is a good physics reason (hehe, this is SF after all) why that can be done only outside the/a heliopause.
Comment: Another purpose could be an interstellar weather vane, judging the stellar winds and/or the interstellar medium might have important consequences for interstellar travel, and it would also be interesting for researchers long before interstellar travel was possible.
Comment: You can add diplomatic reasons to the list: IE 'Any of your ships found inside the heliopause will be destroyed without question or hesitation, and probably cause an interstellar war, but come dock at our nice shiny diplomatic station and we'll chat.'
Comment: Adding to the "scientific research" angle - there was a measurement just released where New Horizons was able to take simultaneous images with Earth of nearby stars, showing the parallax. If there was a Hubble-grade telescope out there, it could provide parallax measurements of much more distant stars than we can from Earth alone.
Comment: @JoeBloggs until some hot chick in a red dress walk up to you and asks if you're alive. Always beware the hot chicks in red dresses! But a diplomatic/customs station is a good idea - especially if you don't want the explosive contraband to go off near your atmosphere.
Comment: @David258 well duh! Scientific research would obviously be a good reason! I'm embarrassed that I missed that!
Comment: @fr13d that's actually a pretty good observation. It's a tangent, but the magnetic maelstrom Voyager encountered as it passed through the heliopause would make a natural suspension-of-disbelief location for a system wormhole.
Answer: One of the big problems with having an "outpost" anywhere in space is you need to expend considerable energy and/or reaction mass to match speeds with it. If you were on your way to someplace like Alpha Centarui, slowing down to meet an outpost and then speeding up again to resume your journey would essentially negate any sort of advantage that such an outpost might offer.
Indeed, if you are using beamed energy, such as giant lasers orbiting close to the Sun to push laser light sails, you would have done your acceleration deep inside the Solar System and already be blasting past the Heliopause at a considerble velocity. Slowing down and stopping isn't an option here.
What may be a useful option is to mount a giant laser and reflectors in the Oort cloud to provide two things: shining the beam ahead of the oncoming spaceship to illuminate and hopefully "push" aside dust particles and gasses that might impact the ship as it passes through interstellar space (as you start moving at higher speeds, these particles become dangerous. Knowing where they are to steer around them or pushing them away makes the ship's journey safer).
The other advantage would be to establish a ""photonic railway". Using the laser to illuminate a light sail provides extra thrust, and having a series of reflectors allows the light to be "recycled", bouncing between the lightsail and the reflector and them back to the lightsail. Having a "station" in deep space allows you to accelerate the spacecraft again as it passes, allowing for higher transit speeds while also freeing the solar laser to power another spacecraft. This deep in space you would likley be mining comets for deuterium in order to power fusion reactors to drive the laser, but since the material is already there and available, the overall cost is failry low.
So the idea of an "outpost" needs to be reconsidered somewhat in order to make it useful for interstellar flight.
Answer: Astronomers Believe Jupiter Kicked a 5th Gas Giant Out of the Solar System 4 Billion Years Ago. It Might Be Hanging Out In Or Near the Heliopause

The Nice model of solar system formation proposes the existence of a fifth gas giant planet during the initial formation of the solar system, but was later ejected as either a rogue planet, or sent into a very deep orbit by a close encounter with Jupiter.
If planet Nice exists, even if it is wandering but not yet left the Oort cloud (which is almost a light-year thick), it might possess moons (it's a Neptune-sized planet) and other resources that make it a natural waypoint for anything happening at the extreme edge of the solar system.
Research. It may also be a good place to study interstellar space with some safety: humans can live behind the protective wall of the Neptune-sized planet's magnetic field, but interstellar space is a very short rocket-ride away. It might make a lot of sense to spend a few years getting very smart about engineering and crew health in interstellar space before we commissioned a first interstellar vehicle that might spend decades in the stuff.
Gravitational assist. A ship launching from the inner system might, instead, use Nice as a final gravity-assist before hitting the long leg of a journey between stars.
Emergency alternate. Even if Nice isn't on the course, it might be planned to pre-settle Nice and route the long voyage near Nice's orbit. If anything breaks in the first several outbound months, Nice could be an alternate destination for that emergency.
Answer: the oort cloud is a region of the solar system that is beyond the planets, and would be humanity's best bet for an outpost because it also happens to be an extraordinarily great hiding place.
https://en.wikipedia.org/wiki/Oort_cloud
https://www.youtube.com/watch?v=H8Bx7y0syxc&t=349s
Answer: Yuggoth.

https://hirnsohle.de/test/fractalLab/
The Whisperer In Darkness; H.P. Lovecraft

I expect to visit other planets, and even other stars and galaxies.
  The first trip will be to Yuggoth, the nearest world fully peopled by
  the beings. It is a strange dark orb at the very rim of our solar
  system...
       "There are mighty cities on Yuggoth—great tiers of terraced towers built of black stone like the specimen I tried to send you.
  That came from Yuggoth. The sun shines there no brighter than a star,
  but the beings need no light. They have other, subtler senses, and put
  no windows in their great houses and temples. Light even hurts and
  hampers and confuses them, for it does not exist at all in the black
  cosmos outside time and space where they came from originally. To
  visit Yuggoth would drive any weak man mad—yet I am going there. The
  black rivers of pitch that flow under those mysterious Cyclopean
  bridges—things built by some elder race extinct and forgotten before
  the things came to Yuggoth from the ultimate voids...

Yuggoth is also a fine staging area for further exploration.

But Yuggoth, of course, is only the stepping-stone. The main body of
  the beings inhabits strangely organised abysses wholly beyond the
  utmost reach of any human imagination. The space-time globule which we
  recognise as the totality of all cosmic entity is only an atom in the
  genuine infinity which is theirs.

Yuggoth is well sited for your outer base, and has considerable building stock which can be retrofitted for your uses.  The locals can advise as as to which pits are occupied and should be avoided, and can also help your explorers access the genuine infinity which is theirs.
Answer: After reading the Trilogy of the Three Body Problem, I think that the Asteroid Belt, Jupiter and Saturn would be good places to have an outpost.
If you want to sent a spaceship to another star, Jupiter is nearly a must, at least for the gravitational assists. And if you have an outpost there, even better because you will be able to send an unmanned resupplier without needing to decelerate the spaceship.
That is supposing that we stay with chemical propulsion.
Comment: The problem with putting a supply base at jupiter for use with interstellar missions is that it's essentially the same as putting a hot-dog stand alongside a roller-coaster track. if you want to use jupiter, you're slingshoting, speeding up, not slowing down! Anyone passing Jupiter on their way out of the solar system is doing so at dozens of kilometers per second and there's no useful way of accelerating to match them.
Comment: Possible, but the gains are dramatically better for a vehicle approaching from outside the jovian system using jupiter. Just the sheer scale difference of a slingshot with jupiter makes it hard to beat. You could potentially perform a series of small slingshots around multiple moons to gain speed, but I wouldn't want to be the one to calculate the trajectories!
Comment: Maybe we can use the jovian moons to make a small slingshot to accelerate the resupply ship to the needed speed.
Answer: Outpost? For what? To supply interstellar ships? But a "ship" is a lousy means of interstellar travel.
You don't make a "ship". You make a nearly self-sustaining space habitat and then move it. You colonize a medium-sized Kuiper Belt object, tens of km radius. That has all the raw material you need for anything, including plenty of deuterium for your fusion power plants, maybe enough for a few million years. All accessible by tunneling through a low-gravity body. Humans live in big wheels, several km in radius, spinning for healthy gravity.
At some point, you decide that the solar system isn't where you want your descendants to be, so you spend some of your mass via mass drivers or plasma thrusters and leave at modest velocity. 250,000 years to Fomalhaut at 30 km/s. Lots more small bodies with easily extracted resources there.


Is there a dictionary of dictionaries in QTP version of VBS?

Question: Something similar to Set<String, Set<String>> in Java?
Answer: A Set is an unordered collection of unique elements. Many Set implementations are based on hash tables (possibly of key-value pairs). VBScript has a Dictionary class -
Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary")

You can't add the same key twice, so the keys of a VBScript Dictionary represent/model a Set (the Set is ordered (by insertion), however). Nothing keeps you from putting (other) Dictionaries into the values:
>> Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary")
>> dicParent.Add "Fst", CreateObject("Scripting.Dictionary")
>> dicParent("Fst").Add "Snd", "child of parent"
>> WScript.Echo dicParent("Fst")("Snd")
>>
child of parent

In VBScript (and theory), you can even use objects as keys (not only strings as in other languages):
>> Dim dicParent : Set dicParent = CreateObject("Scripting.Dictionary")
>> Dim dicChild  : Set dicChild  = CreateObject("Scripting.Dictionary")
>> dicParent(dicChild) = "child of parent"
>> WScript.Echo dicParent(dicChild)
>>
child of parent

Your practical mileage may vary.
Comment: Nice remark about using objects as keys. Allthough, I'll have to think about a practical use for that. Maybe a poor man's linked list, stack or queue.
Comment: Oh, I've used it to implement something like API caching -- to minimize references to the DataTable object, storing object properties (or references) in a dictionary. Works fine, can be useful indeed.


Coordinate Bond...(Dative Bond)

Question: Is NH4Cl Dative or Ionic or Covalent ?
I made the Lewis structure but I was not able to make it...
After many tries I posted this question
Some where I saw that they are made up of Ions but contain Covalent bond..
Comment: It is all of the above.
Answer: The bonding between $\ce{NH4+}$ and $\ce{Cl-}$ is ionic.
The bonding between $\ce{NH3}$ and $\ce{H+}$ in $\ce{NH4+}$ is a dative bond. (Since $\ce{H+}$ ion has no electrons, 2 electrons from $\ce{N}$ atom in $\ce{NH3}$ form the coordinate bond with $\ce{H+}$, thus forming $\ce{NH4+}$)
The bonding between $\ce{N}$ atom and $\ce{H}$ atom in $\ce{NH3}$ is covalent.

Coordinate Bond...(Dative Bond)


Javascript for Acrobat Pro X, simple 3 step and repeat

Question: I need a simple script compiled for a acrobat pro X plugin.
I need to make one change to every page in a multipage PDF.
A. Select All
B. Flip Horizontal
C. Move to Next Page
D. Go to A, until last page of PDF
Is this something that someone on here could script and post for me?
Much appreciation!
Answer: Is this still up to date?
Can be done with javascript for Acrobat, no need for a plugin. (If I get it right ^^)
<code>this.setPageRotations(,, 180);
</code>
This should do what you want.
From JavaScript for Acrobat API Reference:
Source Link


Center of a circle and shopping center

Question: There is a disagreement in the office. Are 'center of a circle' and 'shopping center' using the same meaning of the word center? Don't they both mean the middle or heart of the thing being referenced?
Comment: You can physically go to the center of a shopping center because shopping center refers to a location at which shopping can be performed. [It even has it's own definition.](http://www.dictionary.com/browse/shopping-center)
Comment: Yes, they are (more formally all the senses you mention are in the same semantic field, all related to the fundamental metaphor of "center"). What do your opponents say?
Comment: this is my position. They say they have independent meanings.
Comment: Not all shopping centers  are in the middle of town. There are plenty to be found on the outskirts of cities.
Answer: They're two different meanings for the same word.  From the Oxford Dictionary (which has "centre" rather than "center" but we can ignore that distinction, I think):
http://www.oxforddictionaries.com/definition/english/centre

1: The point that is equally distant from every point on the circumference of a circle or sphere.
2: The point from which an activity or process is directed, or on which it is focused

It doesn't make sense to say that a shopping centre is at the "middle" of the shopping - if anything, it's the other way round:  the shopping is contained within the "shopping centre".
Comment: In my experience a shopping centre is a large building (like a mall) or area **containing** many shops, rather than a point which is in the middle of all the shops.
Comment: If you compare _shopping center_ or _garden center_ with _town center_ or _city center_, you'll see that the two _centers_ have indeed a different meaning. Of course, the two meanings are related and (obviously) share an etymological background, but they are semantically different in modern usage.
Comment: but isn't the shopping center the point around which the shopping revolves? in reference to the first answer.
Answer: Center of a circle is the original meaning, by extension "the middle of anything" that is of the shopping in your specific case:

late 14c., "middle point of a circle; point round which something revolves," from Old French centre (14c.), from Latin centrum "center," originally fixed point of the two points of a drafting compass, from Greek kentron "sharp point, goad, sting of a wasp," from kentein "stitch," from PIE root *kent- "to prick" (source also of Breton kentr "a spur," Welsh cethr "nail," Old High German hantag "sharp, pointed").

Figuratively from 1680s. Meaning "the middle of anything" attested from 1590s. Spelling with -re popularized in Britain by Johnson's dictionary (following Bailey's), though -er is older and was used by Shakespeare, Milton, and Pope. Center of gravity is recorded from 1650s. Center of attention is from 1868.

(Etymonline)
Comment: A center is defined as `a place or group of buildings where a specified activity is concentrated.` in the oxford dictionary, so I'd say they were two separate definitions even though one implies the other. If you were to say City Center however, I'd argue it could be the same definition.
Comment: @SLC - as I said, "by extension" of the original meaning.
Comment: Yes, I didn't feel it answered the original question though.
Comment: if shopping center references center by extension, I would argue they are fundamentally the same meaning
Comment: @user53949 -        Yes, terms have  semantic changes and extentions during the centuries. The idea is the same, appiled to place with a central point around which activites take place (in this case shopping)

Center of a circle and shopping center


Moving Folders Between Libraries in Different Sites Leaves Copies in Both

Question: When I moved a folder from Site 1 Doc Library to Site 2 Doc Library (modern experience in both, btw), I ended up with copies in both locations. Is this expected behavior, that it doesn't actually MOVE the files? Does this mean that the files in the new location will not retain their Doc IDs and links, as well? Thanks, in advance!
Answer: So it turns out that some of the files had locks on them or special permissions that were interfering with the internal "move" mechanism within SharePoint Online. I had to map SPO as a drive and could only COPY those last items to the new location. I then had to delete the original folder manually. HTH someone else! (BTW, I never received an error in SharePoint. It wasn't until I tried the "move" command from within Windows File Explorer that I got the error that the files "could not be read from" the source location. I tried a copy instead with just a single file, and it worked, which led me to then trying to just COPY the entire folder.


Is forcetk accessible in Communities

Question: I am using forcetk to upload files (as Attachment records) in a VisualForce Page and it works fine. But when I access same page in a Community, I am not able to upload the file as I am getting the "503 Service Unavailable" in console. Is this proxy is accessible in communities?
Comment: Hi guys, with little bit of search came to know that request url has to be set in forcetk.Client(). So I used the clientId as null, loginUrl as login url for Community and proxyUrl as "services/proxy". When i tried with this request url is becoming -> "loginUrl/apex/services/proxy" instead of "loginUrl/services/proxy". Could you please let e know is there any way i can change this?

Thanks
Comment: Was able to form the link but every time i am getting the "[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]" error. Please suggest.
Comment: I have the same problem when using AngularForce, which is a glue b/w AngularJS and ForceTK.
Comment: @ShrivathsKulkarni did you find a way around this? I'm currently faceing the same situation
Answer: You can retrieve the URL of the Community reliably using the following Apex (and return it to the client using @AuraEnabled or @RemoteAction):
URL.getOrgDomainUrl().toExternalForm();

Then append the proxy/service endpoint to use in ForceTK or an XHR as your normally would
Answer: I have a solution for this if you are willing to edit your copy of forcetk.js
https://github.com/developerforce/Force.com-JavaScript-REST-Toolkit/blob/master/forcetk.js
find function: forcetk.Client.prototype.setSessionToken
leave it as is but at the end add:
this.instanceUrl = 'your community url';
this.proxyUrl = null;
this.visualforce = false;

This is a hack, there are ways to clean this up better, but this is the least intrusive modification I could pull off quickly.
I originally was using jsforce (which handles this nicely). Unfortunately, jsforce currently doesn't support IE9 so that's why I am here :)
Comment: This did not work for me. Does some other resolve this issue?
Comment: This should work @jonathanwiesel make sure you include the site prefix if you have one at the end of the instanceUrl: domain/site-prefix
Answer: If you want the same Visualforce page to work in both a Community and outside a community, you need to construct the correct instance URL and proxy URL:
var elements = location.hostname.split(".");
var instance = (elements.length == 3) ? elements[0] : elements[1];
// Are we on a Community page?
var baseURL = '{!$Site.BaseUrl}' || null;
var proxy = '/services/proxy';
var instanceURL =  baseURL || ('https://' + instance + '.salesforce.com');
var proxyURL = baseURL ? (baseURL + proxy) : proxy;

var client = new forcetk.Client();
client.setSessionToken('{!$Api.Session_ID}', 'v35.0', instanceURL);
client.proxyUrl = proxyURL;

Is forcetk accessible in Communities


What Are these in the PFD?

Question: I marked them with white circles. What are they for?
Comment: You are basically asking about the entire PFD (which seems to be from a 737NG). Have you tried googling/reading official docs from Boeing? you could have at least numbered the different items to make answering easier
Comment: Downvoters, please explain why you downvote. If you cannot find a way of improving this question, this will at least give clue to the OP for how to ask its next question.
Comment: I upvoted this question as it comes back to basics which is a good entry point for new comers.
Comment: @Mohammad Gohardoust - To further you're interest in aviation, I would highly recommend becoming familiar with the standard steam gauge six-pack. Every airplane will have their own version of these instruments. If you add to that autopilot and VOR/ILS Course Deviation Indicators, you will be able to decipher most of the front panel of even the most sophisticated aircraft. Most of them have their PFDs set up in very similar fashions. A Garmin G1000 w/ GFC700 is a good example of a generic PFD for beginners.
Comment: thank you very much
Answer:
.78:
This is the target speed or Mach number, meaning the aircraft should travel at $ 0.78 \times c $ (speed of sound). The current Mach number is 0.779 (shown in white at the bottom of the speed tape).

Selected Speed (magenta)
Displays target airspeed:

indicates the airspeed manually selected in the IAS/MACH window
indicates the FMC computed airspeed when the IAS/MACH window is
  blank.

ARM LNAV VNAV SPD:
This is the Flight Mode Annunciatior (FMA), indicating that the autothrottles are armed (ARM), the roll mode is Lateral Navigation (LNAV) and the pitch mode is vertical navigation speed (VNAV SPD).

1 Autothrottle (A/T) Engaged Mode
2 Roll Engaged Mode
4 Pitch Engaged Mode

Red band:
This is the so called Barber's pole indicating the indicated airspeed range that is above the current maximum speed.

Maximum Speed (red and black)
Bottom of the bar indicates the maximum speed as limited by the lowest of the
  following:

Vmo/Mmo
landing gear placard speed
flap placard speed.

CMD:
This is indicating that one of the autopilots is currently engaged in command mode (CMD). The 737 also has a different autopilot mode called control wheel steering (CWS).

7 Autopilot Status

(see previous image above)
254:
This is the current calibrated airspeed in knots. The magenta marker is the current target speed for the autothrottle / VNAV descent.

Current Airspeed (white)
Indicates current calibrated airspeed in knots.
  When current airspeed decreases into the minimum maneuver speed amber bar:

airspeed readout box turns amber and flashes for 10 seconds.
box returns to white when airspeed is above minimum maneuver speed.

Speed Bug (magenta)
Points to the airspeed:

manually selected in the IAS/MACH window
indicates the FMC computed airspeed when the IAS/MACH window is
  blank.

When the selected speed is off scale, the bug is parked at the top or bottom of the
  tape, with only one half bug visible.

36620:
This is the current altitude in feet as measured by the static ports. This is not necessarily the actual altitude above sea level because the reference pressure for the altimeter is set to STD (see below).

Current Altitude
Displays current altitude in increments of thousands, hundreds and twenty feet:

for positive values of altitude below 10,000 feet, a green crosshatch
  symbol is displayed
a negative sign appears when altitude below zero feet is displayed
readout box becomes bold to denote altitude acquisition
readout box is highlighted in amber and flashes to denote altitude
  deviation (refer to Chapter 4, Automatic Flight and Chapter 15, Warning
  Systems).

To the right of this (not circled in the picture, but worth mentioning) is a scale with a white needle pointing between numbers 2 and 6 on the scale:
This is the vertical speed indicator or VSI. It indicates the direction and rate of the planes vertical movement. The numbers on the scale indicate thousands of feet / second, and since the needle is pointing downwards, the plane is currently descending. Below the scale is numerical display giving the exact rate of descend or climb. In this case, the plane is  descending at 2800 feet/minute

REF 30/128:
This is the reference flaps and speed for landing. The pilots have already selected that they want to land with flaps 30 and at a reference speed of 128 knots in the CDU.

Speed Reference Display (green)
Displayed if the airspeed and/or weight is entered via the speed reference selector
  on the engine display control panel:

on the ground, V1, VR, and takeoff gross weight may be selected; if
  VREF is selected, INVALID ENTRY is displayed
in flight, VREF and landing gross weight may be selected; if V1 or VR is
  selected, INVALID ENTRY is displayed
removed when the speed reference selector is moved to the SET position.

STD 30.21 IN.:
This is the current and pre-selected altimeter reference pressure. STD means that the current reference pressure is 1013 hPa (29.92 inHg), which is the standard value selected above the transition altitude. The pilots have already pre-selected a value of 30.21 inHg, which will be activated when descending below (or being cleared below) the transition level.

Barometric Settings (green)
Indicates the barometric setting in either inches of mercury (IN) or hectopascals
  (HPA) as selected on the EFIS control panel.
  Display is boxed amber if numeric is set and airplane is climbing above transition
  altitude, or if STD is set and descending below transition flight level.
Preselected Barometric Setting (white)
STD is displayed when the Barometric Standard (STD) switch is selected on the
  EFIS control panel.
  When STD is displayed, a barometric setting can be preselected on the EFIS
  control panel barometric selector and is displayed in small white characters below
  STD.

Circle at bottom:
This is the current heading indicator. It is showing that the aircraft's nose is pointing towards 260 degrees as measured from magnetic North (see the green MAG text), but is actually moving across the ground (track) at 256 degrees (white line). The current selected heading on the MCP (mode control panel) is shown by the magenta marker and text (also 260 here).

1 Current Heading Pointer (white)
Indicates current heading.
2 Track Pointer (white)
Indicates current track.
3 Selected Heading (magenta)
Digital display of the selected heading bug.
4 Selected Heading Bug (magenta)
Indicates the heading selected on the mode control panel. If the selected heading
  exceeds the display range, the bug parks on the side of the compass rose in the
  direction of the shorter turn to the heading.
5 Magnetic/True Heading Annunciation (green)
Displays selected heading reference:

MAG indicates display is oriented relative to magnetic north
TRU indicates display is oriented relative to true north; a white box is
  displayed continuously around TRU

all images and quotes: Boeing 737 NG FCOMv2 (4.10 Automatic Flight - Controls and Indicators, 10.10 Flight Instruments, Displays - Controls and Indicators)
Comment: very useful Thank you very much
Comment: @Sami I always used $c$ for speed of sound, too. [Wikipedia](https://en.wikipedia.org/wiki/Speed_of_sound#Equations) seems to do the same.
Comment: I took the liberty of adding a description of VSI even though it was not actually asked about...
Comment: thank you so much

What Are these in the PFD?


Apply coupon code when cart is empty

Question: Would there be any easy way (or any issues) with allowing a customer to enter a coupon code before putting any items in his cart?
Answer: The coupon code can be added at any time.
All you need to do is create a coupon code form somewhere using the {cartthrob:add_coupon_form} tags. http://cartthrob.com/docs/tags_detail/add_coupon_form/
Really it's just a matter of creating your site's flow so the customer reaches that form first. It might be that you put the form on the homepage or you could create a separate page for it then do some kind of redirection to that page if the cart is empty (using total_items tag within cart_items_info).
Comment: I am on CT2.5 but it definitely requires me to have an item in the cart first, (and not necessarily an item that applies to the offer), otherwise I get an error.

Apply coupon code when cart is empty


When is it possible to inscribe sphere in parallelogram pyramid?

Question: I'm learning about basics of solid geometry connected with pyramids. I've solved some problems with tetrahedrons, regular pyramids etc. and now I'm trying to solve problem about quite unusual setting - pyramid with parallelogram in base (it can be any pyramid, the only requirement is that it has parallelogram in base). I'm wondering when is it possible to inscribe a sphere in it that touches all five faces. I've tried to imagine it, but my imagination is not that good.
Comment: @AlexLi You are right in the case of a right pyramid: in that case the base must be a rhombus. But if you allow oblique pyramids you can have more general bases, for instance a rectangle, where it is not possible to inscribe a circle.
Comment: It makes sense to me  that the sphere would touch the pyramid at 5 points: the ground, and 4 points at the same height on the pyramid. I'm not sure that the last part is true, but if so, then you can look at only that cross-section and see if you can inscribe a circle in that similar parallelogram - if you can, you can put a sphere in the pyramid
Answer: In general, a sphere can be inscribed in a pyramid if the bisectors of the dihedral angles formed by its lateral faces all meet on the same line. This is always true, for any shape of the base.
If the base is a parallelogram and the projection of the vertex on the base is the center of the parallelogram, then a sphere can be inscribed only if the base is a rhombus. But in the case of an oblique pyramid, more general parallelograms are possible.
EDIT.
To show an example, let's see what kind of pyramids with rectangular base admit an inscribed sphere. Suppose we have a rectangle $ABCD$ as base, with $AB=2b$ and $AD=2a$, and let vertex $V$ be at a distance $VH=h$ over the base plane, with its projection $H$ lying on a median axis of the rectangle, at a distance $OH=x$ from the rectangle center (see diagram below).
The condition that the bisectors of the dihedral angles formed by the lateral faces meet on the same line is satisfied if we can find a quadrilateral section of the pyramid where a circle can be inscribed, and perpendicular to the line joining vertex $V$ with the center of the circle.
In our case, as $AB\perp VM$ (where $M$ is the midpoint of $AB$), we can conveniently search such a section in the form of an isosceles trapezoid with bases $AB$ and $EF$, with $EF$ at a distance $FL=h'$ over the base. A circle can be inscribed in $ABEF$ if $AB+EF=2AF$, while the condition that the trapezoid is perpendicular to the line joining $V$ with the center of the circle is satisfied if $VG=VM$ ($G$ midpoint of $EF$).
These two equations can be written in terms of $a$, $b$, $h$, $x$, $h'$ and can be solved for $h'$ and another variable, giving thus a constraint on the pyramid shape. Solving for $h'$ and $h$ gives, for example:
$$
h={\sqrt{b^2+x^2-a^2}\over\sqrt{a^2-b^2}}b,
\qquad
h'={2(a^2-b^2)\over{a^2-b^2+ax}}h.
$$
A sphere can be inscribed only in those pyramids having that particular value of $h$ (given $a$, $b$ and $x$). In addition, $a$, $b$ and $x$ must be such that the expressions under square roots be positive:
$$
b^2<a^2<b^2+x^2.
$$
Once these quantities are known it is quite simple to find the center of the inscribed sphere, which lies on the line joining the vertex with the center of the inscribed circle.

Of course I chose a particularly simple and symmetric setting, but this example should give an idea of how to handle more general cases.
Comment: See also this related question: https://math.stackexchange.com/questions/3378538/when-is-it-possible-to-inscribe-sphere-in-parallelogram-pyramid-additional-ques
Answer: In fact, your question is rather trivial: If the pyramid is non-degenerated, it is always possible to inscribe a sphere in it. More precisely, for every point that is inside the pyramid you can find infinitely many spheres that are centered in this point and are inside the pyramid.
So let $P$ be a point in the inner of the pyramid. Let $a_1, \ldots, a_5$ be the distances of point $P$ to the faces of the pyramid. Than any circle centered in $P$ with radius $r\leq \min\{a_1,\ldots,a_5\}$ is inside the pyramid.
A more interesting question would be if it is always possible to inscribe a sphere that touches all five faces of the pyramid. I think that this is not possible. In $\mathbb R^2$, there are parallelograms for which it is not even possible to inscribe a circle that touches every side of the parallelogram. My intuition tells me that the situation in $\mathbb R^3$ is even more complicated, but I may be wrong here.
Comment: No, it's not trivial, because "inscribed" is much more retricitve than "included" !


A Trie data structure in Java

Question: this is the first time I' implementing a Trie. My goal was to make it as simple as possible. So here is the result:
Can I simplify anything else? Are there some things I can change to increase performance ? Also any feedback on code quality/design is welcome :)
Node.java
package trie;

public class Node {
    final Node[] children = new Node[26];
    boolean isEnd = false;
}

Trie.java
package trie;

import java.util.ArrayList;
import java.util.List;

public class Trie {
    static final int ALPHABET_SIZE = 26;
    final Node root = new Node();

    void add(String str) {
        Node curr = root;
        for (int i = 0; i < str.length(); i++) {
            int idx = str.charAt(i) - 'a';
            if (curr.children[idx] == null) {
                curr.children[idx] = new Node();
            }
            curr = curr.children[idx];
        }
        curr.isEnd = true;
    }

    Node getNode(String str) {
        Node node = root;
        for (int i = 0; i < str.length(); i++) {
            Node child = node.children[str.charAt(i) - 'a'];
            if (child == null) {
                return null;
            }
            node = child;
        }
        return node;
    }

    boolean contains(String str) {
        Node node = getNode(str);
        return node != null && node.isEnd;
    }

    List<String> prefixedWords(String str) {
        Node curr = getNode(str);
        List<String> prefixedWords = new ArrayList<>();
        DFS(curr, str, prefixedWords);
        return prefixedWords;
    }

    void DFS(Node root, String prefix, List<String> list) {
        if (root != null) {
            if (root.isEnd) {
                list.add(prefix);
            }
            for (int i = 0; i < ALPHABET_SIZE; i++) {
                if (root.children[i] != null) {
                    DFS(root.children[i], prefix + (char) (i + 'a'), list);
                }
            }
        }
    }
}

Answer: Magic numbers

    final Node[] children = new Node[26];

Consider changing this to
    final Node[] children = new Node[Trie.ALPHABET_SIZE];

Now you don't have to manually change the array size if you change the alphabet size.  It may not matter here (we are unlikely to add a letter to the alphabet and you may not need to change alphabets), but it is good practice to set things up so that the system makes them the same.
Range-based for loops

        for (int i = 0; i < str.length(); i++) {
            int idx = str.charAt(i) - 'a';

This could be
        for (char c : str.toCharArray()) {
            int idx = c - 'a';

Then you don't have to maintain i manually.
You also may want to check that idx is in the range 0 to 25.  You currently just trust that that will be so.
Early exit

    void DFS(Node root, String prefix, List<String> list) {
        if (root != null) {

This could be
    static void DFS(Node root, String prefix, List<String> list) {
        if (root == null) {
            return;
        }

This way you don't have to enclose the entire method inside an if.  You can just bail out immediately.
The method should be static because it doesn't use any of the state of the trie.  In fact, one of its parameters has the same name as an object field.
Performance
I don't see anything that leaps out at me performance wise.  Tries are best at prefix searches and relatively slow and memory intensive to build.  For many uses, a HashSet (for full word searches) or even an ArrayList is faster.  We need a long run to amortize out the build time enough to give faster prefix lookups.
Anyway, time your actual usage to see if this solution is faster than other solutions.

A Trie data structure in Java


Advantages of using two tables instead of a column with 2 different values

Question: I'm creating a database structure. I have to store ingoing and outgoing messages and I'm wondering which is the best way to do this.
2 separated tables or the same tables with an ENUM('in', 'out') column?
Any suggestion?
Comment: What kind of message? What other details are you storing in you table?
Comment: text and user_id, quite simple is there a reason to prefer storing in the same table ?

And what about performance ?
Answer: If you are sending messages to users from other users, what I do is to create a sent_message table and a message_to_users table.
The likelihood is that you won't want to properly delete a message at any point, so I just put flags in for that.
sent_message
------------
sent_message_id
from_id int
subject varchar(128)
body text
status char(1)
sent_datetime datetime

message_to_user
-------
message_to_user_id int
sent_message_id int
to_id int
read_datetime datetime
status char(1)

The status of the sent_message would be s(ent) or d(eleted) and the status for the message_to_user would be a(rrived), r(ead), or d(eleted)
This method allows for easy "reply all" functionality, and saves space when sending a message to more than one user.
Answer: One thing that will dictate your structure is whether incoming and outgoing messages need differnt data stored concerning them. If they do, you likely will need separate tables.
Also will you usually be requesting them separately or will you always need both types from the same query.
In making the determination you need to sit down and decide what data you need to store about each type and how you are going to query the data. That will end up dictating your structure. In a typical message situtation, you will likely have many many records and it will be of benefit to design with that volumn in mind. I might even test both ways with a set of test records in the multimillions to see what impact my basic desgn choice had. I know people talk about not prematurely optimizing, but the basic structure of a database is very hard to change once you have millions of actual records, it is worth the time to set it up now with test records and see which of the possbilities will work best with the type of querying you need to do (don't forget to test with indexes as they make a huge performance differnce). This is not premature optimization, this is testing the likely load before commiting to a poor design and being unable to refactor later when users are screaming about performance.
Answer: Since the message is the very same object you should include box_id as a reference to boxes table. This will help you store messages not only in inbox/outbox, but in trash, drafts and other "folders" you may think of.
Otherwise you can have many-to-many relationship and store same message in several boxes (just like gmail labels).
Answer: If 90% of the columns are the same, use one table.
Pseudo-SQL:
TABLE messages
  id INT
  subject STRING
  direction ENUM
INDEX direction

Answer: I would suggest separate tables if they are accessed/managed by separate processes. If the same process manages both types of message, then use the same table.
Answer: One table is the best solution.
Usually any given data entity should be stored in a table. In this case message is your data entity.
As a side point I would advise against the use of enums in tables - in this case the messages will belong to incoming or outgoing - so the message direction should be stored in a separate table with an constraint to ensure that they are valid.
Also the direction is probably a mis-nomer and you may wish to call in & out folders or location or boxes (as @Eimantas points out).
Answer: If it's a messaging system for messages between users of the same site/application, you could simply use 1 table with senderId and recipientId. Inbox are the messages where the users id matches recipientId, outbox where the users id matches senderId.
Mind you, this doesn't scale well for messages to multiple users at once though. In that case you need a separate table as illustrated by Matt Allen.
Answer: I think it depends on whether or not you would ever want to see all messages at once.  If your queries are going to return either all of the incoming OR all of the outgoing, but NEVER all of them together; then you'll want two tables.  Especially if you end-up with a lot of rows in each, two tables will be a faster solution.
Comment: and what if i want to return all of them together?
Comment: Then you join to the second table.
Answer: If the messages are really the same entity, differing only in a single attribute value, use a single table.  If you want a subset available in certain routines, create single-table views to get only the inbound or outbound messages.
If the messages are different entities, and particularly if they validate against a different set of userids, you'll need two table.


Where can I find Harry Potter game called "Pottermore"?

Question: What is the Pottermore game and where can I play this?
Comment: I thought "Pottermore" was the old name for JKR's website now called "[Wizarding World](https://www.wizardingworld.com/)."  If you're sure there's a game by this name, where did you hear about it and what do you know about it?
Comment: never heard about a game called "Pottermore"... as stated by David this was the name of the original website of JKR....
Comment: The first _Pottermore_ had some more gaming elements that were not present in its subsequent versions (finding hidden objects in the images, making potions, duelling). I'm quite sure there is a question asking for the differences between the old and new _Pottermore_.
Comment: Here is the question I was referring to: [_What are the differences between old Pottermore and new?_](https://scifi.stackexchange.com/q/113605/40711)
Comment: maybe the Patronus picker and House Sorting would be the closest thing I could think of on Pottermore that could be considered games
Answer: Pottermore was the precursor to what is now Wizarding World. It was, like its successor, an online resource for all things related to Harry Potter.
It was launched in early 2012 and was replaced by Wizarding World in 2019. Most of the content was migrated there.
J.K. Rowling occasionally posted original materials, supplemental to the books and films.


Systematic allocation of treatment: is there a chance of biasing a design?

Question: When we speak of the benefits of randomization, we talk about the balance of covariates so as to mitigate the possible confounding due to selection of treatment. That is, if a design were replicated again and again, each patient would be equally likely to be assigned to treatment or control. Why then do we not  assign treatment in a systematic 1-0-1-0-1-... fashion? If we view the order of a participant's entry into the study as random so that their order of entry is equally likely to be even- or odd-numbered, would that effectively solve the same type(s) of biases as unconditional randomization?
Comment: Fixed assignment encourages guessing, which is often capable of discovering the actual treatment beforehand. That is why allocation concealment is as important as blinding.
Comment: @Joe_74 Does guessing actually bias a design? Isn't it inherent that people will try to guess or speculate at what treatment they're on? As long as "controls" and "active arm" participants are both doing guessing, they are otherwise comparable. The setting of a study introduces some issues, but guessing [which treatment you're on] isn't bad.
Comment: Guessing might easily bias a study. For instance, imagine that you are comparing a proton pump inhibitor (for gastritis) vs placebo. If the sequence is fixed, a patient might end up adjusting his eating pattern choosing a heavy meal for the day in which the active drug is due, and instead a light meal for the day in which placebo is due, profoundly confounding the eventual analysis.
Comment: @joe_74 that is definitely a consideration for open label designs. It will bias the efficacy estimate, but on terms of effectiveness this "confounding by diet" may actually reflect a drawback of the medication's function as a "crutch for bad behavior". As I said, "guessing" will be done in either arm and with equal precision (50/50) so your example wouldn't bias anything because diet couldn't correlate with actual treatment assignment.
Answer: If the randomization sequence is discovered, patients could be non randomly assigned to the experimental group of choice. In a truly blinded study, this is unlikely. In many studies, blinding may not be possible, which would expose a simple 1-0-1-0- process. Many investigators attempt to provide care through RCTs and hope for treatment group assignment when, theoretically, equipoise allows conduct of randomized assignment.
Comment: Good point. But in a non-blinded study, the participant knows their treatment assignment. So they need not infer it from other participants. In contaminated studies, participants infer each others' assignments even with blinding: that boils down to choice of placebo. The intent of trial coordinators to provide care is a substantial rationale for having a control (SoC) group and single-blinding at the very least. Beyond that, I would say equipoise allows for more than just randomization, it allows for treatment allocation which is inclusive of what I describe. Do you agree with that?
Comment: The coordinators need to be blinded to the randomization process to prevent anticipation and non-random assignment. The patients need to be blinded to normalize the treatment effect or placebo effect as much as possible. Patients do talk in waiting rooms and try to ascertain treatment or control status. Agree that equipoise allows for almost every aspect of the RCT enterprise. Without equipoise, there is no important question to answer. However, equipoise is best thought of as a consensus of ambivalence. Individuals retain strong biases, usually for new treatments.
Comment: Your points are excellent. [This review](https://www.nejm.org/doi/full/10.1056/NEJM198312013092204) from NEJM describes all the points you mention. I understand that the relative merits of randomization include enforcing better adherence to trial protocols.


Blocking HTTP downloads but not HTTPS

Question: Are there any security reasons why a network admin would block downloads over HTTP, but allow them over HTTPS?
Comment: Are you sure that its not simply that the packet inspection mechanism that your network admin is using can only detect downloads over HTTP, not over HTTPS due to the encryption?
Comment: @Rob Farr fairly certain. There is a policy of blocking downloads over http but not Https. I just wanted to understand the reasoning behind it because it appears to be unnecessary and causes a lot of problems.
Comment: What did the network administrator say when you asked them?
Comment: probably you want to ask this at https://security.stackexchange.com/
Answer: If we talk about static file downloads without any authentication, the ability to ensure data integrity is one reason. However, encrypting the connection is just one tool for that as you could also use checksums to make sure that the data haven't been modified during the transmission.
However, blocking all HTTP downloads from anywhere will cause more problems than it would solve, as some content is only available on HTTP. From the opposite perspective, it's perfectly fine to provide downloads only via HTTPS for data integrity, and it additionally helps protecting the information on who downloaded what.
On the other hand, HTTP downloads have one advantage from the perspective of network administration: you can run virus (and other content) checks against the file in a firewall/UTM, before it even gets to the client computer. With HTTPS you would need to decrypt the TLS first; that would technically be a man-in-the-middle attack, while it has a legitimate purpose.
Comment: Correct. Using HTTPS only prevents **intentional tampering** of the data.
Comment: I agree, that blocking http-downloads cuases more problems than it solves.
But with integrity you are wrong. The integrity is never checked automatically (not in http and not in https).

You could only manually check the integrity with some md5 or sha checksums or using the "Content-MD5" http Header, if it is defined
Comment: HTTP downloads may also contain authentication cookie information in the request headers. This would let a person sniffing the network to hijack a session which, in some cases, is worse than allowing an attacker to learn who is downloading what.
Comment: That's why I had _without any authentication_. :)
Comment: Unless the network is also filtering/poisoning DNS and blocking public DNS, you can still visit `https://evil.example.com/StuxCry.exe.vbs`
Answer: I think yes, there are some reasons why downloads via http could be dangerous.

without https you could suffer of Man-In-The middle attacks.

e.g. somebody tries to download software from a trusted page, but instead he gets a file with a virus

without https you can see the full request uris in your http traffic, with https you see only the hosts
if you do download from a page with http-login, someone could "see" your login-data when you are not using https
Answer: I think because HTTPS is an encrypt message and protects your download content against eavesdropping and tampering

Blocking HTTP downloads but not HTTPS


Adding exception for a file to default programs in windows

Question: Windows 10 has a default programs section in settings where we can associate a default program to open the file with its file extension. I have a situation where I want to open all the .py files with VSCode(IDE) except few which I want to associate with python.exe. But when I change the file association it changes for all .py files. Any nice way to handle this without changing extensions back and forth?
Comment: Probably not. Consider creating shortcuts for the exception files.
Answer: Disclaimer: This is a workaround. The following method requires administrator permission to change registry values.
Basis: After installing Python (any version), .py file is automatically associated with python.exe. In the following method, that python.exe association with .py extension is preserved. Because anytime we/users execute .py file with python.exe and this default file association helps to do it without typing python.exe in commands. Also Python files can be visually distinguished with blue-yellow pythons :) So what to do? Just add a context menu (i.e. right click dialog box) for .py file only which shows "Edit with VSCode" option.
Procedure: First check if .py is actually associated with python.exe (optional). Run these command:
assoc .py
ftype Python.File

From the first command output, grab the Python.File file type and write a text file as following:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shell\Edit with VSCode\command]
@="E:\\VSCode\\Code.exe \"%1\""

Here E:\VSCode\Code.exe is the full path of VSCode executable. The path can be changed with Registry Editor.

Open HKEY_CLASSES_ROOT\Python.File\shell\Edit with VScode\command registry in Registry Editor. Edit the (Default) value with your own VSCode full path. So what does this registry value do? It adds a context menu for Python.File file type (e.g. for .py files) which execute Code.exe C:\path\to\abc.py command.


how could I move an earth sized planet?

Question: How could a Kardeshev II level society move an earth-sized planet at high speed, without killing everything on the planet and access to all of the resources in a solar system similar to our own? what is the shortest timescale this could be accomplished on?
Comment: The Earth is already moving at high speed.
Comment: Asked before.  https://worldbuilding.stackexchange.com/questions/10860/how-could-a-sentient-life-form-move-an-exoplanet-the-mass-of-the-earth
Comment: @Confoundedbybeigefish. Questions with multiple answers, or questions with one answer which has an upvote (even if not net upvoted) cannot be deleted by the user who posted that question. See [How does deleting work? What can cause a post to be deleted, and what does that actually mean? What are the criteria for deletion?](https://meta.stackexchange.com/a/5222/157730) under "When *can't* I delete my own post?"
Comment: Might also wanna define "move". Like, into a subtly different orbit? A dramatically different orbit? Out of the planetary system entirely?
Comment: (Also worth considering _why_ said K2 civilisation would do this. Terraforming other planets and building giant space habitats would be well within their power, and likely to be far more straightfoward that hoofing around giant blobs of dumb matter)
Comment: As puppetsock has commented, this has been asked before a while ago. Your version of the question (4 years later) seems to have generated a raft of interesting answers and so should not be deleted. Voting to close as duplicate.
Comment: what I mean is for the planet to be moved out of our solar system.
Answer: You can't.
This is covered pretty well by How to move the Earth blog.
The only extremely remotely feasible way is a repeated gravity assist.  Essentially, you take a big asteroid and have it make a flyby of Earth, transferring some angular momentum from itself to the Earth, then make a flyby of Jupiter, transferring angular momentum from Jupiter to the asteroid, and repeat this billions of times.  The Earth orbit will get ever so slightly higher, however it certainly doesn't move fast.
  As described by the blog:

This is a method originally proposed as a means of moving Earth to a higher orbit around the Sun in order to save it from the Sun's inevitable Red Giant expansion. It involves asteroids, like the above method, only instead of direct impacts, this time we just steer them past the Earth, allowing rock and planet to exchange a little momentum, with the result of an Earth moving on a slightly different track and an asteroid moving on a significantly different one. You could reuse the same asteroid again and again, looping it around a few gas giants and back to gain lots more kinetic energy from those gas giants in the same way that Earth just gained velocity from the rock. You could repeat this thousands of times over the course of millions of years. Better, you could use many, many asteroids one after the other in a steady stream, and cut down the total time significantly. You could of course use this method to steer the Earth in any direction you wanted, not just away from the Sun... heh heh heh...
Answer: Divide and conquer.
Build a fleet of enormous space ships and fill them with all of the fragile parts (humans, animals, plants, cities, etc.).
Next use your K2 technology to condense the atmosphere into an liquid form and tank it up, along with the oceans, in secure storage tanks on the planet's surface.  Then solidify the core and unify the continental plates, reducing the planet into a single, high density object capable of surviving high speed acceleration.
Now the barren solid planet can be pushed and/or dragged through space using K2 level gravity manipulation.  By constantly creating a intense gravity well just ahead of the moving planet, the planet can be kept in a constant state of descent, increasing in velocity until it reached some physical maximum, limited only by its mass.
Meanwhile, the fleet of spaceships can escort the planet or cruise along at a more life-friendly velocity.  After all, it is not a problem if the planet gets to its destination ahead of its inhabitants.
The goal was to move the planet.
Comment: Actually, I was using non-distinct language here to make up for my lack of scientific creds.  Some of the big brains on this site seem like they already belong to a K2 civilization.  I, on the other hand, have a 1970's education and great respect for those who think faster and deeper than I can.  So I assume that there is some maximum speed limit out there.  I can't imagine we can break light speed just by falling into an infinitely deep hole.  But I don't have the science to defend that assumption, so I talked around it.  Feel free to suggest any improvement to that part.  Thanks in advance!
Comment: increasing in velocity until it reached some physical maximum, limited only by its mass. What do you mean here? Generally speaking, velocity is never a problem. Acceleration is.
Comment: at this point why not terraform a planet at your destination? You're pretty much doing it to your own planet after you moved it.
Comment: @RaulGrigorașcu, agreed.  But the question asked us to move a planet, so we moved the planet.  Maybe the K2's want to put something else into the orbit that its' departure will vacate.  Not for us to ask why.
Answer: That depends on what constitutes "high" speed, whether you need high acceleration or just high final velocity, and where you intend to move it.
Most viable options are going to involve some sort of gravity tractor. Maximum acceleration will thus be limited by the gravitational force between the planet and the tractor, and thus by the mass of the tractor. Moving faster will thus require a heavier tractor, which will require more power to move the tractor in addition to the planet it is towing.
Your best bet is probably to build a high-mass annular tractor in orbit around the planet. That'll let you make the tractor comparable in mass to the planet itself, or even more massive, while minimizing the impact of the tractor's tides on the planet's surface. It's not as ideal for that purpose as a full shell... but a full shell wouldn't be able to tractor the planet at all, so an annulus is probably the best compromise. Then, just blast the annulus with laser light from your Nicoll-Dyson sphere, or your stellar coronal gas lasers, or whatever megamachinery you are using to channel the full power output of a star, and make sure it's angled to reflect said light in the correct direction for the thrust vector you want, while being careful not to let any of the laser light shine on the planet itself.
A safer option with a lower mass requirement, but also a lower maximum acceleration, is to use a mass stream. You build a few trillion asteroid-or-smaller-sized drones, equip them with light sails, and set them on slingshot trajectories around the planet in a continuous stream, relying either on regular solar sailing or active laser guidance to reset each drone for the next pass after it has passed the planet and transferred its share of momentum.
Comment: Nitpick: velocity is a vector quantity, speed is the corresponding scalar quantity. (Technically, speed is the absolute value of velocity.)

how could I move an earth sized planet?


Does substituting electrons with muons change the atomic shell configuration?

Question: Suppose we take an example of $\text{Be}^{2+}$ and we add two muons to it. Will they go into L shell or there will be two K shells - one each for muons and electrons?
If so, the system should have double noble gas ($\text{He}$) configuration?
Answer: Muons, due to their higher mass, have a much smaller Bohr radius in an atom than electrons do. Muons have two spin states, just like electrons, so two muons can occupy the same orbital.
A Be muonic atom with two muons will have a core with a helium-like structure, with two muons surrounding the nucleus. This will be much smaller than a helium atom, though.
Around this small core, you'll have two electrons, also in a helium-like structure. To an electron, the core is not much bigger than a helium nucleus and has the same charge.
Thus, the result will be like a heavy helium atom.
Comment: However, just dropping muons onto a $\text{Be}^{2+}$ ion will probably not result in that ground state (my *guess* would be that it is much more likely for at least one of the electrons to be ejected from). At least the resulting thing will be in an excited state, and then the next question is which lifetime is longer: the one of the excited electron state, or of the bound muon.
Answer: A nucleus with both bound muons and bound electrons will have separate shell structures for the distinguishable leptons. A useful comparison is the nuclear shell model, in which nucleons are arranged into shells according to their total angular momentum, but there are separate shell structures for the distinguishable neutrons versus protons.
The spectroscopy of a $
\rm Be^{4+} + 2\mu^- + 2e^-
$ system would be quite difficult to actually study.  First there is the problem that getting two muons to capture on the same nucleus, on the microsecond timescale before the muons decay, would require an extremely large flux of cold muons.  Second, it's probable that the x-rays released when the muon captures on the ion would be energetic enough to liberate the remaining electrons. If I were going to dig around in the literature for examples of the interaction between bound muons and bound electrons, I would expect to find data on muon capture by heavier targets.
Answer: Here is a hand wavy explanation. Electrons are very light. They must be treated quantum mechanically, while the nucleus can be treated classically.
The nucleus is treated as a point source of charge that generates an electric field. The potential energy of the electrons depends on their position in the field.
For electrons, the uncertainty principal plays a bigger role. If you confine an electron to a small orbital, the uncertainty of position is small. Therefore the uncertainty of momentum is big and the electron probably won't stay near the nucleus very long. These two competing uncertainties determine the size of the orbitals.
A muon has a mass between that of an electron and nucleus. If confined to the same size orbital as an electron, the uncertainty of momentum would be the same. But the velocity would be smaller. It would take a smaller orbital to balance the uncertainty of momentum.
Comment: So will there be two 1s shell or it will modify in some type of spectroscopic arrangements having 4 level
Answer: The K,L,M...shells in atoms  are a short hand way of describing the quantum mechanical complexity of the solutions for an atom.  The K shell for electrons comes from solving the bound state for particles with the mass of the electrons. If instead of electrons you have particles with the mass of muons ( mind you the muons will decay very fast and get out of the bound state) it will be different orbitals in dimensions.
One must not confuse orbitals of the solutions for muons or for electrons with the shells  which count by the closest to the nucleus K, next L..... The displacement of electrons  will happen to the outer orbitals and only x-rays and harder radiation can hit out an electron from a K shell (the closest orbital to the nucleus) because they are very tightly bound.
You cannot just add two muons to an atom without changing the potentials that calculate the orbitals, so it
is a no go problem you are discussing.
To the title question:

Do muons have different atomic shells than electrons?

The answer is yes, but this can happen on the same atom with the muons on their own orbital to the nucleus.   . As the other answers explain because of its mass it will be practically in the nucleus( before decaying), and its shell  might be  be named as a K shell, but in a strict shell vocabulary the electrons will be in an L shell, as the next occupied orbital.
Comment: Assuming purely hydrogen-like solutions, the muons and electrons have different orbitals. Experimentally, the muon (captured in excited states for various reasons) rapidly relaxes down to the lowest muon level, which is not an electron level. Two muons in the lowest energy state do not preclude there being two electrons in an $s$ electron state.
Comment: Ok but the muons are about 200x bigger, so their radius will be 200x closer to the nucleus. Thus, from the view of the electron cloud, the muons will be essentially part of te nucleus. Thus, I think, we will have our K,L,M shells for the muons working independently for the electrons, and the chemical properties of that muonic beryllium atom will be very similar to helium (simply because the electron cloud will see essentially a 2+ charged "nucleus").
Comment: Sad that munos decay so quickly, the world of this muonic chemistry would be so awesome.
Comment: @j  Yes, but have you read what the KL... means, K is the innermost orbital
Comment: @peterh Not only that, but what about muonics (the muon equivalent of electronics)?
Comment: @Michael 200 times more mass means 1/200 of atomic radius (in the case of fully muonic atoms). Things are very similar to the ordinary world, except that all material density is 8million times higher. Suddenly I am not sure, how would it affect resistance, phase shifting points, but the 8000 tons / liter of muonic water is likely not what we could just drink in a cup.
Answer: Atomic shells arise from the Pauli exclusion principle which states that multiple identical fermions may not inhabit the same quantum state. Since muons are not identical to electrons, they will occupy states independently of the electron population. As other answers have already stated, the larger mass of muons will lead to their orbitals being much smaller than electrons.
As further example, consider a hypothetical fermion identical to the electron in every way except possessing a lepton number of 2. Adding two of these particles to Be$^{2+}$ will result in them both occupying $s$ orbitals identical to the inner electron orbitals.


Print Preview in Pdf for SSRS reports

Question: How can we show the SSRS 2005 report in the pdf format when clicked on the link for print preview?
Answer: Two ways come to mind. One is achieving what you ask for, the other one is better.
To achieve what you ask for, you need to derive from the ReportViewer class and handle the event raised for "Print Preview" before the Microsoft code does. In the handler, you would render the report as PDF and present the resulting stream to the client. If we are talking about the ReportViewer web control, there may be some tweaking of auto-generated client-side JavaScript code involved. If we're talking about the ReportViewer WinForms control, you might also look into messing with the control's toolbar buttons and event handlers.
The better way is to have a separate link or button to invoke the PDF rendering. If your not a 100% satisfied with the ReportViewer's toolbar, you can always hide it and show your own.

Print Preview in Pdf for SSRS reports


Russian Horror/Fantasy Film with magical constructs as farm labourers

Question: A film, I'm 95% sure was Russian. I watched it within the last two years and I got the impression it was not very old, say post-2015.
Filmed in colour.
The scene I remember was a raggedy creature that was returning to a peasant farm across the farmyard. It was a collection of sticks, bones, and tools and looked like a spoked wheel without a rim, but with an animal skull for a head. About 1m diameter, and moved by rolling along on the spokes.
It was ill, or broken, and entered the farmhouse, where the family were very blasé about the whole thing - because they created, and animated, these creatures using some kind of folk-magic.
The shot of it crossing the yard was very creepy.
Anybody recognise the film (or possibly TV series)?
I thought maybe it was "Gogol", but a google search doesn't throw up a mention of the creature, and I don't want to watch the whole series again.
Comment: What period of time was filmed in the movie? Our days or some past time?
Comment: Past - feudal type level.
Comment: Something like Viy 3d https://www.youtube.com/watch?v=CPcPtizGymc ?
Comment: Intriguing. I wonder if it has something to do with communism?
Comment: Yes. Similar setting to Viy/Gogol. But I don't think it's that particular film/series.
Answer: This is the 2017 Estonian movie titled NOVEMBER. The farm equipment "creatures" are magically assembled and called kratts. Trailer
Comment: Nice find! Now I need to find myself a copy...
Comment: They look weird https://europasf.eu/wp-content/uploads/2018/06/November_Andrus.jpg
Comment: Great! That's it! Thanks.


Company seats registration flow - looking for alternatives/opinions

Question: I'm trying to verify whether the company seats registration flow I built makes sense or not and I'd like to hear about other ways/options/flow.
As a part of my SaaS product, I want companies to be able to purchase one of three packages. Each package provides a different number of seats, as shown below:

Plan A: 5 - 10 members
Plan B: 11 - 50 members
Plan C: 51 - 100 members

The current sign up/registration flow is as follows:

Company's representative (e.g. head of HR) selects a package which reflects the amount of seats needed for the company
The company's representative provides details: name, title, phone and email address which must be with the organization's email suffix (e.g. @mynicecar.com)
Payment form: the company's representative completes the payment
Once the payment is confirmed, each user who signs up with his organizational email address (e.g. firstname.lastname@example.com) will  automatically get permission to the product with no need for pay as it uses a seat from the seats pool

Any other flows you can come up with? Maybe implementing a coupon/code based seat management (each time a code is used, it's being taken from the pool) instead of tying it to the organization's email suffix, etc...
Thanks.
Answer: One alternative to this what I can think of is like what Netflix do,
This will reduce burden related to registrations at your end.
One representative(parent) purchases the pack and is allowed to create other(child) profiles.
Flow would be like :

Company's representative (e.g. Head of HR) selects a package.
After the payment is made you allocate them a parent account. Now parent account can add no. of child accounts as per the package.
To add child accounts, the parent account will have to do is add basic details like
Name, email, phone, title etc.

Benefits

Less burden at your end.
Parent account will have more control on managing other accounts and can also make edits if required.
Answer: Look at how atlassian cloud subscription is made, it has a checkbox between your solution and the previos answer ( https://ux.stackexchange.com/a/121053/16685 )
If the company runs over its limit it sends a warning email to the admin account holder that from next month they will pay more. The customer service can help them out if they just accidentally added a seat or forgot to cancel someone who doesn't need it anymore :)
It has the benefit that it conveniently rises prices as their demand grows instead of blocking them - trust me, their accounting will send a heads-up anyway if the bill was more than the prev one :)
Answer: My view is that what this flow is missing is: how end user (say HR head- if it's a small organization or someone in HR team or someone else altogether if it is an MNC with lots of users) will want to use such an account.
I feel that parent accounts are better in such case as this decouples process that your organization has with what the customer organization may be following and people who may be authorized to control the seats.
Also, this removes the burden of trying to customize the flows for every new large customer that you may get...
One usability issue with upfront seat nomination is: if someone opted for 51-100 package entering emails of 100 people can be an amazingly painful task...
So go for
1. 'Lazy Seat Allocation- at a time of end customer's choice and comfort'
2. Upfront and immediate subscription without the need to identify everyone in the list by company emails
3. You will need to implement a dashboard in this case for the same so that people can use the seats in a few days etc.
(FYI: Adobe has similar seat allocation for Creative Cloud but its rather formal UI- little too formal)
Answer: Step 1 assumes that the representative knows the number of seats they need.
If they don't know, then they're likely to either quit the process in order to get a definitive count (and possibly never come back), or make a guess then try to figure out how to change the order when they're wrong.
So please consider a flow that provides an easy way for your customers to update their orders. This will, of course, require you to both add to and delete seats and to add charges and provide refunds.
Answer: The Netflix flow with registration form (including social login button) should be optimal https://www.useronboard.com/how-netflix-onboards-new-users/
In first step account owner can just click social login button and on second screen select package and pay.
Allowing company users to join if they are in domain is very convenient. Good that you have it.
Its used by Slack https://www.useronboard.com/how-slack-onboards-new-users/?slide=40
We use it for all our internal tools, like https://selleo.com/portfolio/meritmoney
BTW You can also check out some tips on How to Optimize Registration Form for Higher Conversion here
https://selleo.com/blog/how-to-optimize-registration-form-conversion-rate


Troubleshooting a Java Web Start application and accessing log files

Question: I am launching a Java Web Start application which shuts down abruptly. Does anybody know how to access the logs for Java Web Start. Are there any known reasons for it to shut down abruptly?
Answer: You should enable detailed trace logging as explained on this page. The same page gives you the location of the log files;

The trace file is saved into the log directory in the "Java Deployment Home" folder. That folder's location is specific to your operating system:

Windows XP: %HOME%\Application Data\Sun\Java\Deployment
Windows 7/Vista: %APPDATA%\..\LocalLow\Sun\Java\Deployment
Linux/Solaris: %HOME%/.java/deployment
Comment: for example mine is under: C:\Users\mostafa.sho\AppData\LocalLow\Sun\Java\Deployment\log and mostafa.sho is my username in windows.
Answer: On my Windows 10 computer, the log file is found at:
C:\Users\<MY USER>\AppData\LocalLow\Sun\Java\Deployment\log

Comment: Is there any guidance for OP regarding abrupt shutdowns you could offer?
Answer: I am not sure why it would fail like that but you should be able to see where the logs by going to File/Preferences/Advanced.
You should also be  able to enable java console from the same location.
Answer: Having -Xmx with a value too large was the cause of the issue for me.
Reducing the heap size resolved it.
Answer: Having the -XX:MaxPermSize defined in your JNLP file can cause this issue on Linux and Mac machines. Removing that argument from the JNLP seems to fix the issue.
Check this comment.
Comment: Also, using -Xmx with a value too large will make java fail to start.
Comment: @SarelBotha - That shouldn't ideally happen given that the system has sufficient free memory to accommodate the max-heap size. The issue that you faced can be because of different reasons though. For e.g. on Linux, JVM fails to start if the OS's or the shell's virtual memory limit is limited (check: http://looselytyped.blogspot.in/2014/08/java-jvm-initialization-errors-on-linux.html)
Answer: Try clearing the Java temporary internet files folder which is found in the Java Control Panel / General tab.  After doing this I was able to successfully relaunch my application through invoking the jnlp.


MySQL involving crazy multiple self-joins

Question: As part of the process of replacing some old code that used an incredibly slow nested select, I've ended up with a query that looks like this:
SELECT r3.r_id AS r3_id, r2.r_id AS r2_id, r1.r_id AS r1_id
FROM
table_r r3
LEFT JOIN (
  table_r r2
  INNER JOIN (
    table_r r1
    INNER JOIN table_d d ON r1.r_id = d.r_id
  ) ON r2.r_id = r1.parent_id
) ON r3.r_id = r2.r_id
WHERE d.d_id = 3

So in the innermost join, I'm looking for the records in table_r (copy r1) which have a relationship with a subset of records from table_d.
In the next join out, I'm looking for records in a second copy of table_r (r2) whose main index (r_id) matches the parent index (parent_id) of the records from the previous join.
Then I'm trying to do a LEFT JOIN with a third copy of table_r (r3), simply matching r_id with the r_id of the previous join. The idea of this outermost join is to get ALL of the records from table_r, but to then do the equivalent of a NOT IN select by using a further condition (not yet in my query) to determine which records in r3 have NULLs for r2_id.
The problem is that the LEFT JOIN is not giving me the whole of table_r. It's giving me the same subset of records that I get without the final join - in other words, the same thing as an INNER JOIN. So whereas I'm expecting 1208 records, I get 508.
I know I must be doing something screwy here...
Comment: Further attempt at clarity:
What I want is:

(whole of table_r) MINUS (records in table_r which are child records of other records in table_r which are linked to a set of records in table_d)
Answer: What happens, if you try this?
SELECT r3.r_id AS r3_id, r2.r_id AS r2_id, r1.r_id AS r1_id
FROM
table_r r3
LEFT JOIN (
  table_r r2
 INNER JOIN (
   table_r r1
   INNER JOIN table_d d ON r1.r_id = d.r_id AND d.d_id = 3
 ) ON r2.r_id = r1.parent_id
) ON r3.r_id = r2.r_id

What I did was moved the d.d_id = 3 from where clause to the INNER JOINs ON qualifiers.


Is the Stack Exchange Meta site advertised?

Question: I've noticed that there are a low number of users on Stack Exchange Meta, compared to other SE sites, such as Stack Overflow. Do the Stack Exchange Team ever advertise this site?
Comment: Does this answer your question? [What criteria are used to select the links that appear in the community bulletin sidebar block?](https://meta.stackexchange.com/questions/130621/what-criteria-are-used-to-select-the-links-that-appear-in-the-community-bulletin)
Comment: It's advertised enough that people come here and post their (off-topic) question intended for other sites here.
Answer: New features are often written about here, e.g. the follow feature. When a question here is marked as featured it appears on all sites in the Featured on Meta area. Every site displays up to two of these questions together with its own site specific featured questions. You can find that on the top right of this page.
This is where you see this site's featured questions appear on Stack Overflow for instance:

We need to be careful with too much advertising though as this site is for questions about

Stack Exchange
Promotions & Advertising
Support, feature requests, or bug reports for the core Stack Exchange engine that powers all Stack Exchange websites

We already get a lot of questions from people who are lost and think this is a good place to ask any question under the sun.
Answer: Yes; featured Meta posts are shown in the sidebar widget on most Q&A pages on all other sites in the network:

Meta is also featured now and then as 'Today's Featured Site' on the Stack Exchange homepage:
Comment: I suspect the last part is a bug, or at least an overlook. (i.e. not intended, since for example Meta is excluded from HNQ).


Converting Avenue scripts/extensions from ArcView 3.x to ArcPy for ArcGIS Desktop?

Question: As a side project, I'm looking into the effort required to (semi-) automate conversion from Avenue to Python, instead of keeping ArcView 3.x around to run them.
Answer: I have over 1000 scripts and extensions for ArcView ;-).  Some of them do unique things, such as certain forms of random sampling and data conversion either unavailable in most other GISes or available at considerable cost (e.g, need an ArcInfo license).  It's easier to keep using them with ArcView 3 than porting them to a new environment (which will go unnamed) that is constantly evolving and constantly requiring rework of old code because the vendor has no respect for backwards compatibility or their users' investment.  Once burned, twice shy.
But the main reason I keep a machine with AV 3.x running is that it is much easier and faster to do certain things with it than with any subsequent software released by ESRI, such as joining and relating tables, joining tables to themselves, and easy but sophisticated calculations of shapes.  Last week I turned to AV 3.x on a four year old PC to do some joins and mapping involving layers having only 30,000 features (but 200+ MB on disk) because ArcGIS 10 could not accomplish these tasks in any reasonable time on a high-end Xeon workstation.
If your code uses high-level Avenue objects with any frequency, automatic conversion to anything else is impractical if not hopeless.  If it uses entirely low-level objects--numbers, strings, dates, booleans--then it almost surely was ported from some other place to begin with!
Comment: Agree with this as 'easier & faster' for table joins, even the startup time for AV32 compared with ArcGIS is much faster.
Comment: An interesting example of a recent use of AV 3 and Avenue appears in the [Producing Building Shadows thread](http://gis.stackexchange.com/a/17159).  Contrast this with the attempts to [do the same thing in ArcGIS](http://gis.stackexchange.com/questions/19935).  Whether your metric is human time (evidenced in an order of magnitude difference in lines of code) or computer time (guess which program is *still* faster?), AV 3.x turned out to be an effective platform for this problem.
Answer: XTools and ArcView (3.2a) has fast table joins...
http://arcscripts.esri.com/scripts.asp?pg=1&sb=8&ob=desc&eDate=&n=&top=&eLang=2&eProd=&perPage=40&eQuery=&Submit2=search
though is available for ArcGIS 10
http://www.xtoolspro.com/
but don't miss it as still use it.
Multiple Layouts still beats 'Data Driven Pages'
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_s_new_for_page_layouts_and_data_frames/00qp0000001m000000/
Answer: AV3 because you can edit (and fix) the project files in any decent text editor!
I also used AV3 regularly up until about a year ago to quickly view and browse data as it's much faster than Arcmap when you just want to have quick look at things. I stopped using it daily when we moved the last of our primary datasets to file geodatabase.
I'm not sorry to be using python instead of avenue, though it would be nice to have more gui bindings available to it (as avenue has).
Answer: One thing I dont miss is the old "Segmentation Violation" errors...
I still have a copy of v3.2 handy.
I remember that v3.2 seemed to have less memory leaks, and that it would process larger datasets than v9.1 ---> v9.3.1 (not recently been using v10 for Geoprocessing).
I did notice that these leaks were "improved" over the versions of ArcGIS Desktop, but 3.2 still never bottomed out, even if the job took over 2 days.
Answer: In 2003, after much consideration of conversion techniques, we spent 4 years translating by hand 700 Avenue scripts and 40 dialogs in an extension to a VB code extension for ArcGIS8.3.  Soon after, in less than a year, we recoded the logical concepts of the extension into Python scripts for geoprocessing under ArcGIS9+.  I have also written a translator in Python to convert Avenue classes to Python classes. Now there are thousands of stubbed methods to code. Go straight to ArcGIS tools! It's faster!
Comment: After having your software vendor change the technology and force you to abandon or port all your work--TWICE!--you're still willing to program in their system?  How long do you think ArcGIS tools are going to last until you have to do another port?  Does this make sense?
Comment: Out of curiosity: what product/process (vague answer is fine) did all this Avenue code support?


URL redirects of webpage

Question: I have a contact us page of my website at www.mywebsite.com/contact-us. when I type "www.mywebsite.com/contact" it redirects to this URL "www.mywebsite.com/contact-us".
Why this is happening is not clear to me.
Answer: Basically, it's a canonical redirection.
In WordPress, there is a function named redirect_canonical, or there's a canonical redirect feature which:

Provides an SEO enhancement which prevents penalty for duplicate content by redirecting all incoming links to one or the other.
For example, if one visits a single post page where the default or "non-pretty" URL looks like https://example.com/?p=1 (1 is the post ID) and if "pretty links/URLs" (i.e. permalinks) are enabled on the site, then WordPress would redirect the request (or your browser) to the proper post permalink which may look like https://example.com/hello-world/ (hello-world is the post slug).
And that is to prevent search engines from treating the same post as two posts having a duplicate content, or that without the redirection, search engines would see two different URLs with the exact same content (despite the page source/HTML are different), hence a duplicate content penalty would incur for the site.
Other examples: ( Note: I intentionally omitted the protocol part (e.g. https://) )
| Type               | Sample Default URL            | Sample Permalink (or "Pretty URL")  |
|--------------------|-------------------------------|-------------------------------------|
| Single Pages       | example.com/?page_id=2        | example.com/sample-page/            |
| Category archives  | example.com/?cat=1            | example.com/category/uncategorized/ |
| Tag archives       | example.com/?tag=my-tag       | example.com/tag/my-tag/             |
| Post type archives | example.com/?post_type=my_cpt | example.com/my_cpt/                 |

Attempts to find the correct link when a user (or you) enters a URL that does not exist based on exact WordPress query.
I.e. If a 404 ("not found") error was encountered, WordPress would try to resolve it by "guessing" what should be presented to the user, before eventually showing a 404 error page.

And in your case, that second point is likely what's happening — you don't have a page with the slug contact, so WordPress tries to find one which contains contact in the slug, and because you do have one (contact-us), that explains why www.mywebsite.com/contact redirects to the www.mywebsite.com/contact-us page.
And actually, that guessing part is quite cool.. in that if you're lazy or don't remember the exact slug, you could just type part of it. :) But that's just my opinion.
Hope this (revised) answer helps you!

URL redirects of webpage