Naming the result of a source block Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Can I use elisp code make a table and insert a variable into cell?Indentation of source block resultFontify result of source block in org-modeHow to have org-babel treat the first line of a table result as a header?Org-mode: pipe source block output as stdin to next source blockHow to append header arguments to result code src block?How to insert a result of an org-mode source block as part of the document's syntax?Org-mode: Get src block result inside block definition for clocktableget contents of source blockCatching warnings from sh source blockHow to generate the result file for dot source block and include it with another path in org-mode?
In predicate logic, does existential quantification (∃) include universal quantification (∀), i.e. can 'some' imply 'all'?
Is it true that "carbohydrates are of no use for the basal metabolic need"?
Is it fair for a professor to grade us on the possession of past papers?
Why did the Falcon Heavy center core fall off the ASDS OCISLY barge?
porting install scripts : can rpm replace apt?
The logistics of corpse disposal
How to find all the available tools in mac terminal?
51k Euros annually for a family of 4 in Berlin: Is it enough?
Can I cast Passwall to drop an enemy into a 20-foot pit?
What's the purpose of writing one's academic biography in the third person?
How does the particle を relate to the verb 行く in the structure「A を + B に行く」?
How do I stop a creek from eroding my steep embankment?
How can I make names more distinctive without making them longer?
Using et al. for a last / senior author rather than for a first author
What are the pros and cons of Aerospike nosecones?
3 doors, three guards, one stone
What is Arya's weapon design?
How does debian/ubuntu knows a package has a updated version
What does the "x" in "x86" represent?
Why did the rest of the Eastern Bloc not invade Yugoslavia?
Do I really need recursive chmod to restrict access to a folder?
Why aren't air breathing engines used as small first stages
How to answer "Have you ever been terminated?"
When do you get frequent flier miles - when you buy, or when you fly?
Naming the result of a source block
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Can I use elisp code make a table and insert a variable into cell?Indentation of source block resultFontify result of source block in org-modeHow to have org-babel treat the first line of a table result as a header?Org-mode: pipe source block output as stdin to next source blockHow to append header arguments to result code src block?How to insert a result of an org-mode source block as part of the document's syntax?Org-mode: Get src block result inside block definition for clocktableget contents of source blockCatching warnings from sh source blockHow to generate the result file for dot source block and include it with another path in org-mode?
The following question has been asked (in slightly different form) in a comment of another answer:
Is it possible to name the results of a source block with #+NAME: foobar
(or equivalently but old-style: #+TBLNAME: foobar
) rather than #+RESULTS: foobar
?
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
org-babel org-table
add a comment |
The following question has been asked (in slightly different form) in a comment of another answer:
Is it possible to name the results of a source block with #+NAME: foobar
(or equivalently but old-style: #+TBLNAME: foobar
) rather than #+RESULTS: foobar
?
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
org-babel org-table
add a comment |
The following question has been asked (in slightly different form) in a comment of another answer:
Is it possible to name the results of a source block with #+NAME: foobar
(or equivalently but old-style: #+TBLNAME: foobar
) rather than #+RESULTS: foobar
?
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
org-babel org-table
The following question has been asked (in slightly different form) in a comment of another answer:
Is it possible to name the results of a source block with #+NAME: foobar
(or equivalently but old-style: #+TBLNAME: foobar
) rather than #+RESULTS: foobar
?
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
org-babel org-table
org-babel org-table
asked 5 hours ago
TobiasTobias
15.2k11035
15.2k11035
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
One can add the following lines below unnamed source blocks (with bar
replaced by the intended table name):
#+NAME: bar
#+RESULTS:
||
The line with #+name: bar
is preserved after the evaluation of the source block and ||
is replaced with the resulting table.
Note, that the name bar
really names the table and not the source block.
That has the following consequences (probably among others I am not aware of at the moment):
If you refer to the table name in the header arguments of another source block, say
buh
, then thebar
source block is not reevaluated whenbuh
is evaluated. The table is not updated but taken as argument forbuh
as it is.
That is usually more an disadvantage than an advantage.
One can callorg-babel-execute-buffer
to get correctly updated results.If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.
In that case it is a big advantage that you can alternatively refer to the resulting table by its name.
If the source block is named, e.g., foo
replace #+RESULTS:
with #+RESULTS: foo
.
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+TBLNAME: bar
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
#+CALL: foo(alpha=bar[2,3])
#+NAME: buh
#+RESULTS:
| angle | symbol | value | max | min |
|-------+----------+-------+--------------------+-------------------|
| toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
| c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |
The example demonstrates the update problem. The header variable alpha
had the value 1 at the first evaluation of foo
. Afterwards the value was changed to 2 but the source block foo
was not evaluated again.
The evaluation of the #+CALL
statement does use the table value 1.1 at cell 2,3
directly without reevaluation of foo
.
Quite informative, indeed. But there seems to be no way to not have the line#+RESULTS:
in the results. One interesting question is, how is the system handling alet*
form and turning it into a table? Is this something to do with:results value
? But then if I do#+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get(("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.
– 147pm
26 mins ago
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "583"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2femacs.stackexchange.com%2fquestions%2f48972%2fnaming-the-result-of-a-source-block%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
One can add the following lines below unnamed source blocks (with bar
replaced by the intended table name):
#+NAME: bar
#+RESULTS:
||
The line with #+name: bar
is preserved after the evaluation of the source block and ||
is replaced with the resulting table.
Note, that the name bar
really names the table and not the source block.
That has the following consequences (probably among others I am not aware of at the moment):
If you refer to the table name in the header arguments of another source block, say
buh
, then thebar
source block is not reevaluated whenbuh
is evaluated. The table is not updated but taken as argument forbuh
as it is.
That is usually more an disadvantage than an advantage.
One can callorg-babel-execute-buffer
to get correctly updated results.If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.
In that case it is a big advantage that you can alternatively refer to the resulting table by its name.
If the source block is named, e.g., foo
replace #+RESULTS:
with #+RESULTS: foo
.
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+TBLNAME: bar
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
#+CALL: foo(alpha=bar[2,3])
#+NAME: buh
#+RESULTS:
| angle | symbol | value | max | min |
|-------+----------+-------+--------------------+-------------------|
| toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
| c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |
The example demonstrates the update problem. The header variable alpha
had the value 1 at the first evaluation of foo
. Afterwards the value was changed to 2 but the source block foo
was not evaluated again.
The evaluation of the #+CALL
statement does use the table value 1.1 at cell 2,3
directly without reevaluation of foo
.
Quite informative, indeed. But there seems to be no way to not have the line#+RESULTS:
in the results. One interesting question is, how is the system handling alet*
form and turning it into a table? Is this something to do with:results value
? But then if I do#+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get(("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.
– 147pm
26 mins ago
add a comment |
One can add the following lines below unnamed source blocks (with bar
replaced by the intended table name):
#+NAME: bar
#+RESULTS:
||
The line with #+name: bar
is preserved after the evaluation of the source block and ||
is replaced with the resulting table.
Note, that the name bar
really names the table and not the source block.
That has the following consequences (probably among others I am not aware of at the moment):
If you refer to the table name in the header arguments of another source block, say
buh
, then thebar
source block is not reevaluated whenbuh
is evaluated. The table is not updated but taken as argument forbuh
as it is.
That is usually more an disadvantage than an advantage.
One can callorg-babel-execute-buffer
to get correctly updated results.If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.
In that case it is a big advantage that you can alternatively refer to the resulting table by its name.
If the source block is named, e.g., foo
replace #+RESULTS:
with #+RESULTS: foo
.
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+TBLNAME: bar
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
#+CALL: foo(alpha=bar[2,3])
#+NAME: buh
#+RESULTS:
| angle | symbol | value | max | min |
|-------+----------+-------+--------------------+-------------------|
| toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
| c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |
The example demonstrates the update problem. The header variable alpha
had the value 1 at the first evaluation of foo
. Afterwards the value was changed to 2 but the source block foo
was not evaluated again.
The evaluation of the #+CALL
statement does use the table value 1.1 at cell 2,3
directly without reevaluation of foo
.
Quite informative, indeed. But there seems to be no way to not have the line#+RESULTS:
in the results. One interesting question is, how is the system handling alet*
form and turning it into a table? Is this something to do with:results value
? But then if I do#+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get(("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.
– 147pm
26 mins ago
add a comment |
One can add the following lines below unnamed source blocks (with bar
replaced by the intended table name):
#+NAME: bar
#+RESULTS:
||
The line with #+name: bar
is preserved after the evaluation of the source block and ||
is replaced with the resulting table.
Note, that the name bar
really names the table and not the source block.
That has the following consequences (probably among others I am not aware of at the moment):
If you refer to the table name in the header arguments of another source block, say
buh
, then thebar
source block is not reevaluated whenbuh
is evaluated. The table is not updated but taken as argument forbuh
as it is.
That is usually more an disadvantage than an advantage.
One can callorg-babel-execute-buffer
to get correctly updated results.If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.
In that case it is a big advantage that you can alternatively refer to the resulting table by its name.
If the source block is named, e.g., foo
replace #+RESULTS:
with #+RESULTS: foo
.
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+TBLNAME: bar
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
#+CALL: foo(alpha=bar[2,3])
#+NAME: buh
#+RESULTS:
| angle | symbol | value | max | min |
|-------+----------+-------+--------------------+-------------------|
| toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
| c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |
The example demonstrates the update problem. The header variable alpha
had the value 1 at the first evaluation of foo
. Afterwards the value was changed to 2 but the source block foo
was not evaluated again.
The evaluation of the #+CALL
statement does use the table value 1.1 at cell 2,3
directly without reevaluation of foo
.
One can add the following lines below unnamed source blocks (with bar
replaced by the intended table name):
#+NAME: bar
#+RESULTS:
||
The line with #+name: bar
is preserved after the evaluation of the source block and ||
is replaced with the resulting table.
Note, that the name bar
really names the table and not the source block.
That has the following consequences (probably among others I am not aware of at the moment):
If you refer to the table name in the header arguments of another source block, say
buh
, then thebar
source block is not reevaluated whenbuh
is evaluated. The table is not updated but taken as argument forbuh
as it is.
That is usually more an disadvantage than an advantage.
One can callorg-babel-execute-buffer
to get correctly updated results.If the source block returns a string containing the formatted org-table rather than table data referring to the source block name in header variables gets you the string and not the table data. That is most often unwanted.
In that case it is a big advantage that you can alternatively refer to the resulting table by its name.
If the source block is named, e.g., foo
replace #+RESULTS:
with #+RESULTS: foo
.
Example:
#+NAME: foo
#+BEGIN_SRC emacs-lisp :var alpha=2 :results value
(let* ((tol 0.1)
(alpha_1 (- 90 alpha)))
`(("angle" "symbol" "value" "max" "min") hline
("toe" "\alpha" ,alpha ,(+ alpha tol) ,(- alpha tol))
("c" "\alpha_1" ,alpha_1 ,(+ alpha_1 tol) ,(- alpha_1 tol))
))
#+END_SRC
#+TBLNAME: bar
#+RESULTS: foo
| angle | symbol | value | max | min |
|-------+----------+-------+------+------|
| toe | alpha | 1 | 1.1 | 0.9 |
| c | alpha_1 | 89 | 89.1 | 88.9 |
#+CALL: foo(alpha=bar[2,3])
#+NAME: buh
#+RESULTS:
| angle | symbol | value | max | min |
|-------+----------+-------+--------------------+-------------------|
| toe | alpha | 1.1 | 1.2000000000000002 | 1.0 |
| c | alpha_1 | 88.9 | 89.0 | 88.80000000000001 |
The example demonstrates the update problem. The header variable alpha
had the value 1 at the first evaluation of foo
. Afterwards the value was changed to 2 but the source block foo
was not evaluated again.
The evaluation of the #+CALL
statement does use the table value 1.1 at cell 2,3
directly without reevaluation of foo
.
edited 4 hours ago
answered 5 hours ago
TobiasTobias
15.2k11035
15.2k11035
Quite informative, indeed. But there seems to be no way to not have the line#+RESULTS:
in the results. One interesting question is, how is the system handling alet*
form and turning it into a table? Is this something to do with:results value
? But then if I do#+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get(("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.
– 147pm
26 mins ago
add a comment |
Quite informative, indeed. But there seems to be no way to not have the line#+RESULTS:
in the results. One interesting question is, how is the system handling alet*
form and turning it into a table? Is this something to do with:results value
? But then if I do#+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get(("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.
– 147pm
26 mins ago
Quite informative, indeed. But there seems to be no way to not have the line
#+RESULTS:
in the results. One interesting question is, how is the system handling a let*
form and turning it into a table? Is this something to do with :results value
? But then if I do #+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get (("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.– 147pm
26 mins ago
Quite informative, indeed. But there seems to be no way to not have the line
#+RESULTS:
in the results. One interesting question is, how is the system handling a let*
form and turning it into a table? Is this something to do with :results value
? But then if I do #+begin_src emacs-lisp :var table=bar (message "%S" table) #+end_src
I get (("toe" "\alpha" 2 2.1 1.9) ("c" "$\alpha_1$" 88 88.1 87.9))
i.e., it's left out the title and horizontal line, i.e.,i.e., not completely reversible? Interesting stuff, nonetheless.– 147pm
26 mins ago
add a comment |
Thanks for contributing an answer to Emacs Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2femacs.stackexchange.com%2fquestions%2f48972%2fnaming-the-result-of-a-source-block%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown