• Answers will occasionally be moved to the Sandbox archive when there are too many of them. When using them to report bugs, keep an eye on the post.
  • This site, Meta Stack Exchange, is usually used as a "test bed" for pending changes happening to the way text is rendered on all network sites. Changes to text rendering that are going to be rolled out to the network are usually deployed here first to test them out and fix any potential glitches. Currently, there are no such changes pending, but if there were, keep in mind that text posted here may render differently from the other sites until the changes roll out to them as well.

As per Jeff's suggestion in this comment:

You can use this question as a formatting sandbox. You can:

  • edit this question itself (Community Wiki questions such as this one require only 100 reputation to edit instead of 2,000)
  • post answers to this question (This question might be protected, requiring earning 10 reputation on this site to answer)
  • post comments to this question or its answers
  • test suspected bugs with the editor or the rendering
  • post ponies (only when mods are asleep)

Beware that since the changes to syntax highlighting in December 2010, and the inline hints added in March 2011, no syntax highlighting is applied unless the question's tags or an inline hint enable it. So, to test highlighting here in the sandbox:

  1. As of January 8, 2019, you can use GitHub-flavor fenced code blocks in your posts, specifying the language after the opening fence:

    While not hinted otherwise: <html></html> source <b>goes</b> "here".
    var a = 3;
    while (not (a > 0)) {
        alert("JavaScript code <b>goes</b> here.");
  2. Or:

    • Create code blocks in any way (using the fence notation above, the four-space indent form, or using HTML <pre><code> tags).

    • Save your post.

    • Use your browser's developer tools to edit the resulting HTML. To open developer tools, press F12, or ⌥⌘ I on Mac.

    • Find the <pre> element and add the attribute class="prettyprint", or change it into one of the valid syntax hints linked above, like class="lang-vb prettyprint".

    • Run the following in the location bar: javascript:prettyPrint(); or prettyPrint() in the console.

Answers that are considered annoying or obnoxious, or that cause breakage for users, will be deleted. This is codified as a policy as of March 29, 2018.

  • Bold code block.Italic code block. – smileycreations15 Mar 4 '19 at 12:36
  • Is new line working correct? Adding two spaces at the end of this line And now the new line... And another another... No new lines :( – smajli Mar 5 '19 at 11:14
  • New line </br> continue in new line... – smajli Mar 5 '19 at 11:16
  • Test: meta.stackexchange.com/questions/324682/… – Alex Mar 17 '19 at 2:35
  • Do HTML &quot; entities &quot; work&nbsp;? Guess not. – a vaccinating arachnid Apr 1 '19 at 22:18
  • 10
    A comment with some weird markdown, to test and help this user. Look tags work too, and so does tour. – Bhargav Rao Apr 6 '19 at 1:59
  • 10
    Note: Do not remove @BhargavRao's comment, or you will break this answer – wizzwizz4 Apr 6 '19 at 17:16
  • @BhargavRao When sandbox answers are moved to the archive, comments such as this one -- on the question itself -- aren't migrated; they're deleted. – rgettman Apr 9 '19 at 19:37
  • @rgettman, yeah, that is fine. I had used it for just a small demonstration. The linked answer itself is self-sufficient. Thanks anyway. – Bhargav Rao Apr 9 '19 at 20:22
  • 4
    ‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‬‭‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‬‭‮ Such an odd comment...‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‬‭‮‬ – mindstormsboi Jun 18 '20 at 1:16
  • 1
    ‮sdrawkcab si tnemmoc sihT – Donald Duck Jul 4 '20 at 1:03
  • 1
    SOBotics Tool to get the source text of this comment. Single backslash and single backtick: \, `. Type: ``\``, `\``. – Sebastian Simon Jul 12 '20 at 23:23
  • 6
    Note: Do not remove @wizzwizz4's comment, or you will not know that you don't have to delete Bhargav Rao's comment. – Big Brother Jul 18 '20 at 11:49
  • 1
    ‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‬‭‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ ‬‬‭backward comment‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‮‭‬‭‭‬ ‭‮‬‬ – ppwater Nov 30 '20 at 1:32
  • 1
    @ppwater pasting the contents of your comment after selecting the spaces after it too into TextEdit and hitting backspace crashes on macOS Catalina. ¯\_(ツ)_/¯ It appears it split my cursor in two???? – Pixelated Fish Jan 31 at 21:14

149 Answers 149

1 2 3 4

Windows equivalent of whereis?

  • As you can see, I can post just fine the markdown "code" of this answer here at meta.stackexchange.com. But when I try to post the identical markdown at non-meta stackoverflow.com, then I get an error similar to meta.stackoverflow.com/questions/277896. To me this looks like a bug. I can easily replicate the error as follows. On my answer above, I click edit and then copy all the markdown without making any changes. Then I go to any stackoverflow question and try to post the exact same markdown as an answer. It fails! Screenshot - i.imgur.com/nnPXwub.png. – Henke Dec 8 '20 at 16:18
  • Error message: Your post appears to contain code that is not properly formatted as code. Please indent all code by 4 spaces using the code toolbar button or the CTRL+K keyboard shortcut. For more editing help, click the [?] toolbar icon. I might add that the error goes away if I remove the last reference link (the one that links to superuser). I can easily replicate that behavior as well. - I just remove the link, then click anywhere outside the "markdown editor". It then looks as follows - i.imgur.com/sfY4uG5.png. If I insert the superuser link again, the error displays again. – Henke Dec 8 '20 at 16:23
Road class Syntax explanation
European road E-[0-9]<2-3>
Motorway (Autopista) AP-[0-9]<1-2>
Expressway (Autovía) A-[0-9]<1-2>
Radial motorway R[1-5]
National road (Carretera Nacional) N-`Roman`{a};N-[0-9]<3>{a}
Regional road (Carretera Comarcal) C-[0-9]<3-4>{a}
Community road see region table

Markdown line break directly after an URL with a path:

Foo http://example.com/test.\

Foo http://example.com/test.\ Bar

Foo http://example.com/test. \

Foo http://example.com/test.





testing syntax highlighting issue: test

test test test

[A draft for the expansion of a deleted answer in Build a Turing *incomplete* language]

This is the full list of predefined macros (it's possible to see that only __DATE__, __TIME__ and __TIMESTAMP__ are not deterministic. Remark: defining SOURCE_DATE_EPOCH will not affect the __TIMESTAMP__)

The directives that can read the hard drive is #include, #include_next and #import.

This is the full list of directives.

While it's sufficient to provide an implementation of some basic arithmetic operations, I'd like to explain the method in more details.

Input-dependent computation

In order to make the program powerful enough, it must be possible to make the amount of computation dependent on the size of the input.

This can be achieved by encoding a natural number $n$ as a sequence of $n$ pair of brackets ()()()...()()().

So if there are two macros defined like this (there must be two to avoid it being blue-painted)

#define a() X b()
#define b() X a()

Then a()()...()() will expand to X X ... X X a.

It's usually convenient to remove the last a. That can be done by pasting the whole thing with something like _delete_this and #define a_delete_this.

Repeated fixed function call

Let x be a parameter, with its value being a sequence of $n$ ()s.

Then it's possible to generate f( repeated $n$ times and ) repeated $n$ times.

With some simple manipulation, it's not hard to define some macro $P(n, args...) to expand to f(f(...(f(args))...)) for a fixed function f.

Repeated dynamic function call

Unfortunately, this technique alone won't be able to implement $P(n, f, args...) = f(f(...(f(args))...)).

(this is not necessary for the computations, but it's more convenient this way)

Define an auxiliary macro $M: $M(f, args...) expands to f, f(args).

(note that args... is a GNU CPP extension; however this is only for convenience, all usages of it can be replaced with the standard __VA_ARGS__ identifier)

Observe that $M($M($M(f, args...))) will expands to:

$M($M(f, f(args)))
$M(f, f(f(args)))
f, f(f(f(args)))

Taking the second argument will result in f(f(f(args))).

In reality, some defer/eval is required to make the expression expands correctly.

Then, use the previous macro $P to evaluate $M $n$ times on f, args..., and it's possible to get f applied on args... $n$ times.

At the moment, it's possible to use $P to implement the multiplication function:

#define mul_1(x,y) x y, y
#define mul(x,y) $P(x,mul_1, ,y)

In this example, mul_1 is repeatedly applied on the argument (<empty>, y) $x$ times. For each application, mul_1 transforms (accumulator, y) to (accumulator+y, y); therefore after $x$ iterations the result is (x*y, y).


Let's say, you want to implement a function that uses $P based on another function that uses $P.

#define add(x,y) x y
#define pre_1(x,y) y,y()
#define pre(x) $P(x,pre_1,,) // <-- this function uses `$P`
#define sub(x,y) $P(y,pre,x) // <-- this function uses `pre`
// similar to the implementation of subtraction using pair in lambda calculus
// returns x-y if x>=y, 0 otherwise.
// (terribly inefficient.)

This will immediately raises a problem -- the inner $P is not expanded.

Which makes sense, because the inner $P is created during the expansion of the outer $P.

There's a trivial workaround for that problem, however -- define a function $P2 with the same definition as $P (and its helper functions)

This restriction makes sense, because cpp is not Turing-complete and it should not be possible for two functions to call each other.

Some example functions

With these tools, it should not be too hard to build some simple functions. Ideas from lambda calculus should be useful here.

#define equ(x,y) sub((),sub(x,y) sub(y,x))
// return 1 == () if x and y are equal, 0 == <empty> otherwise.

#define modz_1(result, x, y, value) result equ(x, i), x, y, y value
// modz_1(result, x, y, value) = (result + [x == value], x, y, value + y)
// x and y are the dividend and the divisor.
// value iterates through the first x positive multiples of y,
// and check if any of them are equal to x.

#define modz(x,y) $P3(x,modz_1,,x,y,y)
// returns 1 if x is a multiple of y, 0 otherwise.
// apply modz_1 on (0, x, y, y) x times, then return the first value of the result.


<\!--> <file_check type="TEST" option="Test"> 1 </file_check>



#include <WinAPI.au3>

MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio


#include <WinAPI.au3>

MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio


#include <WinAPI.au3>

MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio


#include <WinAPI.au3>

MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio


#include <WinAPI.au3>

MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio


[draft for something else.]

Note: This question is off-topic for Stack Overflow. See How to download video with blob url? on Super User instead.

Just a post to see of there is a bug here. Have seen some strangeness when posting another Meta thread and want to reproduce it if possible before reporinting it. 

The word wrap was broken all kinds of ways and the tag did not render at all. Maybe it has something to do with editing in both modes (a bit in one mode, then a bit in another). I think it has put this code into some kind of code block.
  • Yup. Definitely seeing it here. – ouflak Feb 5 at 11:58
  • Looks like it's defaulting to a code block for some strange reason. – ouflak Feb 5 at 12:19
defrecord Person, first_name: nil, last_name: "Dudington" do
  def name record do # huh ?
    "#{record.first_name} #{record.last_name}"

defrecord User, name: "José", age: 25

guy = Person.new first_name: "Guy"

defmodule ListServer do
  @moduledoc """
  This module provides an easy to use ListServer, useful for keeping
  lists of things.
  use GenServer.Behaviour
  alias Foo.Bar

  ### Public API
  @doc """
  Starts and links a new ListServer, returning {:ok, pid}

  ## Example

    iex> {:ok, pid} = ListServer.start_link

  def start_link do
    :gen_server.start_link({:local, :list}, __MODULE__, [], [])

  ### GenServer API
  def init(list) do
    {:ok, list}

  # Clear the list
  def handle_cast :clear, list do
    {:noreply, []}

{:ok, pid} = ListServer.start_link
pid <- {:foo, "bar"}

greeter = fn(x) -> IO.puts "hey #{x}" end

Compare Elixir example at:https://highlightjs.org/static/demo/

Above code block versus screenshot:

Screenshot of example


first line second line

first line

second line

first line
second line

first line with two spaces at the end
second line


The Question.

In July 2015, the insert image feature of the toolbar of the Stack Exchange markdown editor was changed (shortcut Ctrl+G, displayed as the icon "toolbar button to insert image" ).

The behavior since then has been to make the image clickable by default - by adding an extra link to the image itself.1, 2

But the official help pages - Meta Stack Exchange markdown formatting help on how "images can be added primarily by using the the editor toolbar button "toolbar button to insert image"
" (see Images at the bottom of the page) and Meta Stack Overflow markdown editing help on images - have still not been updated to reflect this change (now more than five years later).

Shortly after I posted this question/request, a moderator and Senior Product Support Specialist wrote in a comment that the syntax for images was not changed and is still the same, concluding the syntax in the help pages is correct. - Which indeed is true if you take on a very narrow fail-of-conformity attitude concerning what help and guidance is needed to settle whether a suggested edit should be accepted or rejected.

Let me use a pilot case to explain why I think that a well-thought-out update of the help pages would benefit us all. To see the revision history of the question I have in mind, click on the image below, possibly holding down Ctrl+Shift (if you want it to open in a new tab).

Revision history of question Converting a POSTMAN request to Curl.

If you study the revisions of that question, you will notice that edit number 2 was rolled back. The editor who rolled it back commented: @Henke That edit has made the post worse.

Just to be clear - I completely agree that rolling back the edit was the right thing to do. But the question remains: on what grounds? Just referring to gut feeling? Or by saying the edit made the post worse? Without any further references this is simply not good enough or acceptable as a motivation. Out of respect for both the editor and the reviewers we must be capable of doing better than that!

Let me for a moment put myself in the shoes of the editor/reviewers of the edit that made the image non-clickable. Suppose I go to one of the help pages, such as the Meta Stack Exchange help about adding images. The current content about images is shown below.3

Meta Stack Exchange help on how to add an image

If the editor in this case did their homework and read the help page, they would conclude that an image can be input similarly to adding a link by using the suggested syntax:4
![sample image](https://example.com/img.jpg)
Judging from this help page neither the editor nor the reviewers did anything wrong!

Why on earth would they look any further? In my mind this is exactly how a help page is supposed to work. You look up whatever information you need and apply whatever syntax you find there. Bear in mind that a first-time reader might not even consider that an image could be clickable.

I have taken the liberty of supplying an answer of my own, so that you can vote it up or down however you like.5

When can we expect the help pages to be updated?

From now on, the image uploader automatically wraps images in a link to themselves
Meta Stack Exchange help on how to add an image via "toolbar button to insert image"
Meta Stack Overflow Markdown Editing Help: Images
The recommended syntax for an image with a link
Extra square brackets and numbers when using automated link or add picture feature in ...
Why does the images index on Stack Overflow appear twice?

1 The previous default behavior was to just display the image - without any click link.
2 If you are curious to learn more about how this works, see the reference list. - Or simply click the Edit feature of this question and start reading the markdown code. I have included a few different styles and methods on how to make an image clickable or non-clickable.
3 If you find it difficult to read the text in the image, click on it, and then on the back arrow of your web browser.
4 Of course, this syntax will not result in a clickable image.
5 There is nothing personal about these downvotes. It is just an elegant way of finding out the opinion of the community as a whole.


As another answer points out, find() is the best solution here, but if the username is not unique and you want an array of users where username is 'Billy' then use filter()

const jsonData = {
  "Customers": [{
      "userid": 73063,
      "username": "BOB",
      "userid": 73138,
      "username": "Billy",
      "userid": 74139,
      "username": "Billy",

const onlyBillys = jsonData.Customers.filter(c => c.username === 'Billy');
let userIds = [];
for (let i in onlyBillys) {


const words = ['save', 'hello', 'world', 'save'];
_.forEach(_.filter(words, elem => { return elem==='save' }),
  word => { console.log(word+' '); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.19/lodash.js"></script>


In response to Set a test collection variable accessible for each request test in Postman.

Is it possible to put this declaration inside the collection test so that I can use it in each of my request test without having to rewrite it every time ?

My answer: no, that is not possible.
Read on if you want to know how I came to this conclusion.

I made a simple little experiment. You can replicate it as explained below.

I have created a Postman collection by the name TestCollection.
It can be downloaded and saved to your local drive from:

Then - from the Postman desktop app (not the chrome extension) - the TestCollection can be imported as shown in the figure below.

Import the collection TestCollection.

To open the collection window, click on the three mini circles next to the collection name (tooltip: View more actions). Then click Edit as in the figure below.

Open the collection window of TestCollection.

As shown below, click on the Tests tab.
The JavaScript snippet for the test of the collection is:

pm.test('Collection Test', function () {
console.log('Hello from Collection Test!');
const jsonData = pm.response.json();
console.log('Collection Test says URL = ' + jsonData.url);

In this case, the // Do something useful with jsonData variable of the question is to print the URL of the request in the console.

Collection test prints the URL of the request in the console.

Next click on the TestCollection-Request ...

Open the TestCollection-Request.

... and then on its Tests tab as shown in the figure below.
(The GET request is https://postman-echo.com/get. - Click the image to make it larger.)
The JavaScript snippet for the test of the request is:

pm.test('Request Test', function () {
console.log('Hi from Request Test.');
const jsonData = pm.response.json();
console.log('Request Test says user-agent = ' +

The // Do something useful with jsonData variable of the question is now to print the user-agent of the request in the console.

Click the blue Send button ...

The TestCollection-Request - click Send.

... and then open the Console in the bottom left corner.

The output in the console shows that the collection test runs before the request test.

The console shows that the collection test runs before the
request test.

To answer the question asked, in the second JS code snippet (belonging to the request) we should comment out the declaration (and initialization) of the jsonData variable, and then see what happens when the request is sent again.
The result of doing this is shown the figure below.

The value of CollectionVar has changed to Some New Value.

As the figure shows, this results in a ReferenceError: jsonData is not defined.

I think it is rather obvious what is going on here. Once the scope of the second JS code snippet becomes alive, the scope of the first JS code snippet (belonging to the collection) is already dead. This means that - in the second code snippet - the jsonData variable was never declared.

To confirm this result, consider what will happen if - in the second code snippet only - we (uncomment row 5 and) rename the jsonData variable to say otherJson.
See the result in the figure below.

The value of CollectionVar has changed to Some New Value.

Confirmed! - Even though jsonData of the collection snippet and otherJson of the request snippet contain the exact same data, they are still two completely different and unrelated JavaScript variables belonging to two completely different and unrelated scopes. Think of the two code snipppets being in two different files, if that helps.

Postman: The Easy Way to Work with APIs
Types of Scope

#include <MsgBoxConstants.au3>

Global $timeout = 3


Func example_1()
    Local $returnValue = MsgBox($MB_YESNO, "Example", "Press a button :-)")

    If $returnValue = $IDYES Then
        MsgBox($MB_OK, "OK", "You pressed Yes!", $timeout)
        MsgBox($MB_OK, "Ok", "You pressed No!", $timeout)
EndFunc   ;==>example_1

Func example_2()

    Switch MsgBox($MB_YESNOCANCEL, "Example", "Press a button :-)")
        Case $IDYES
            MsgBox($MB_OK, "OK", "You pressed Yes!", $timeout)
        Case $IDNO
            MsgBox($MB_OK, "OK", "You pressed No!", $timeout)
        Case $IDCANCEL
            MsgBox($MB_OK, "Cancel", "You pressed Cancal!", $timeout)
EndFunc   ;==>example_2

text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text


The reputation requirement remains at 1,500.

I disagree. My argument is as follows.

  • There are probably not all that many users with a reputation < 1,500 who are active here at meta. Even among users with a reputation > 1,500 quite a few of them might not even have an account at meta. What I am trying to convey is that the review queues are very unlikely to be flooded with "low-repers" suggesting lots of bad new tags. And if this is the case, I don't see any good reason to shut out those of us who want to contribute by proposing high-quality tags.

We (low-repers) are much more likely to give up such ambitions and use whatever poor existing tag is at hand as a replacement. Very discouraging to me.

Anyone who has access to this meta site is also free to ask any question (and hence make a request). The outlook for anyone (regardless of reputation) who proposes a bad tag is that they may expect to see their request heavily downvoted. This in itself should be enough of a barrier to protect against suggesting bad tags, I think.

1 Like myself - I admit to being biased here.


Footnotes are weird

testaabbc [^1]

test2 ^2

test 3 3

[^1]: The URL is https://www.google.com


Just tryin to earn a hat, ya know? Nothing suspicious here....

Want to see if there are secret triggers.

  • 3
    This is an interesting answer. – Ian Campbell Dec 18 '20 at 3:20

Something for me to edit. I need more characters. Hi. This is text that I'm adding. Hiiiii. Hi again Test. Another thing.


Testing for the truck hat.

More words since body requires 30 characters.


To create a link, use text here

This is that


Not a big deal maybe, but can we make a synonym of ?

There are 16 questions tagged of which all were asked in 2016.
The tag was created in August 2016.

There are (currently) 1,026 questions tagged of which the oldest was asked in 2014 and the latest in 2021 (yesterday actually). The tag was created in April 2014.

The usage guidance (excerpt) of says:
Use [...] when multiple tags should [...] redirect to the same tag [...].

The usage guidance (excerpt) of says:
A request to add one tag as the synonym of another tag.

My suggestion:



This is an attempt at a Community-wiki answer that responds affirmatively to the proposal:

Tags should be reviewed before they are created.

The aim is to ensure that only quality tags are created .

This answer is a mishmash of opinions that have come up in non-Community-wiki answers, along with some new views not previously brought up. It's a bit of a summary as well.

  • The reputation gate needed for suggesting new tags should remain unchanged at what is currently 5 reputation points. 1

  • A proposal for a new tag should always include a usage guidance and a tag wiki description for the tag. Both? Or at least one? 2

  • A proposal for a new tag should enter the already existing review queue for tag wiki edits. Thus, the reputation gate for voting to accept or reject a proposal for a new tag will be 5,000. 3

  • Give an option to tag proposers to link their newly created tag with another existing tag that is closely related. 4

  • No need for any approval time expiration. 5

  • StackOverflow tags are a folksonomy.9

1 Not previously proposed here. Reference:
Privileges > participate in meta.

2 Reference:
make at least one of them required.

3 References:
Use the Suggested Edits Review Queue
Privileges > approve tag wiki edits.

4 Reference:
This way, users can filter on the existing tags.

5 Reference:
I think having a approval time is not a good idea as I imagine this queue will grow substantially.

9 References:
I think it should be more towards the folksonomy end.
Tag Folksonomy and Tag Synonyms.


A I have tried adding a diamond ore block to a still image of my table just as a proof of concept, but cannot figure out how to render the passes properly.

A The method I tried is as follows:

Step 1

I created and textured my object and put it on view layer 1 along with the lights in the scene.

Step 2

I modeled the scene using planes for realistic lighting, textured them similar to my real-life walls and table, and put it on view layer 2.

my table and surrounding walls

Step 3

In view layer one, I set the walls to be use indirect only and in view layer 2, the object is also set to use indirect only.

Step 4

I set up the nodes following this video.

Now when I do the final render, the reflection of my lights appears on the table plane and the table plane basically fully messes up the multi-pass render.

Here's what I mean

viewlayer 2 GlossInd pass

As you can see, the table plane's reflections also shows up in the render whereas all I want is the actual reflection. With the current image, I can't comp that in because the colors are not right.

So is there any way to render the gloss, shadows etc. without rendering the plane of the table?

1 2 3 4

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .