How long can a URL query argument be?

Question:
http://site.com/?status=4387hg843hg89473gh87934h89g734hg8973hg9873hg8973h4987g3h489g7h89h849g5

What's the maximum size of status that PHP can read?
I want to pass error / success messages upon login or signup, and the only way I can do this is by redirecting to a URL and append the messages as arguments to that URL.
like:
<?php

 $errors = array(
   1 => 'Password must have between 6 and 20 characters',
   2 => 'User name must contain only A-Z, a-z and 0-9 characters',
   3 => 'Captcha code does not match',
 );

 $errors =  base64_encode(serialize($errors));

 header("Location: http://www.example.com/?status={$errors}");
 die();

(if you know different ways of doing this please tell me ;)
Answer: According to RFC2616 Section 3.2.1:

The HTTP protocol does not place any a
  priori limit on the length of a URI.
  Servers MUST be able to handle the URI
  of any resource they serve, and SHOULD
  be able to handle URIs of unbounded
  length if they provide GET-based forms
  that could generate such URIs. A
  server SHOULD return 414 (Request-URI
  Too Long) status if a URI is longer
  than the server can handle (see
  section 10.4.15).

With that said, many browsers don't allow URLs of infinite length. For instance, Internet Explorer has a limit of 2,083 characters.
In your case, I would suggest using a session variable to store the error and once it's been displayed remove it.
The file that produces the errors:
<?php

 $errors = array(
   1 => 'Password must have between 6 and 20 characters',
   2 => 'User name must contain only A-Z, a-z and 0-9 characters',
   3 => 'Captcha code does not match',
 );

 session_start();
 $_SESSION['errors'] = $errors;

 header("Location: http://www.example.com/");
 die();

The other page:
<?php

 session_start();

 if ( ! empty($_SESSION['errors']) )
 {
   // Do something with the errors.

   // Remove the errors from the session so they don't get displayed again later.
   unset($_SESSION['errors']);
 }

Comment: I believe when you said infinite, you meant finite.
Comment: @Michael Mior - Actually, I rephrased that earlier and I meant it to read "don't allow". Thanks for catching that. I'll update the answer.
Answer: This is more dependent on the user's browser than anything else. For example, Internet Explorer does not support URLs that have more than 2083 characters. PHP should be fine handling up to (and well past) that limit. Avoiding base64_encode (which is unnecessary) will help. Use urlencode instead (assuming you're not passing any binary data).
I'm sure people would love to help with different ways of doing this, but you'd have to provide more code.
Comment: I remember back in the day IE4 (or was it IE5 or IE6? or Netscape navigator 3? I'm getting old...) would only support 256 characters in the query string. Good times indeed.
Comment: Hmm, sounds familiar. Can't say I recall which browser.
Answer: My suggestion is to use HTTP POST instead of HTTP GET
Comment: I thought of that, but how do I send `$_POST` ?
Comment: If it's a form, add `method="post"` to the `` tag.

How long can a URL query argument be?


Reverse Friedel-Crafts mechanism

Question:
I need to find a mechanism for the above reaction but I cannot make much progress. I do have something in mind but it doesn't seem entirely plausible: First the tert-butyl group leaves (this seems wrong but tert-butyl cation is stable and thus a reasonable leaving group maybe? Also the negatively charged ring that it would leave behind would be stabilised by the EWG Bromines). The cation is then attacked by Cl and the ring is attacked by a proton (one product formed). Then a Friedel-Craft alkylation to make the other product (hence the excess of benzene to promote only mono-substitution). I doubt that is right, purely because of the first step. Can you help?
Comment: You are close. Think about reordering the steps you've described to avoid any negatively charged intermediates. Under acidic conditions only positively charged and neutral species will be present.
Comment: The Friedel-Crafts alkylation is reversible (see [here](http://en.wikipedia.org/wiki/Friedel%E2%80%93Crafts_reaction) under "Friedel–Crafts dealkylation"). So first protonate the ring and then dealkylate
Comment: This is really a reverse Friedel-Crafts followed by a normal Friedel-Crafts. So whatever the last step of a FC alkylation is will be the first step of this reaction.
Comment: I am sorry could you tell me the first step please. I am really stuck. Why only positive charge in acidic conditions?
Answer: This reaction proceeds through a reverse Friedel-Crafts alkylation followed by a forward Friedel-Crafts alkylation. The last step of Friedel-Crafts alkylation is deprotonation, which means that the first step of the reverse process will be protonation. Next, the carbon-carbon bond breaks, with 1,2,4,5,-tetrabromobenzene acting as a leaving group. The resulting t-butyl cation can undergo the typical electrophilic aromatic substitution steps, attack by an aromatic ring (benzene here) and deprotonation to regain aromaticity.
One might wonder why aluminum chloride is present in the reaction mixture, since we can write a reasonable mechanism that excludes it. Likely it is present in case chloride (from HCl) traps it to form t-butyl chloride. Aluminum chloride will catalyze the reformation of t-butyl cation.
Comment: Having come back to this question again, I realized that the second species that you have drawn in your mechanism seems massively unstable (cation on carbon with bromine substituent). I can't see another way of doing this so I don't doubt the mechanism. However, why is this possible? Also, is Acylation reversible too?
Comment: @RobChem Inductively bromine is electron withdrawing (destabilizing cation) but it's also electron donating by resonance (stabilizing cation), so I think it's a reasonable intermediate. Theoretically, FC acylation is reversible too. I'm not aware of any examples though.
Comment: I guess the aluminium chloride is necessary so the chloride anion has a place to go.

Reverse Friedel-Crafts mechanism


Drops vs. sugar

Question: I used carbonation drops in the bottles on my first batch and worked well. On the next batch, I measured dry sugar into each bottle. Lot of foaming. I haven't tasted it yet. What can I expect? Also, how do I mix sugar into the whole batch without stirring up the sediment on the bottom?
Answer: Carbonation drops are mostly sugar (and glucose), so as long as the amount is the same it should carbonate the same.
Beer out of the fermenter typically has about 1 volume of carbon dioxide dissolved in it, left over from fermentation.  When you added the sugar-crystals, the thousands of nucleation points helped the gas be released quickly.
So there shouldn't be too much of an issue here.  The sugar falling in may have pulled a little oxygen into the beverage, but in-bottle-fermentation should clean up most (if not all) of this.   In future, add the sugar crystals before the beer (I assume beer, you don't say) in the bottle.
To "bulk prime" a full batch, a lot of people decant the beer into another vessel, typically something like a "bottling bucket", leaving the yeast behind.  Enough sugar/honey/DME is dissolved into this for the whole batch at once.
Answer: I have used both.
The drops make it easy and simple but can get expensive. I used them for a hard cider so I knew exactly how much each bottle was getting so to not over-carbonate. It helped make sure each bottle was evenly primed.
For normal ale and lager I prefer to mix 5oz of Priming Sugar (corn dextrose) with 1 cup water and add that mixture to my bottling bucket. Mix it together with your wort then bottle.
Both work. It really comes down to what works best for your budget and bottling process. Try both for yourself and compare the results.

Drops vs. sugar


Webcams without external power

Question: With a resolution no higher than 640x480, what is the frame rate I should expect for streaming? Are there any cameras in the 10-50 dollar range that will get me 20-25 FPS, possibly with some manual driver installation and so on?
Comment: The camera is still _at least_ a month away. I suspect it'll be more than 3, less than 6.
Comment: RaspberryPi are going to be bring out a camera that they're developing themselves. If you go the RPi website, you'll see. Its still a month from release though unfortunately. Looks promising though. http://www.raspberrypi.org/archives/3224
Answer: The cheap (raw pixel) cameras will not give you a FPS even near the 20. They will only give around 2 to 9 FPS. This is mainly because the RPi will need to encode the frames before sending them, and that is a lot of data to encode.
With JPEG (those are mostly HD cams) encoded cameras you'll get a little better FPS rate (around 15 up to 20 FPS), because the encoding is done in the camera itself, the RPi only needs to send these frames without the need to encode.
Comment: Thank you. Do you happen to know of any compatible HD cameras?
Comment: I myself use at the moment one of the Microsoft HD webcams, I think it is the HD-5000.
Comment: Do you have more details about your results with that camera? I read that some users are having problems with "picture breaking up at the bottom" - http://elinux.org/RPi_VerifiedPeripherals - do you experience the same? Also, do you need a USB hub to get 30 FPS?
Comment: Good quality picture over the network, averages around 15 FPS depending on the load on the RPi. I use mjpg-streamer to put the data from the cam on the network, it does not cause a very high load on the RPi.
Comment: And without a USB hub, I presume?
Comment: Direct or through Hub, both work fine. But make sure that whatever cam you buy, it stays within the RPi limits of the USB output (which is a difficult, because being USB 2.0, nobody specifies the actual dissipation anymore).
Comment: What kind of software are you using?

Webcams without external power


When I link the mapping node to the gradient node my sphere turns black. How do I fix this?

Question:

Before and after linking the nodes. I am trying to create a partially transparent cornea for context! The entire sphere keeps turning black when I link the mapping node to the gradient texture node.
Comment: hello could you please share your file? https://pasteall.org/blend/
Answer: If a Texture Coordinate input is not present, the space in which the Gradient > Linear is measured defaults to Generated.
Generated space measures 0-1 along the sides of an object's bounding box, aligned to the object's own X,Y and Z axes. In that space, the minimum X of your sphere's surface maps to 0, and its maximum X maps to 1.
An un-rotated Linear Gradient varies along X of the given space. The output of that node in Generated space is 0 at the left of your sphere, and 1 at the right. The Color Ramp expects a 0-1 input. In this case, that's what it's getting, and mapping that range as determined by the sliders.
When you connected the Texture Coordinate node, you chose Object space for the gradient. That space is measured in Blender Units, from the object's origin, along its axes. The sphere's origin is still at its center, and it's 0.172 units in diameter.
In Object space, the sphere's minimum X is -0.086 ,and its maximum X is +0.086. That's the range the Color Ramp is getting as input. All the negative values are off the left of the ramp. The positive values will be mapped to whatever is between 0 and 0.086 in the ramp. In this case, Black.
TLDR;
To get the same results as before, use the Generated output of the Texture Coordinate node
Comment: Hi Robin - thank you for this! It worked... until I changed the the Z rotation coordinates. Do you know why this is?

Sorry if you covered this previously, I'm relatively new to Blender!
Comment: You would expect the Generated texture-space  to stick to the object if it's rotated in Object Mode. The object's bounding box travels with it. What effect are you looking for? Lit side of a planet, or something like that?
Comment: @Emma  Ahh! You mean in the mapping node? Generated's origin is at min (XYZ) so that's the rotation pivot.  You may want a rotation about the middle of the sphere. Use a Vector Rotate node instead of a Mapping node, Axis Angle, and set the origin to (0.5,0.5,0.5) .
Comment: It worked Robin! Thank you so much :D
Comment: @EmmaCulhane For the use of the _Texture Coordinate_ node and the differences between _Generated_ and _Object_ output and possible conversions, there is a YT channel by some guy (or actually two channels), he does a lot of procedural stuff with _Texture Coordinates_. His tutorials are a bit... unconventional, but I've learned a lot about normal vector manipulation etc. from that. The channels are called "Default Cube" and "CG Matter". It comes in quite handy sometimes if you know how to use the different types of coordinates and when it's better to use _Generated_, _Object_ or _UV_  etc.
Answer: Since your using the object coordinates, I think it might be caused by not applying the transformation.
I presume you changed the scale of the object somewhere.
so the solution is to apply the transformation :D
Select the sphere and hit Ctrl+A and select All transformations.


Rendering Infinite 2D chunks?

Question: I'm working on a top-down 2D RTS with C++ and SDL2, and have implemented the biome/terrain generation, tile rendering and a rudimentary camera system. I already have the skeleton code in place that can create 64x64 Chunks but what I've been struggling to realize is how to render them on an infinite grid plane, where they will dynamically generate/load and deactivate/unload based on the cameras scrolling position. What design patterns and SDL functions should I use to achieve "infinite terrain rendering?"
Comment: How many chunks do you need to have on the screen or processed offscreen at the same time?
Comment: Judging by my experimentation, we need to have up to 16 chunks drawn at a time (1-4 Onscreen, 8-12 Offscreen)
Answer: I'm not going to go into much detail, but conceptually, in broad strokes... what we're talking about here is display, not game logic, and not the vagaries of SDL. So I won't go into chunk generation, but rather, chunk & chunk-slot management (assumes you have chunk data already).
Forget 2D. Think 1D, a straight line running left to right.
Imagine you have the data of 4 elements (chunks) A, B, C, D. Imagine that the infinite world this 1D line represents consists of a never-ending sequence of ...ABCDABCDABCD... in both directions along the line. And imagine that you can always see for 2 chunks in either direction (to each side of you, left & right). 2+2 = 4 slots.
So let's say you're sitting between AB & CD. Great, you have two chunk slots to either side of you. Right now they're filled with AB & CD.
But what if you move right? Well then you need to take A and put it next to D, don't you? If you move more right, then you need to shift B over next to A as well... and then C... and then D... and then A again... ad infinitum.
The opposite applies if you're moving left... ad infinitum.
I like to think of it as the "area of interest slots" problem. You have 2 slots to one side, and 2 slots to another. What is in each of those slots (A, B, C, or D) varies as the player moves. But they should always be able to see for 2 slots in each direction in my example; your viewing distance may vary.
Then step it up into 2 dimensions. I would use the first 16 letters of the alphabet to create a 4x4 space where you always remain in the middle, but the chunk slots shift around you.
Then to dispay your 2D world, rather than just flipping a finite number of chunks data (ABCD) between slots as above, you'll instead use generated data to put into the slots, and move those slots in x and y, rather than in just one dimension.

Rendering Infinite 2D chunks?


Magma Cube Spawners in the Overworld?

Question: If I get a magma cube spawner and I place it in the overworld will it spawn magma cubes? This is on a server with the Nether disabled.
Answer: Yes, however the only way to get magma cube spawners is through creative mode, or other forms of cheating. But there is no restrictions on spawning them in the over world if you did manage to obtain a spawner block
Answer: Yes, a spawner block will spawn Nether mobs in any dimension, including the Overworld. (Assuming the block is correctly set up to spawn that mob, of course.) My kid regularly sets up mob battles in Creative by picking snow golem and Nether mob spawners out of NEI and placing dozens in a crater in the Overworld.

Magma Cube Spawners in the Overworld?


Green tomato soup calls for creme fraiche. I cannot have creme fraiche. If I add heavy creme will it be ok?

Question: I want to make green tomato soup but the recipe I have calls for creme fraiche. I cannot get creme fraiche. Will using heavy cream as a substitute smooth out the sourness of the green tomatoes and still be pleasant tasting? I prefer a little sweet to tart tasting anyway.
Comment: Is the "cannot have" rooted in belief, diet, intolerance, not having any handy, or some other reason?
Comment: Can you wait 12 hours? You can make creme fraiche in that period of time. You could probably cheat and get a decent result in 8 hours.
Comment: possible duplicate of [What should I look for in an alternative to crème fraîche?](http://cooking.stackexchange.com/questions/39859/what-should-i-look-for-in-an-alternative-to-cr%c3%a8me-fra%c3%aeche)
Answer: If you add only heavy creme the final result will be more smooth and a little bit sweeter (even though green tomatoes are very sour to taste). If you have access to a white yogurt (non sweetened) or greek yogurt you can add that to the soup, maybe by adding it gradually and correcting with cream if the taste degenerates.
Comment: I'll try adding the heavy creme in a single bowl of soup and see where it goes also will try sour cream, maybe together both?  There is no way I can use yogurt, it is a no no for me.
Comment: i'm sorry for my mistake. yes, you can try in a small batch. after all, cooking is part following recipes to the single gram and part experiment!
Answer: You can easily make your own craime fraiche with heavy cream and a couple of tablespoons of live culture buttermilk.  Just let it sit in a warm place overnight and it will be ready the next morning.


Is Lightning Basically a Cathode Ray?

Question: I've heard the term cathode ray pretty much every year in school since they introduced chemistry, and I know that it's a stream(?) of electrons. I'm just having troubles relating it to the real world. I think lightning would be a prime example, but I'm not sure; looking for confirmation.
Comment: Except that cathode ray involves vacuum while lightning ionizes the air.
Comment: Nope. The lightning flash is more like a plasma, not a beam of electrons like in a cathode ray
Answer: As you are already aware, cathode rays are electron beams. You take evacuated glass tube, and  add two electrodes on either end. Once you apply a sufficiently high voltage, a stream of electrons flows towards the "cathode"; this is what you call a cathode ray. Inside the tube there exists near perfect vacuum, so there are barely any other gas molecules, ions etc.
Lightning is similar in the sense that you have a large potential difference that leads to electric discharge. The key difference is that this takes place in air, and not in vacuum. Since air is "insulating", it has to be ionised to for the electric discharge to take place. Indeed this is what happens, when the potential difference is sufficiently high. However, what this creates is a plasma, not a stream of electrons.
A plasma is the "fourth" of matter, and is created by ripping apart some electrons from gas molecules resulting in a collection of electrons and ions.

Is Lightning Basically a Cathode Ray?


How is it that a particle's wave function is not a real thing, yet we can still observe it?

Question: In the double slit experiment, scientists could see an interference pattern on the back panel. However, if the wave function is purely a mathematical object, how can it be the case that some physical manifestation of it can be measured and observed?
Comment: Related (but not duplicate): [Why do we observe ripples in Quantum corrals and Scanning Tunneling Microscope (STM), if the wavefunction isn't physically realizable?](https://physics.stackexchange.com/q/635697)
Answer: Plenty of things in physics are mathematical objects/models that we use to describe the world around us and can also use to guide our measurements and observations. For example, when you are walking around there isn't an actual velocity vector that suddenly forms at your location, yet we can use the mathematics of vectors to describe your motion, how the forces acting on you will change that motion, etc. You can't go and pick up an action integral, and yet much of physics relies on the minimization of such integrals.
The wave function is no different. It is a useful model that we can then use to describe and understand the world around us. It doesn't need to be physical (whatever that may mean) in order to describe the physical world; most (all?) of what we use to describe the physical world is not physical at all
Answer: The wave function is merely used to predict the statistical distribution of dots in the pattern you observe; it cannot predict the locations of each individual dot which make up the pattern.
The wave function is a rather complicated thing involving imaginary numbers as well as real ones and is more a model of possibilities than of probabilities. It needs some manipulation (such as squaring) to yield the probability distribution of dots in the pattern. We even say that probability = possibility  squared. The "particle" which hits the screen is equally mathematical - we see only the result of its arrival, never the particle itself.
The statistical distribution of the dots is built up from the "collapse" (measurement) of a multitude of individual wave functions, each modelling a single photon. The probable positions of each dot are governed by the wave function, but the point of measurement on the detector, within the parameters of that distribution, is wholly random.
You have to remember that everything in theoretical physics, from Newton's F=ma to the latest entanglement formulae, is a mathematical model used to predict the outcomes of experiments. The more esoteric those equations become, the more the relation between the variables in those equations and the real world around us remains a matter of utter confusion.
Consequently, some people still cling to notions of real waves and real particles at some given location in space and time, perhaps the one guiding the other. But such "local realism" has been shown by entanglement experiments not to be the case at all. We are all arguing about which of locality, realism and/or temporal causality has to be sacrificed in order to reach a deeper understanding.
Answer: The wave function is not a purely mathematical object because, as you say, it has physical implications. However, the wave function is not observable directly (e.g. it's a complex function). One can also frame quantum mechanics in the Heisenberg language of matrix mechanics, without the need of wave functions, so the wave function by itself is not necessary to describe physical reality, even if it has physical implications (the Born rule for instance that connects probability of measurement with the norm of the wave function).
Answer:
In the double slit experiment, scientists could see an interference pattern on the back panel.

You may find it easier if you see it this way:

Light or broad EM radiation always originates from excited states of subatomic particles and is always emitted quantum by quantum.
these quanta or photons are indivisible from the time of their emission from excited subatomic particles to their absorption
Photons ( of low energy) do not interact with each other and are not subject to destructive interference.

The energy distribution (the fringes) are the result of deflections of the photons by their interaction with edges:

Photons have an oscillating electric and an oscillating magnetic field component
the surface electrons around the slit (or even a single edge) have static electric and magnetic field components and interact with each other (when externally excited, phonons and other excitons propagate through the material)
the interaction of the two previous points causes the quantised deflection of the photons, which results in the fringes

However, if the wave function is purely a mathematical object, how can it be the case that some physical manifestation of it can be measured and observed?

Good point. The deflected particles are distributed in such a way (for the reasons described above) that this can be described as an oscillating distribution. To infer the wave properties of the particles from an oscillating distribution pattern is exactly what Newton disputed with Young.
By the way, the averaged wave height of a water wave at any point is always zero. It's just that these waves oscillate so slowly that we see the oscillating progression. The analogy of water waves to the fringe distribution of particles is based on drawing a snapshot of the water wave. On the left Young's sketch, on the right the animation with today's possibilities.
   |


How can you remove duplicates from bash history?

Question: Since I'm saving history from different sessions this is an issue where erasedups can't help because I'm using the following:
PROMPT_COMMAND="$PROMPT_COMMAND;history -a"

Is there an easy way to delete duplicates in history?
Answer: It is possible to remove duplicated lines which are already in .bash_history by running
nl ~/.bash_history | sort -k 2  -k 1,1nr| uniq -f 1 | sort -n | cut -f 2 > unduped_history

followed by
cp unduped_history ~/.bash_history

I would also recommend to put the following in your ~/.bashrc:
export HISTCONTROL=ignoreboth:erasedups

Comment: Why `ignoreboth`? That activates both `ignoredups` and `ignorespace` and the latter does not seem relevant here. Also, your command will simply empty `.bash_history`, you want `cp unduped_history ~/.bash_history` or `cat unduped_history > ~/.bash_history`.
Comment: I agree that `ignorespace` could be omitted. I missed to type `cp` by accident. I added the the extra option `-k 1,1nr` to the first sort to take the last occurence of a duplicated commands.
Comment: Great, now I can upvote that really cool `nl` trick with a clear conscience :)
Comment: lot's of magic `options`, what do they do? Will this work if timestamps are added?
Answer: I've created a small Python script deduplicate.py for this. If a line is duplicated, the script only keeps the last duplicate. This works nicely when searching the command history with fzf using Ctrl+r since it shows later entries first:
#!/usr/bin/env python

# Deduplicates the lines of a file.
# Doesn't change the file, just writes the result
# to standard out.

import sys

if len(sys.argv) >= 2:
    unique_lines = []

    file_name = sys.argv[1]

    with open(file_name, 'r') as fi:
        for line in reversed(list(fi)):
            if line not in unique_lines:

                # If a command occurs multiple times in the file, we
                # keep the more recent one (the one closer to the end
                # of .bash_history).
                # This is useful when searching .bash_history with FZF
                # using ctrl+r, since per default, FZF reverses the
                # lines in .bash_history and we see more recent
                # commands first.
                unique_lines.insert(0, line)

    for unique_line in unique_lines:
        print(unique_line, end='')

else:
    print('Please provide an input file path', file=sys.stderr)

I call it hourly with this systemd service located at ~/.config/systemd/user/deduplicate_bash_history.service:
[Unit]
Description=Remove duplicate lines from ~/.bash_history.

[Service]
# We use -c to get a login shell for accessing the home directory
ExecStart=/bin/bash -c "~/scripts/deduplicate.py ~/.bash_history > ~/.bash_history_deduplicated && mv --force ~/.bash_history_deduplicated ~/.bash_history"
# We have to create a temporary file, since the following direct method would create a .bash_history containing only the entry of this command:
#/bin/bash -c "~/scripts/deduplicate.py ~/.bash_history > ~/.bash_history"

and this timer at ~/.config/systemd/user/deduplicate_bash_history.timer:
[Unit]
Description=Remove duplicate lines from ~/.bash_history.

[Timer]
OnCalendar=hourly

[Install]
WantedBy=timers.target

I activate the timer with
systemctl --user daemon-reload && systemctl --user enable deduplicate_bash_history.timer

and make sure it's among the services using
systemctl --user list-timers --all

Answer: Many more ways to do this here as well as some other ongoing settings / options:
https://unix.stackexchange.com/questions/48713/how-can-i-remove-duplicates-in-my-bash-history-preserving-order
Also
sort ~/.bash_history | uniq -u
or
in vim text editor
:sort u
If some of the suggestions including the one above don't work immediately. After running the code I do:
history -c

to clear the history first then restore the no duplications version over it:
mv unduped_history ~/.bash_history


These shouldn't have been downvoted

Question: Software Center will not start from icon and https://askubuntu.com/questions/784695/ubuntu-store-wont-launch shouldn't have been downvoted. It this more of the malicious up-down voting?
Comment: The second question is off-topic because it is about a development issue. The other question seems on-topic enough, but people have different criterion.  As long as you vote on the post and not the person, no one is stopping you from using your up/down votes as you like.
Comment: The second question isn't particularly clear to be honest. Disclaimer: I didn't downvote either of them.
Comment: The first one likely got downvoted because, looking at the revision history, it was a mess, a big block of output with no formating or anything. It looks good now but when it was first posted, it did not.
Answer: As for the first link I can explain you why it got a down-vote, you will get the clue to when you look at this posts edit history. At the time I edited it first it was already down-voted, and my guess is because the question was a mess to read, totally without formatting.
Still a legit question, but some people react on first impression and move on leaving only the down-vote because they are disgusted by the format a question is represented. My standpoint is instead of down-voting, we should encourage people to do an edit to improve this question. But maybe I'm still seeing good things where others only see bad.
To your second question I cant say much beside that is not really clear to me what is being asked.
To come back to your own question, no that is not malicious up/down-voting continuing, it is just the day to day craziness we see sadly often enough.
Comment: I have been on here long enough to see that same craziness. :(

These shouldn't have been downvoted


Special kind of commutative semi-local ring

Question: Let $R$ be a commutative semi-local ring (finitely many maximal ideals) such that $R/P$ is finite for every prime ideal $P$ of $R$ ; then  is it true that $R$ is Artinian ring ? From the assumed condition , we get that $R$ has Krull dimension 0 ; so it is enough to ask : Is $R$ a Noetherian ring ?  From the semi-local and $0$ Krull dimension condition , it also follows that $R$ has finite Spectrum . But I am unable to say whether all this really implies $R$ is Noetherian or not .
Answer: Take $V=\oplus_{i=1}^\infty F_2$ and form the ring
$$
R= \left\{\begin{bmatrix}a&v\\0&a\end{bmatrix}\middle|\,a\in F_2, v\in V\right\}
$$
It isn't noetherian because the image of $V$ contains infinite ascending chains of ideals. It's also local (with residue field $F_2$) and $0$-dimensional.
Answer: As you say, the ring is zero dimensional because each $R/P$ is a finite domain, hence a field. Hence we get a map $R \to \prod R/m_i$, running over the maximal ideals. The target here is a product of finite fields, hence the image is Noetherian. The kernel is the nilradical of $R$, since the nilradical is the intersection of all primes, which is in this case reduces to the intersection of all maximal ideals.
So if $R$ is reduced, we are done.
If you can prove that the nilradical in your case is Noetherian, then you can conclude from the 2-3 theorem for Noetherian property in exact sequences.
I think you can get a non-reduced counter example like this:
$R = \mathbb{F}_p[x_1, x_2, \ldots, x_n, \ldots] / (x_1, x_2, \ldots)^2$.
This is a dimension zero local ring and the quotient by the maximal ideal is the finite field $F_p$.
(In words: $R$ is the quotient of the countably infinite dimensional polynomial ring over $F_p$ by the square of the maximal ideal corresponding to zero.)
However, there is an infinite ascending chain of ideals $(x_1) \subset (x_1,x_2) \subset (x_1,x_2,x_3) \ldots$.
Comment: The example you worked out should be correct... I think it is even isomorphic with the thing I gave. But it might be a more comfortable description for some to see :)
Comment: @Area Man : What If we also assumed $J(R)=\{0\}$ ? Would the ring be Noetherian then ?
Comment: @users What is $J$? Being reduced means that the nilradical is trivial, which is the kernel of the map I describe in the first paragraph.
Comment: @AreaMan : $J(R)$ means the Jacobson radical ... ah yes I see that  in that case $R$ has to be Noetherian and even more ..
Comment: @rschwieb I agree they seem isomorphic, your ring is generated by 1 and a countable collection of elements that annihilate each other and square to zero. Interesting... it's much more comfortable for me to think in terms of polynomial rings than matrix rings (in matrix rings I always have to pause and think about how the multiplication works), at least when the relations in the ideal are simple enough so that there are no suprises. :)
Comment: @users $J(R)=\{0\}$, in a semilocal ring, implies $R$ is a finite product of fields, so trivially Artinian, Noetherian etc. And finite, if you assumed the quotients at prime ideals were finite.


Missing a 'Nice Answer' while having 10 upvotes

Question: I did receive 17 upvotes for my answer to this post. I however havent received the 'Nice answer' badge for this question. It's already a couple days old, so data should've been processed by SO already. Any idea why I didn't get the badge?
Answer: You got a Nice Answer badge for this post which, as of me posting this, only has a score of 9. I don't see any downvotes for that answer though, so I suspect someone upvoted it, got you the badge, then revoked their upvote while they still could.
The number of Nice Answer badges tallies with the number of 10+-scoring answers you have in total, but since they don't take away badges for answers that no longer satisfy the condition, they make up for that by not awarding for the next answer that's supposed to get you it. So six badges correspond to six 10+-scoring answers. The same applies for answers to questions which have since been deleted, or answers which themselves have since been deleted.
Comment: @Ivo What about 24 and 99?
Comment: I gave him an extra upvote, so  he get his badge now, 9 votes it the worse number after 0 :)
Comment: I now count 7 questions with more than or exactly 10 upvoted - badge hasn't been awarded yet. Will wait for that and accept your answer then. Oh and thanks Ivo :)
Comment: @halfdan When I look at your profile, I can see that you have 7 nice answer badges.
Comment: @Roflcoptr, yep, received it right after I posted the comment, accepted the answer (+1). Thanks guys.


how to maintain curvature when using loop tools on a curved surface?

Question: Im trying to put a hole in a curved surface while maintaining curvature and clean topology. Deleting a vertex and selecting the loop and using loop tools > circle always flattens out the surrounding area and i can never get the curvature right when sliding edges and vertices around arbitrarily.
Comment: moonboots to the rescue once again!
Answer: Create another cylinder that has the same radius (or duplicate the current one and rotate it 90° on Z). Select your cylinder with the hole, select all the vertices around the hole, assign them to a vertex group (CtrlG):

Give a Shrinkwrap modifier to the cylinder with the hole, choose the other one as Target, select the vertex group, apply the modifier:

You may need to give a Subdivide Surface modifier to the other cylinder if necessary.


Implode an array with JavaScript?

Question: Can I implode an array in jQuery like in PHP?
Answer: You can do this in plain JavaScript, use Array.prototype.join:
arrayName.join(delimiter);

Comment: Can a moderator force accept this answer or some how make it go to the top? I missed this answer initially reading this.
Answer: Like This:
[1,2,3,4].join('; ')

Answer: Array.join is what you need, but if you like, the friendly people at phpjs.org have created implode for you.
Then some slightly off topic ranting. As @jon_darkstar alreadt pointed out, jQuery is JavaScript and not vice versa. You don't need to know JavaScript to be able to understand how to use jQuery, but it certainly doesn't hurt and once you begin to appreciate reusability or start looking at the bigger picture you absolutely need to learn it.
Comment: then again, javascript IS my favorite jQuery plugin ;-)
Comment: This comment aged well
Answer: For future reference, if you want to mimic the behaviour of PHP's implode() when no delimiter is specified (literally just join the pieces together), you need to pass an empty string into Javascript's join() otherwise it defaults to using commas as delimiters:
var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
alert(bits.join());    // H,e,l,l,o, ,W,o,r,l,d
alert(bits.join(''));  // Hello World

Answer: Use join() method creates and returns a new string by concatenating all of the elements in an array.
Working example

var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Answer: We can create alternative of implode of in javascript:
function my_implode_js(separator,array){
       var temp = '';
       for(var i=0;i<array.length;i++){
           temp +=  array[i]
           if(i!=array.length-1){
                temp += separator  ;
           }
       }//end of the for loop

       return temp;
}//end of the function

var array = new Array("One", "Two", "Three");

var str = my_implode_js('-',array);
alert(str);

Comment: Textbook case of things not to do. Do not perform string concatenation in a loop. Do not replace fast built in functions with your own slow code.  Using the `Array` constructor instead of literals is unecessarily verbose.  If you are desperate to recreate the implode function the smart thing would be to wrap the built in join method with your own function.  The smarter thing is to learn the language you are programming in.
Answer: array.join was not recognizing ";" how a separator, but replacing it with comma. Using jQuery, you can use $.each to implode an array (Note that output_saved_json is the array and tmp is the string that will store the imploded array):
var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index] + ";";
});

output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added

I have used substring to remove last ";" added at the final without necessity.
But if you prefer, you can use instead substring something like:
var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index];

    if((index + 1) != output_saved_json.length) {
         tmp = tmp + ";";
    }
});

output_saved_json = tmp;

I think this last solution is more slower than the 1st one because it needs to check if index is different than the lenght of array every time while $.each do not end.
Comment: The join parameter works in IE 4, 5, 5.5, 6+. I't might have worked in IE3 but I can't get my copy to execute any JavaScript, so I can't test.
Comment: If you were getting a ',' instead of a ';' you were forgetting to pass the delimiter in to the join method. Try `your_array.join(';')`
Comment: I tried it in that time but it didn't work in IE (I do not remember the version exact, but I think that was IE6). I needed to support it in that time (Enterprise app...). In newers browsers your note probably make sense. Thanks for the note Mike and thanks for downvote BEFORE asking WHY I have used this method.
Comment: Yes, it works. But not with ";". It join but replaces ";" with ",", at least on Server 2003.

Implode an array with JavaScript?


Yet another 807 tube transmitter

Question: I just can't seem to get away from these 807s. Although I am to the point where I might replace them with 6146s.
I built this transmitter with a 6AG7 oscillator, and 2x 807 final amplifier. The schematic is a well known diagram and many people have built it. The oscillator works great. No problems there. The issue is when I measure the plates of the 807s, they are on a totally different frequency than the fundamental. I have experimented with different plate chokes, no change. On the 807 control grids, the frequency going in is dead on, 1000kHz. On the plates of the 807s, it's somewhere around 4000kHz (roughly.) I know 807s are prone to parasitics, so I shortened my leads from the 6AG7 plate. I shortened and re-routed the 807 plate B+ supply. No change. It's almost like the 807s are self-resonating. I've checked my high and low B+, they are clean. There is filtering on both. I have the parasitic suppressors on my 807 plates as shown in the diagram.

There are a few things I have done differently than the diagram.
I have my 807 plate current meter in the B+ line with a .01uF capacitor across the meter. (The diagram has the meter in the 807 cathodes.)
I do not have a 750v transformer. Mine is 650v for the high B+.
The crystal I am using is a HC-6 crystal. The diagram uses a FT-243.
I do not have the grid current meter, 6800ohm, 270ohm, or 10k pot installed.
I am doing all of my testing into a dummy load.
Any ideas? Things I could test?
Comment: No grid stoppers? How are you measuring the plate signal?
Comment: OP's schematic apparently differs considerably from the 1 MHz circuit...no tuned-circuit component values are provided. It is also possible that overall feedback overpowers the crystal's attempt to oscillate at 1MHz: construction and wiring matter.
Comment: As mentioned in the original question, the oscillator works great. I calculated the value of L1 for 1mHz. I have a 160uH coil, with a 25-300pF air variable capacitor. The plate of the 6AG7 is easily tuned to resonance.
Answer: It's years since I've played with valve amps, but if you have parasitic oscillation, I'd look at Grid Stopper resistors.
Obviously the values referenced in the link are for an audio amp, but the analysis remains valid, and should allow you to select a size that suits your cut-off 1MHz frequency.
For example, here is a link to an 807 transmitter with grid resistors at 47R.
Comment: Understand desire to stick to something that works for others, but the thing with the parasitic resonance is that it can be very sensitive to details of build and tubes.  The low value resistors on the grid/screens, if correctly sized, don't reduce gain by much, yet add significant margin against resonance. Well worth a try.  Do let us know if it helps, to make the answer more useful to others.
Comment: Well that was it. I installed two 20ohm resistors right at the 807 grid sockets (as close to the tube as possible) and the 807s are now right on the fundamental frequency. My plate current is respectable (150mA vs 45mA when the 807s were self-oscillating.) One of the 807s was red-plating just in the corner of the bends, but one I'll check out the bias next. Appreciate the help!
Comment: No problem.  Always happy to help others save the time it took to find out the answers the hard way!
Comment: Thanks for the reply. I have considered low value grid resistors, but I didn't want to stray too far from the original diagram since many people have built this circuit and it works fine. Unfortunately, I think I will have to add them and see what happens. I have also read that adding low value resistors to the 807 screen grids can help.

Yet another 807 tube transmitter


SharePoint Designer - How to get current server datetime through JavaScript REST?

Question: Is it possible to get current date time of SharePoint Team Site hosted server through JavaScript REST API?
Answer: You could utilize Regional Settings REST endpoint:
/_api/web/RegionalSettings/TimeZone

to retrieve SharePoint Time Zone settings and then get time for that time zone:
function getSPCurrentTime(webUrl)
{
    return $.ajax({
        url: webUrl + "/_api/web/RegionalSettings/TimeZone",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" }
    }).then(function(data){
         var offset = data.d.Information.Bias / 60.0;
         return new Date( new Date().getTime() - offset * 3600 * 1000);
    });
}

Usage
getSPCurrentTime(_spPageContextInfo.webAbsoluteUrl)
.done(function(value)
{
    console.log(value.toUTCString()); // get current SP server time in UTC
})
.fail(
function(error){
    console.log(JSON.stringify(error));
});

Comment: This will produce the wrong value during DST if the site uses a time zone with DST.
Answer: The accepted answer here is wrong because it does not account for DST (daylight savings time).
Using _spPageContextInfo also doesn't always work because that's not necessarily populated (especially if you're making a provider-hosted app).
To get the current time in the timezone of a particular site, you can use the /_api/web/RegionalSettings/TimeZone/utcToLocalTime endpoint, passing it the current UTC time. You can also use this to convert any time to the server's timezone:
function parseDate(isoString) {
    var parts = /(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)/.exec(isoString);

    return new Date(parts[1], parts[2] - 1, parts[3], parts[4], parts[5], parts[6]);
}

function convertToSiteTime(webUrl, dateTime)
{
    return $.ajax({
        url: webUrl +
             "/_api/web/RegionalSettings/TimeZone/utcToLocalTime(@date)?@date='"+
             dateTime.toUTCString() +
             "'",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" }
    }).then(function (data){
        return parseDate(data.d.UTCToLocalTime);
    });
}

Example usage:
convertToSiteTime('https://sharepoint.mydomain.com/my/site/', new Date())
    .then(function (result) { console.log(result); })

You can also expand upon the above to determine the time offset between the user's local time and the site's local time, and then use that to calculate dates thereafter. Note that this would not be a good idea for calculating dates that are far apart because the offset could be different at different parts of the year depending on DST:
function getTimeOffset() {
    var referenceTime = new Date();

    return convertToSiteTime('https://qdabra.sharepoint.com', referenceTime)
        .then(function(result) {
            return (referenceTime - result) / 1000 / 60;
        });
}

getTimeOffset().then(function (offset) {
    console.log('The local time is', offset, 'minutes ahead of the site\'s time.');
});

Comment: Interesting. I saw the Timezone endpoint in the documentation, but how did you find out about the utcToLocal method? I need to be able to find the next 5pm based on the server time and subtract the difference between the current time. I think two calls here would work for me. Thank you!
Comment: @Dinerdo I can't remember how I found it, but I think I originally learned there was such a feature in CSOM by looking for ways to convert times into site times and then worked my way out from there. FYI I've updated my answer to show an example of how you can get the time offset between the user's timezone and the site's timezone, which means you could probably pull off what you're trying to do with one call instead of two.
Answer: Vadim's answer does not get the server time.  It will return the time set on the local computer (OS Time).  You can verify this very easily by changing the date on your computer and see the time that comes up.
The data from that endpoint only includes time zone information.
Looking for an easier solution.  Hopefully we don't have to include sp.js to use _spPageContextInfo just to get the time :-/
I am calling from a blank - non templated page.
Once you have access to _spPageContextInfo, you can get the server time from:
_spPageContextInfo.serverTime

It will give you something like this:
2017-07-18T20:49:59.0827749Z

See how to get the _spPageContextInfo on a blank ASPX page from:
Bare minimum page to get _spPageContextInfo loaded
Cheers!
Answer: I tried the accepted answer but it seems to give wrong time. I found this post which explains a better way and it seems to work for me always.
You use _spPageContextInfo.clientServerTimeDelta to get the time delta and then add that to current date time.
var currentServerDateTime = new Date(new Date().getTime() + _spPageContextInfo.clientServerTimeDelta);

Comment: Please don't add the exact same answer to this question, as you did on [this one](http://sharepoint.stackexchange.com/questions/148850/sp2013-javascript-client-object-model-get-server-time/203946#203946). Instead, try to specify your answer further to make it a better of this specific question. Thank You!


Perturbation theory and size of the perturbation

Question: In quantum field theory, we usually perturb the free field by a little bit. What would be so bad about using a large perturbation to the free field?
Comment: Then the exact solution would be very different - quantitatively and qualitatively - from the initial approximation. You cannot imagine how different it would be.
Answer:
In general, perturbation theory schematically gives you results for quantities of interest $q$ of the form $q = q_0 + \sum_n\lambda^nq_n$, where $\lambda$ is a parameter meaningfully related to the size of your perturbation. The idea is that for small $\lambda$, it then suffices to compute this expression up to low values of $n$ to get "most" of $q$. When $\lambda$ is large, each $q_{n+1}$ becomes more relevant than its predecessor $q_n$, making your perturbative approach useless as you have to compute an ever more relevant infinity of terms.

Specifically in QFT, most perturbative series in $\lambda$ are asymptotic series whose number of "useful" terms is roughly given by $\lambda^{-1}$ - meaning that at large $\lambda$, there are no useful terms at all. See this question and its linked questions for more on the asymptotic nature of the perturbation series of QFT.
Comment: A remark: for perturbatively well defined theories like $\phi^4$ in 2 and 3 spacetime dimensions, the series diverges but is nevertheless Borel summable. In other words, the nonperturbative information is contained in the perturbation series. It's just that successive summing over terms, that one usually does, is the wrong way to extract that information.
Answer: In a perturbation theory, we ignore nonlinear behavior in the system's response to the perturbation stimulus.
If the stimulus is too large, the nonlinear effects become significant, and so an analysis that ignores them becomes inaccurate.
Comment: While this might be correct in the context of general response theory, I don't think it is obvious how it applies to QFT in particular. The effects ignored by perturbation theory there are usually in some sense *non-analytic*, i.e. not captured by Taylor series expansion in the perturbation parameter, but not "non-linear" in any obvious sense.


Physics of the point of contact for a spinning top

Question: I understand how spinning tops don't tip over, cf. e.g. this and this Phys.SE questions. What I'm more interested is in identifying the factors that determine the direction the spinning top moves to?
Comment: As Greg, I am pretty sure the movement is determined by the irregularities (and initial velocity of the top) of the surface. If you were to put an ideal pointy top on a perfectly smooth surface, there is no reason for it to move in any direction
Comment: I would imagine that has something to do with the initial velocity you give it when you set it in motion (i.e. when you set the top in motion, you apply both torque and force, changing both angular and linear momentum of the top). The point of contact would move straight along the surface and also rotate (though how exactly a point can 'rotate' I'm not sure). The interaction between the spinning top and surface no doubt creates some friction which would determine how the spinning top moves (it would also explain how the top loses energy to eventually topple over).
Answer: It depends on the friction of the contact. With a frictionless plane the top would precess around its center of gravity and the contact point will prescribe a circle.
Add friction, and the friction force translates the center of gravity the same way tire traction translates a car. Here you have the cases of a) pure rolling, or b) rolling with  slipping.
With pure rolling the motion is similar to a spinning coin rolling on its edge, or a spinning glass which precesses in a circle smaller than the contact ball radius.
With slipping there isn't enough force for such a tight circle, so the precession yields wide circles that become progressively smaller and smaller.


How to encourage forum users to use our wiki?

Question: I am a moderator in a community about a game. We have both a forum and a wiki. Our forum has some very knowledgeable users who make great in-depth posts.
However, I noticed the following phenomenons several times:

Someone posts on the forum (in one case someone even registered just for this purpose) to complain about an obvious mistake on the wiki they could easily fix themselves. I asked the user why they go through the trouble to post on the forum instead of just editing the wiki, but got no meaningful response.
During a forum discussion, user A cites the wiki to support their argument. User B points out that this information on the wiki is wrong, always was wrong and it being wrong is well known in the community. I asked why they know about a mistake on the wiki but don't correct it. The user said that he doesn't feel responsible for the wiki. I wonder why they feel responsible for correcting someone posting something wrong on the forum but not on the wiki.

What could be the reason why people avoid editing our wiki and how can we encourage them?
Some background info:

Our forum runs on phpBB
Our wiki runs on Mediawiki
Accounts are separate. Wiki accounts require moderator approval, because it was the only way we found to keep the spambots away.
Comment: `why they go through the trouble to post on the forum instead of just editing the wiki, but got no meaningful response.` `Accounts are separate. Wiki accounts require moderator approval, because it was the only way we found to keep the spambots away.` There's your problem.
Answer:
Accounts are separate. Wiki accounts require moderator approval, because it was the only way we found to keep the spambots away.

I suspect that this is a major factor in keeping people from editing the wiki. It probably doesn't feel like the wiki is owned by the community and having to register with a separate account won't help that feeling.
I have no idea whether this is technically possible, but if you can, link the wiki accounts to the main forum accounts so that users don't have to log in twice. This will hopefully give the feeling that the wiki is a real part of the community and owned by the community.
So other ideas you could consider:

You could have a scheme where good forum posts are nominated to be converted into wiki entries - again this might help foster the feeling of ownership.
Run a competition whereby the best new and edited wiki posts win a prize - the prize doesn't have to be much - a T-shirt would probably work. Again this is to encourage people to edit the wiki. Hopefully they'll continue to edit and expand the wiki once the competition is over.
Comment: One more: when asking them to edit the wiki, go ahead and give them the specific link to edit the page they're complaining about -- one click to get them into an edit window.  I've seen that, versus a general directive to edit, get newer users to actually do so.
Comment: It looks like MediaWiki [provides](http://www.mediawiki.org/wiki/Extension:Phpbb_Single_Sign-On) a single signon method. There is a lot of code modification (like installing an old Mod that doesn't install automatically)
Answer: You could try finding another way to control spambots on your MediaWiki that is more convenient for new users than requiring moderator approval. The following policy has worked well for two wikis that I admin:

Creating an account is open.
Everyone, including anons, can edit pages in talk namespaces but cannot edit main until an account is confirmed. This happens when a user A. confirms an e-mail address, B. gains autoconfirmed status (set to 4 days and 2 talk edits on my wikis), or C. completes what amounts to your current process of contacting a wiki administrator out of band through a related means where the user is already known (such as a forum or IRC channel).
Install the ConfirmEdit extension with QuestyCaptcha, customize its questions and answers to relate to the community's topic, and rotate the questions out every few months. This way, a generic MediaWiki spambot not targeted to your particular site will fail to create accounts and fail to post links. I have had bad experience with ReCAPTCHA; because it's so widely used, generic spambots target it far more than they would a simple game-specific Q&A.
Install the AbuseFilter extension to stop spambots that have discernable patterns in their spam or discernable patterns in their usernames.

Here's the spam control stuff from my LocalSettings.php:
// Don't allow anyone other than site staff to edit non-talk pages
// until they've confirmed their e-mail address or waited a few days.
$wgNamespaceProtection[NS_MAIN]     = array('editmain');
$wgNamespaceProtection[NS_USER]     = array('editmain');
$wgNamespaceProtection[NS_PROJECT]  = array('editmain');
$wgNamespaceProtection[NS_IMAGE]    = array('editmain');
$wgNamespaceProtection[NS_TEMPLATE] = array('editmain');
$wgNamespaceProtection[NS_HELP]     = array('editmain');
$wgNamespaceProtection[NS_CATEGORY] = array('editmain');
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
$wgImplicitGroups[] = 'emailconfirmed';  // Hide group from user list
$wgGroupPermissions['emailconfirmed']['editmain'] = true;
$wgGroupPermissions['autoconfirmed']['editmain'] = true;
$wgGroupPermissions['confirmed']['editmain'] = true;
$wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true;
$wgGroupPermissions['confirmed']['skipcaptcha'] = true;

// Four days and two edits to become autoconfirmed.
// If not also emailconfirmed, these have to be talk page edits.
$wgAutoConfirmAge = 4 * 86400;
$wgAutoConfirmCount = 2;

// Make page moves and uploads also require confirmation
$wgGroupPermissions['user']['move'] = false;
$wgGroupPermissions['autoconfirmed']['move'] = true;
$wgGroupPermissions['confirmed']['move'] = true;
$wgGroupPermissions['user']['upload'] = false;
$wgGroupPermissions['autoconfirmed']['upload'] = true;
$wgGroupPermissions['confirmed']['upload'] = true;

// Configure QuestyCaptcha from its own file
require_once("$IP/questy.php");

// https://www.mediawiki.org/wiki/Extension:AntiSpoof
// Makes sure that usernames aren't too similar to other usernames.
// We need it before we can install the ABUSE filter.
require_once("$IP/extensions/AntiSpoof/AntiSpoof.php");

// https://www.mediawiki.org/wiki/Extension:AbuseFilter
// Allows flagging, warning, or rejecting edits by heuristics
// including regular expressions, user groups, and more
require_once( "$IP/extensions/AbuseFilter/AbuseFilter.php" );
$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;

// https://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete
// Allows merging a user's contributions into another user and then
// deleting the old user.  Experimental use to merge spambots.
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
$wgGroupPermissions['bureaucrat']['usermerge'] = true;

// https://www.mediawiki.org/wiki/Extension:Renameuser
// Lets bureaucrats rename users, such as users with offensive names
// or users whose fursonas have changed
require_once("$IP/extensions/Renameuser/SpecialRenameuser.php");

// https://www.mediawiki.org/wiki/Extension:Recent_Changes_Cleanup
// Lets sysops and users with 100+ edits turn on the bot flag of edits
// Good for hiding spam and reverts that have been taken care of
require_once("$IP/extensions/RecentChangesCleanup/RecentChangesCleanup.php");
$wgGroupPermissions['sysop']['recentchangescleanup'] = true;
$wgGroupPermissions['recentchangescleanup']['recentchangescleanup'] = true;

And the separate CAPTCHA configuration file questy.php:
<?php
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php");
require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php");
$wgCaptchaClass = 'QuestyCaptcha';

$wgCaptchaQuestions[] = array(
  'question' => 'What is the name of the NES\'s light gun?',
  'answer' => 'zapper'
);

// these aren't my real questions
$wgCaptchaQuestions[] = array(
  'question' => 'Ennyn Durin Aran Moria: pedo mellon a minno.',
  'answer' => 'mellon'
);

Answer: I ran into a similar (but not exactly the same) position years ago, but everything I have done wasn't successful. So my points may not worth much.
From what I have known:

A forum almost always has greater influence than a wiki of the similar size to average users participated in both, and encourages contributions more. (A StackExchange-like model lies between them, and there is nothing else between the three.)
Forums are much harder to maintain than a wiki, when there are too many users (1,000,000 or even 10,000,000 users, say). That might be a big number. But for a single user, it is still easier to join many wikis with a total of 1,000,000 users, than many forums with that many users. That's how a wiki can be successful.

For your question, there are two obvious (and conflicting) ways based on these assumptions:

Try to attract some users outside your forum, and try to make your wiki not very forum-centric. It's fine that your wiki has less quality, and only a few users are active and volunteers to move the conclusions from the forum to the wiki (at least they save time for reading the whole thread; but users already always reading whole threads may not be interested). And of course, don't require moderator approval to edit. Wikis need less moderation but they still need some, and there are also spambots on forums. You could also try some automatic filters, or setting minimum time to wait before first edit after registration.
Or try to make the wiki something inside your forum. At least wiki edits should be scored, being indistinguishable with a forum post. And other users can reply to or argue with those edits, and also scored, in the same way like the forum. This may nullify everything good for a wiki, and stop attracting more users than the forum. For example, some may say the current revision is far from the conclusion, but based on personal opinions, and don't want others to remove it without good reasons (much better than nobody ever tries to write something in the perspective of forums). But it's fine if you don't have those 1,000,000 users, and you just want to use the wiki as a tool.

But well, we didn't have enough programmers for that non-profit wiki to make them real.
An easier way is to link the announcements to the wiki, and link from the wiki back to the original posts. It may make users complain less but I'm not sure about anything else.

Another option which seemed not to be what you want: Chatrooms seemed to be more compatible with a wiki than a forum because they don't share functionalities. I don't see a feasible way converting a forum to be like a chatroom. But one way is to let the forum users also join some chatrooms they like, and introduce the wiki to some chatroom users who aren't really interested in forums. Though it may be not easy to do it right.
Restricting the forum to talk about topics on the wiki may also work, but that's stupid since you had a successful forum but not a successful wiki.
TL;DR: Who will decide who is right and who is wrong when two users don't agree with a wiki edit? Think of that. If you don't like those arguments, you have to move them elsewhere, or move to some earlier time.
Wikis aren't automatically having a higher quality. Either improve that or let your users know. When users are saying "wiki is good", they are in fact referring to some unknown wiki editors being good, which probably means they are not editors either. If there are someone don't agree anyway, it's reasonable to think arguing with someone known and being serious better.
Instead, if they are changing the wiki after those arguments ended, they are on the right way.


Problems with Xubuntu 16.04 and Intel/Nvidia graphic card

Question: I have a notebook Santech t67 with the following features : CPU intel core i7-6700HQ, 16 Gb RAM, Nvidia GeForce GTX 970M + intel integrated card. I installed Xubuntu 16.04 in dual boot with Windows 10 without problems. I have a problem ( sorry for the repetition ) regarding the management of dedicated Nvidia video card and integrated Intel card. I installed the proprietary Nvidia and Intel drivers and I set the Intel one to improve the autonomy of the pc. The system works perfectly, only when I turn it off or reboot it freezes in a black screen with a white dash in the top left corner, forcing me to force it to close. If I use the Nvidia card this does not happen ( the computer turns off and restarts normally) . Someone has the same problem or know a possible solution?
Answer: Does this happen at all when you disable the option to save your session upon Shutdown? Maybe play around with the hibernation/sleep options a little. It sounds like it might be linked to this particular problem.
Comment: The option you mentioned is disabled. As I said in the main post, this problem happens only if I use Intel card. I've just tried again switching to Nvidia card and the system turn off and reboot normally without freezeing.
Answer: I used to have the same problem with my MSIGE62VR, the fix was to add:
<code>acpi_osi=! acpi_osi="Windows 2009"
</code>
in the kernel parameters.
You can find more details here


Arduino LED Cube 8x8x8 with a Led Driver (TLC5940NT)

Question: Me and a group of friends need to make a college project and decided to do a LED cube that can graph mathematical functions. We do not know how to code very well, and are very new to Electrical Engineering. We decided that we are gonna build the cube using an Arduino Uno. After searching quite a few cubes decided to build this:
http://www.instructables.com/id/How-to-build-an-8x8x8-LED-cube-and-control-it-with/?ALLSTEPS
We choose this one because its very easy to build, and doesn't have a bunch of components we don't know (and especially, aren't available in our city). Problem is the A6276 LED drivers are discontinued. We want to try building the cube using the TLC5940, which we already have. Problems is, we don't understand the new features of the TLC5940, and after reading many times the datasheets we still don't know if we can use the TLC LED drivers instead of the A6276. So I am asking how can we use the TLC5940 to make a multiplexing 8x8x8 LED Cube using Arduino Uno.
I know there are many guides to do LED cubes, and many include Arduino in them, but there are only a few for big LED cubes, and even fewer guides with the simplicity like the one we choose. And I couldn't find an 8x8x8 guide that used the TLC5940. Please, help me, our heads are melting trying to find a solution!
Datasheets:
(Cant post 3 links, but search for TLC5940 datasheet, first result.)
http://www.allegromicro.com/~/media/Files/Datasheets/A6276-Datasheet.ashx
The cube will be built using single color 5mm LEDs.
Comment: FTR, the '5940 melted my head too, at first.
Answer: The TLC5940 is overkill for this. It has PWM dimming of the LEDs, which will actually make it harder to implement.
The TLC59284 appears to be both pin- and signal-compatible with the A6276, and should be considered for use instead.


Question on Uniswap v3 SDK

Question: I am about to create a dapp with UniswapV3 SDK. I have a very basic doubt, can I deploy that project using hardhat? I am worrying as i creating the dapp using SDK so i might not be able to deploy the dapp because SDK uses type script.
Answer: The UniswapV3 SDK if for interacting with frontend/off chain code. The SDK basically helps you interact and do things with uniswap V3 from typescript or other centralized services.
I don't know exactly what you mean by a DAPP in this case, but if your dapp uses smart contracts that plug into uniswap V3, you should be looking at https://github.com/Uniswap/v3-core, and https://github.com/Uniswap/v3-periphery to figure out how your smart contracts need to plug in and talk to the uniswap contracts instead.
The uniswapV3 SDK might still be useful for when you are building out a front end, or say an arbitrage bot, but if you want to have contract interactions with uniswap V3, you need to be looking at their contracts. Specifically, take a look at the interface files in solidity (IContractName.sol), to figure out what functions you can call from your smart contract.

Question on Uniswap v3 SDK


Got a ticket in Quebec for violating pedestrian red light. Name spelled wrong

Question: Last year, I got a ticket from the police for violating a pedestrian redlight signal. They issued the ticket to me but spelled my name wrong. I emailed them to fight it in court, and now they have just sent it to my address for a hearing date. Should I go? Since the ticket is not issued in my name, I feel that it is not applicable to me.
Answer: Whatever crime or infraction you are charged with, it applies to you personally however they spell your name and however you spell your name. Whether or not you should go depends on the alternative that you face (large fine or jail time for failure to appear?). An argument that you didn't commit the offence because they misspelled your name would hold zero water.
Comment: Ahh, but follow the process threw. There will then be a judgement, but not against you. How would this be enforced?
Comment: @davidgo: If you appear and agree with the charges as written, you agree that the name applies to you. If you dispute the name in court, it will be fixed and the judgement will go against your correct name.
Comment: @MSalters but thats the rub - the OP is asking if he should ignore it and not go to court.  Presumably a judgement will then be entered against a different entity, so I don't see that you would be liable for it.  Yes, if they amend the ticket or charge its a different story, but I think they very often don't - for reasons I don't understand.
Answer: If your sole defense to the charge is that they spelled your name wrong, then pay the fine and move on. They have at least two pieces of identifying information: your name, and your address. If it is a gross misspelling, such as "zzyx" instead of "John," you might have an argument. But if it's "Jon" instead of "John," it's close enough. Unless there happens to be someone else living at your address whose name matches the misspelling, then "close enough" will be good enough. How could you reasonably deny it's not you?


I need to prevent deletion or editing but allow downloading

Question: I have a directory on Google Drive that contains many files. I need people to be able to download any file but not to delete or alter the originals. Can this be done?
Answer:
right-click on the folder
select Share...
select Advanced
select Change...
select On - Anyone with the link
hit Save button
hit Done button


How can I maintain pressure when adding bends to a gas line?

Question: We are having a professional reroute a natural gas line. The existing black iron pipe is 1" and is in a wall we are removing. To re-route, we were advised by one contractor to increase pipe size then reduce back to make the connection to original pipe. Another contractor stated that increasing pipe size would reduce pressure when going back down to smaller pipe. The re-route will require four 90 degree elbows. Is upsize of pipe the best solution or will pressure go down in the larger pipe and not come back up when returning to smaller pipe.
Comment: Strictly speaking, the size of the pipe has no effect on the gas pressure.  The issue you're concerned about is FLOW rate and ensuring that you don't restrict the flow and therefore pressure in the sections of the pipe that are downstream from the bends when gas is being consumed by your appliance(s).  Any reputable professional will know how to properly size the pipe to handle the demand and should factor bends and length into their design.
Comment: Increasing the pipe size and then reducing it back to the original size sounds crazy.
Comment: Check out https://www.cfd-online.com/Forums/main/7754-gas-flow-through-90-deg-elbow.html. Yes, elbows cause turbulence but I wouldn't consider 4 elbows to be detrimental.
Comment: I have had to upsize from 1" to 1-1/4" for high flow devices like tankless water heater it was at the max flow from the 1" pipe and 3 90's were causing some restriction it was only about 25' and that was less expensive than trying to get a commercial account 2 psi in my area residential are ~3/4 psi so elbows can make a big difference the 1-1/4" pipe worked.
Answer: Pressure loss (or drop) happens when there is flow. Straight pipe incurs some loss; elbows incur loss too. For a given flow rate larger pipe incurs less loss.
A gas delivery system is designed so that at peak demand, meaning when all appliances that can operate concurrently are operating, there is at least some minimum level of pressure at each appliance. In other words: pipe size is increased until calculations show gas arriving with adequate pressure pushing it into each appliance.
Realize that no residential gas system is truly engineered. They're all built with prescriptive tables and techniques like the "longest branch length" method. These quick-and-easy approaches bake in plenty of extra margin.
The contractor who says that pressure will reduce when going back down to smaller pipe... in a very technical sense he's correct, but in a practical sense he's wrong. He's not evaluating the system as a whole.
The contractor who suggested up-sizing the pipe is neither crazy nor taking advantage. He's ultra-conservative. He probably judged the extra cost of material for up-sizing to be much less than the extra labor cost of working up a calculation for your entire gas system. And he'd be right: the added material cost likely equals an hour or less of his hourly rate. By installing larger-than-original pipe he can easily argue that his new work results in less pressure loss than the pre-existing system had.
The reality is that your system is likely to have enough margin in it already so that adding four elbows is inconsequential. Up-sizing is totally fine too. Choose between the contractors based on some other factor.
Answer: Geeze! The upsize is ridiculous. The pressure is going to be the same throughout the piping system even if a section had larger piping than other sections. I think the contractor recommending the increase in size is trying to rip you off or doesn't know what he is doing. Just go with the 90s on the original pipe size, you'll be fine. Gas pressure in homes is usually less than 1 psi.
Comment: Pressure is only the same throughout the piping when there's no flow. The issue is with pipe friction and gas flow, and the flip side of "pressure is very low in gas pipes" is that "slight loss of pressure from gas flow can be a significant percentage of the very low pressure you're starting with."


Is there a benefit or advantage of decreasing the transtion altitude or transition level?

Question: Some counrties have high transition altitudes and transition levels while other countriea have low ones.
Comment: Possible duplicate of: https://aviation.stackexchange.com/q/42846/60584
Answer: Transition altitudes / levels are instituted so all aircraft have the altimeter setting and will maintain vertical separation.
For aircraft that travel long distances quickly having the ability to set 29.92 (1013) makes it much easier to maintain vertical separation as they are not required to update the altimeter setting every 100 NM or so.
If terrain is a factor, the standard altimeter setting is not accurate enough to avoid conflicts with terrain.
There is a saying "FROM HIGH TO LOW LOOK OUT BELOW".  If flying in an area of low pressure, the pilot who is using 29.92 will be flying closer to the ground than they should.  In this instance, having the correct altimeter setting is vital to main vertical separation from terrain.
Since all aircraft close to terrain needs that new altimeter setting it will also work to maintain vertical separation from aircraft.
The United States has a high transition altitude, and it is above the highest terrain in the country.  It is my opinion, that this would be the reasoning for most countries as well.


Unicorn, RVM and Mac OS X Leopard

Question: I am trying to set up a small web server on my old mac mini G4 at home using the technologies mentioned in the title. I have learned that to serve anything on port 80, the server has to be started with sudo. Since I am using RVM to manage my Ruby Gems, I use rvmsudo to start the server.
I have created a user for running the server, and I can start the server by logging in via SSH and typing 'rvmsudo unicorn -p 80'. But of course when I close the connection the process is terminated, so this is obviously not the way to go.
What is the 'right' way to set up a server on Mac OS Leopard? Keeping in mind that I would like to keep using RVM to manage my gems. I would also like the server to start running automatically when the computer is booted.
Answer: you could use the tool GNU screen
http://www.gnu.org/software/screen/
and detach the screen, so the processes will continue running.
alternatively, you could try if this command does the trick:
<code>rvmsudo unicorn -p 80
</code>

Unicorn, RVM and Mac OS X Leopard


How should I study additional texts?

Question: This might sound a bit stupid. I just completed phonetics and phonology from Grady's "Contemporary Linguistics". I'm still in my schools and preparing to join bachelor of arts linguistics in a university. So I'm self studying and occasionally I watch videos from YouTube. And I'm wondering whether I should pause momentarily and study additional books on phonetics and phonology first like Ladefoged, acoustics and stuff or whether I should continue with morphology or whether I should study both. How do you people in college do that? What about other subjects that you have taken? How do you manage all of them?
Comment: When I taught Intro Ling, I started with morphology because students don't know why they need phonetics and phonology until they see the effects it has on grammar. Plus, morphology is the strangest part of any linguistics class -- the things some languages get up to! -- and that helps keep the students interested. When they see how useful it is, phonetics and phonology come easier. I don't think you need more phonetics at the beginning; you'll always be learning more, after all.
Comment: If you'd like more study, feel free to download the coursepacks for my Intro Course. [Part 1](http://www.umich.edu/~jlawler/210CourspackPart1.pdf) covers morphology, phonetics, and phonology; [Part 2](http://www.umich.edu/~jlawler/210CourspackPart2.pdf) covers syntax, semantics, and selected short subjects. Almost all of the coursepacks are exercises; the class was [Introduction to Linguistic **Analysis**](http://www.umich.edu/~jlawler/210.html).
Answer: University students usually do what they are told to do, so it depends on what they are told to do. The range of variation in what students are told to do is considerable, and it's hard to evaluate 200 different study plans (though I don't think you will get 200 answers here).
My main recommendation is that you get a reputable foundation. Use a book, not a YouTube video constructed by someone who doesn't know the subject matter. My second recommendation is to try to learn by doing, rather than learning by memorizing. A variant of that prescription is to learn by producing (writing papers), not just solving problems (filling in answer sheets). My third is to approach the subject incrementally. You need to know a fair portion of the phonetic alphabet and have some idea about phonetic properties in order to understand features which are fundamental to phonology, but you don't need to know the entirety of the Ladefoged text (in fact, you'll still come up short if you are based just on the Ladefoged text). If you can't do basic morphological analysis of e.g. Turkish, you will struggle with doing phonological problems: but you don't need to know how to solve phonological problems to understand basic phonetics.
IMO phonetics, phonology and morphology form a coherent triad; and syntax and semantics forms a coherent pair. Semantics has a tangential connection to phonetics, but as a practical matter it's better to focus on smaller bits. It is also better to not get too focused (e.g. reading everything there is to read on phonetics first).
My intro to linguistics started with English syntax, because it most clearly demonstrates the notion of "grammatical rule" and methods of analysis. This is a very un-traditional way of presenting things. I suspect that such an approach does not work well with most textbooks. I suggest using John Lawler's materials (Pt. 1, Pt. 2), because it best fits the kind of approach that I just advocated.
Comment: I used the 2nd edition of O'Grady (decades ago) and was unhappy, but that was when there was little competition. That version was too "top-down" i.e. driven by technical terminology.  You need a self-study phonetic guide centered around DIY phonetics, and for some reason nobody has written such a thing. I think step 1 is to install Praat, make a decent recording of "Hello world", and create a "text grid" where you can identify the beginnings and endings of the individual segments (hmmmm that step has at least three substeps).
Comment: In that case, is Contemporary Linguistics by William. O. Grady a good book? It was suggested in MITOCW website (MIT open course ware). Also, since I only have studied theoretical phonology and phonetics until now, I don't know how you're supposed to "do" it. For example in Turkish phonology, am I supposed to review papers written by others. Am I supposed to search for online audio samples of Turkish and analyse them using some software (if so, what software?), or are there some student study kits.
Comment: And in phonetics, wouldn't a practical study require a foundation of acoustics or articulatory phonetics? Because I've only been introduced to major sound classes in phonetics and some articulatory processes. Also, some people are suggesting me to start with morphology or syntax, but I think I would continue with my current plan cause phonetics is what got me interested in the first place.

How should I study additional texts?


Symlink - Change specific files

Question: I've sym-linked a directory, and now I want to change a specific file in the linked directory, without changing it in the target directory. I don't want to copy the whole directory.
What can I do?
Answer: You can't, there is only 1 directory.  You need to unlink the folder and link just the files or subfolders apart from the one that needs to be different.
Answer: James is right, you can't change them because it's the same directory.
Assuming you have no subdirectories it's pretty easy to link everything individually
<code>/path/to/dir2$ find /path/to/dir1 -maxdepth 1 -type f  -print0 | xargs -0 -n1 ln -s
</code>

Symlink - Change specific files


If I use a Mauritius passport to go from U.K. to Paris and then Paris to U.K. will I have problems getting back?

Question: I am born in the U.K. if I bring my birth certificate is that good evidence that I'm from the uk. Either by Eurostar or flight
Comment: The other question is about using visiting France and returning to the UK on a Mauritian passport, and OP was advised they should have proof of their UK citizenship. This question is about whether a British birth certificate is proof of UK citizenship. They're clearly very related and *could* very easily have been asked in one question, but they're also very clearly not the same question as each other.
Comment: I also think the advice about visa-free entry for citizens of Mauritius is misguided and could land OP in trouble. Citizens of Mauritius have time-limited visa-free entry for specific purposes which do not apply to OP.
Comment: Note that Mauritian passport holders have visa-free access to the UK for up to 6 months, so even if you weren't in born the UK you'd likely still be allowed in.  (Same goes for the Schengen area.) The question is whether a UK citizen must present themselves as a UK citizen to UK border control.
Comment: Isn't this the same question you already asked? [Can I use a Mauritius passport to go from uk to paris and then Paris to uk](https://travel.stackexchange.com/questions/153742/can-i-use-a-mauritius-passport-to-go-from-uk-to-paris-and-then-paris-to-uk)

If you want further information, look under the second answer here, as @MichaelSeifert says you also have visa-free access to the UK under your Mauritius passport it matches your situation. [UK citizen without UK passport re-entering the UK](https://travel.stackexchange.com/questions/78669/uk-citizen-without-uk-passport-re-entering-the-uk)
Comment: Have you ever traveled outside the UK before? have you ever had a UK passport? (and if-so are you still in possesion of it, even if expired)
Answer: In short: No.
Birth in the UK does not automatically confer British citizenship (that's dependent on various other circumstances, depending on your date of birth). As such, a UK birth certificate is not proof of UK citizenship. I don't recommend attempting to use it to enter the UK.
Some comments have suggested you needn't worry about proving British citizenship as Mauritian citizens can enter visa-free. I do not advise this route - that visa-free entry is for specific purposes (tourism, some types of short-term business/educational visits) which do not appear to apply to you.
Acquiring a British passport will make this trip much easier.
Comment: I am 19 years old if that makes a difference
Comment: @CarnaticHindustaniFusion it doesn't make a difference. The age thing only determines *which* set of criteria had to be fulfilled for you to have UK citizenship - but regardless of your age, your birth certificate doesn't show whether or not you fulfil those criteria.
Comment: AIUI if someone was born in the UK after the end of WW2, and before 1983 then the only way they would not be a British citizen is if their father was a foreign diplomat.


In Open Office, make 1st row of data "scroll lock" so it is always visible as you scroll down?

Question: In Open Office, how do you make the first row of data "scroll lock" so it is always visible as you scroll down?
Answer: Select the first row below that which you would like "frozen" and select Window | Freeze.
EDIT: In fact, this works to freeze rows and columns.  For example, if select cell C3 and Window | Freeze, then the first two rows and the first two columns will be frozen.
Comment: For `gnumeric` users, a similar feature is available through [View > Freeze Panes](http://www.hep.by/gnu/gnumeric/View-Menu.shtml).
Answer: Or do it in one step by putting your cursor in the first cell that you want to allow to change, then click Window > Freeze.
For example, to freeze the first two rows and the first two columns, you'd put your cursor in cell C3 and click Window > Freeze.


Masters degree in business engineering or management engineering

Question: Is it possible to have a masters degree in business engineering or management engineering when you don't have a first degree? But i have more than 10 years professional experience
Comment: Not sure, but masters degrees are basically free money for the schools, so I'm curious about this too.
Answer: Usually no, mostly because the undergraduate degree is validation that you've covered some baseline subject matter.  Even in more vocation-based undergraduate schools you usually need to take courses (writing, math, humanities) that might not be directly related to the subject matter.
That said, there are schools that may be willing to trade a certain amount of professional experience for a certain amount of credit towards an undergraduate degree, or schools that might let you pursue both degrees at the same time.  You'll have to shop around.
Answer: A Bachelor's degree is necessary.
Many colleges accept some credits earned through CLEP.  Check the published rules first and then double-check with the college directly.


What is the most similar license to the GPL 2.0, but for non-code works?

Question: What license is most similar to GPL 2.0 but for stuff other than code like images and documentation?
Answer: The GPL can be used for any copyrightable work, including images and text. People who distribute such work under the GPL will need to supply the "corresponding source" for making modifications which may simply be the work itself, or some more malleable format (e.g., an image may have been made from a file with editable layers in Photoshop or GIMP, or a PDF document may have been created from LaTeX source).
Alternatively, Creative Commons Attribution-ShareAlike (CC BY-SA) is a weaker copyleft license intended for artistic works. It is notably weaker than the GPL because it does not require the distribution of corresponding source. If someone distributes a modified work based on a CC BY-SA work, then that new work must also be licensed under CC BY-SA, but the distributor does not need to supply their underlying source. This means recipients may legally distribute and modify that work further, but in practice it may be very difficult to make modifications without corresponding source.
The FSF recommends the GNU Free Documentation license (GFDL) for software documentation. However, this license is GPL-incompatible and (in this writer's opinion) rather complex and cumbersome. Wikipedia has a good overview of its complexities.
Comment: "A PDF document may have been created from LaTeX source" - I feel like this is somewhat of a bad example because there have been several debates on whether the PDF is output or derivative work of the LaTeX source, especially if a GPL .sty file has been used.


What happens to physical qubits when they decohere during quantum error correction?

Question: Say you have a scaled up system with 98% fidelity so 2% decoheres. These are physical qubits doing error correction on information encoded on logical qubits. 98% of these entangled qubits will be doing error correction but 2% will interact with the environment and decohere. Since this 2% carries a small part of the coded information from the quantum gate where they were doing error correction, what happens to those physical qubits when they decohere? Is it just dead code?
Comment: just for your information, there is also [a StackExchange site dedicated to quantum computation and quantum information](https://quantumcomputing.stackexchange.com/), where this kind of questions are also very much on-topic.
Answer: I take it that you are using a short-hand way to describe the true situation, in which everything decoheres a little but we can analyse this as if some things decohere and some things don't.
If the physical bits you are referring to are part of the basic level in the ancilliary aparatus employed in the error correction, then what happens is that their quantum state becomes uncorrelated with the state of the rest of the computer, such that whatever role they were intended to play in the next corrective step will not take place or will go wrong. In a typical design, these bits will then be re-prepared in any case in some standard state such as the zero state, and then they enter the next round of correction all fresh and new and error free (but of course even this repreparation will not be completely perfect).
If these bits were somewhere else in the heirarchy, then they may be corrected by some of the further apparatus. In either case the noise they caused by going wrong will, most likely, be corrected in the next round, but of course at every stage a little bit of noise leaks through and slowly builds. One designs the whole protocol such that this "little bit" is small compared to $QN$ where $Q$ is the number of logical steps and $N$ the number of logical qubits in the algorithm being computed.


Fastlane Screenshots with Authentication

Question: I'm currently using Fastlane to capture screenshots of my application to be used in both the iOS and Android app store. My problem is that Fastlane is only able to capture the loading screen and the username/password authentication screen. Is there a way to pass credentials (possibly test creds with limited access) into Fastlane to allow it to capture other screenshots of my application? If not, what other methods could I use?
Answer: Please check in Fastlane docs Launch Arguments under Advanced Snapshot section https://docs.fastlane.tools/getting-started/ios/screenshots/ I think it can help

Launch Arguments
You can provide additional arguments to your app on launch. These
  strings will be available in your app (eg. not in the testing target)
  through NSProcessInfo.processInfo().arguments. Alternatively, use
  user-default syntax (-key value) and they will be available as
  key-value pairs in NSUserDefaults.standardUserDefaults().
launch_arguments([
  "-firstName Felix -lastName Krause"
])

name.text = NSUserDefaults.standardUserDefaults().stringForKey("firstName")
// name.text = "Felix"

snapshot includes -FASTLANE_SNAPSHOT YES, which will set a temporary user default for the key FASTLANE_SNAPSHOT, you may use
  this to detect when the app is run by snapshot.
if NSUserDefaults.standardUserDefaults().boolForKey("FASTLANE_SNAPSHOT")

{
          // runtime check that we are in snapshot mode
      }
Specify multiple argument strings and snapshot will generate
  screenshots for each combination of arguments, devices, and languages.
  This is useful for comparing the same screenshots with different
  feature flags, dynamic text sizes, and different data sets.
# Snapfile for A/B Test Comparison
launch_arguments([
  "-secretFeatureEnabled YES",
  "-secretFeatureEnabled NO"
])

Comment: Thanks Sinisa. I was definitely wrong about how Fastlane takes screenshots. It seems that for Android (which I am working on now) Fastlane "piggybacks" off of Android's UI testing to capture screenshots. iOS behaves very similarly as well.


Developing a User Dashboard

Question: Due to your extraordinary support, i was able to build a login system with sessions.
Now i want to create a a user dashboard after the user has verified himself. I am good at HTMl, CSS and Javascript and wanted to know if I should go ahead and create the dashboard using them. Or should I use PHP (i am not too good at it).
Are there any security risks of creating it using HTML? Or is there a software which I can buy that would do the trick for me?
Thanks.
Sarthak
Answer: You're sort of saying this:
I was able to build a bicycle.
Now I want to build a motorcycle. I am good at wheels, speeders and brakes. Should I use bolts to tie them together or not? (I'm not very good with a screwdriver).

Jokes aside:
PHP: Server side language. Serves to control the logic of your aplication. Query the database and show the client what the client is suposed to see.
HTML: Client side. Is the markup that formats what the client sees. Generally PHP will know what the client want and show him the propper HTML.
CSS: Client side styling. Serves to give pretty styles to your HTML markup.
Answer: Go take a look at this thread. It is an extremely valuable resource.
https://stackoverflow.com/questions/194812/list-of-freely-available-programming-books
Read a little, learn a little, try a few things out. If you get stuck with anything you don't understand, post it here.
Answer: Before going forward I suggest you to first study the difference between server side languages and client side languages.

Server-side scripting
Client-side scripting
Server side vs Client side languages

After standing the difference look at this article:
Secure Website Login Programming with PHP & MySQL
Answer: I think you should go and buy a book on PHP. You'll need it to develop a dashboard if you want it to do anything useful. It doesn't sound like you have any idea where to start at the moment, and there's only so far you can get by asking SO to write your site for you.
Comment: any beginners tutorial would do.
Answer: Usually, web software is built using php and HTML and CSS and JavaScript.
In most cases, you will want to read information(like interesting posts, status of tasks, etc.) in php (usually from a database), mark it up with HTML and CSS, and then add additional features using JavaScript. If you only use HTML, you'll have to show every user the same dashboard, and that sort of defeats the purpose of a dashboard, doesn't it?
I'd suggest you either hire a programmer or look for a commercial/open-source solution for your whole problem. Oh, and don't worry about security too much. Not that you shouldn't worry about it, but understanding how stuff works and why a certain class of bad code opens a vulnerability should be your priority.

Developing a User Dashboard


The existence of two-round zero-knowledge proofs

Question: Does there exist any (im)possibility results for two-round private-coin non-auxiliary input zero-knowledge proofs for languages outside BPP?
Answer: Under the following assumptions there does not even exist three-round private-coin zero-knowledge proofs for languages outside BPP. See here.
The theorem holds assuming:

Sub-exponentially secure one-way functions.
Sub-exponentially secure indistinguishability obfuscation for circuits.
Exponentially secure input-hiding obfuscation for multi-bit point functions
Comment: Hamidreza explicitly talks about non auxiliary input ZK. The paper you quote only deals with auxiliary input ZK. Further, for that case it would be overkill. 2-round AI-ZK is already ruled out unconditionally by Goldreich and Oren.