Understanding multidimensional, associative array's in Groovy2019 Community Moderator ElectionHow to check if PHP array is associative or sequential?How are associative arrays implemented in PHP?Preferred method to store PHP arrays (json_encode vs serialize)Get first key in a (possibly) associative array?Scala vs. Groovy vs. ClojureCorrectly pass a Groovy list to Javascript code in GSPPosting a File and Associated Data to a RESTful WebService preferably as JSONConvert PHP object to associative arrayCreating Data table from tabular report using GroovySelecting last element in JavaScript array
Is it possible to stack the damage done by the Absorb Elements spell?
Should I be concerned about student access to a test bank?
Relation between independence and correlation of uniform random variables
If "dar" means "to give", what does "daros" mean?
Does .bashrc contain syntax errors?
When did antialiasing start being available?
Do I need to be arrogant to get ahead?
Deletion of copy-ctor & copy-assignment - public, private or protected?
What does "^L" mean in C?
두음법칙 - When did North and South diverge in pronunciation of initial ㄹ?
Print a physical multiplication table
Is there a hypothetical scenario that would make Earth uninhabitable for humans, but not for (the majority of) other animals?
Can you move over difficult terrain with only 5 feet of movement?
Am I eligible for the Eurail Youth pass? I am 27.5 years old
Worshiping one God at a time?
What does "Four-F." mean?
Why is indicated airspeed rather than ground speed used during the takeoff roll?
In Aliens, how many people were on LV-426 before the Marines arrived?
Probably overheated black color SMD pads
Recruiter wants very extensive technical details about all of my previous work
Loading the leaflet Map in Lightning Web Component
I seem to dance, I am not a dancer. Who am I?
Light propagating through a sound wave
Using Past-Perfect interchangeably with the Past Continuous
Understanding multidimensional, associative array's in Groovy
2019 Community Moderator ElectionHow to check if PHP array is associative or sequential?How are associative arrays implemented in PHP?Preferred method to store PHP arrays (json_encode vs serialize)Get first key in a (possibly) associative array?Scala vs. Groovy vs. ClojureCorrectly pass a Groovy list to Javascript code in GSPPosting a File and Associated Data to a RESTful WebService preferably as JSONConvert PHP object to associative arrayCreating Data table from tabular report using GroovySelecting last element in JavaScript array
First time posting and I am having some difficulty understanding groovy script arrays? (not sure if they are list, arrays, or maps). I have typically coded in PHP and am used to associating PHP multidimensional arrays as a (key => value) association. I am not sure if I am overlooking that flexibility in Groovy. It seems like you either have to pick either a map/array combo or a list.
What I am trying to accomplish is I have another associative array that is static I would like to have associated with a key -> value. (e.g. 1 - Tim, 2 - Greg, 3 - Bob, etc...)
I have another associative array that is total dynamic. This needs to be nested within the associative array that I stated above because in this list it will contain task information that the current user has worked on. (e.g. under Tim there he might have worked on 3 unrelated task at a different time and the statuses of those task might vary. So this should correlate to something like this [Task 1, 3/6/19, Completed Task], [Task 2, 3/5/19, Completed Task], [Task 3, 2/5/19, In Progress Task]. Someone named Greg might have instead 4 task.
So my question is what is the best data structure to use for this? How do I add data to this data structure effectively?
I'm sorry if these seem like bare-bones basic questions. Again, I'm new to Groovy.
java arrays grails groovy
add a comment |
First time posting and I am having some difficulty understanding groovy script arrays? (not sure if they are list, arrays, or maps). I have typically coded in PHP and am used to associating PHP multidimensional arrays as a (key => value) association. I am not sure if I am overlooking that flexibility in Groovy. It seems like you either have to pick either a map/array combo or a list.
What I am trying to accomplish is I have another associative array that is static I would like to have associated with a key -> value. (e.g. 1 - Tim, 2 - Greg, 3 - Bob, etc...)
I have another associative array that is total dynamic. This needs to be nested within the associative array that I stated above because in this list it will contain task information that the current user has worked on. (e.g. under Tim there he might have worked on 3 unrelated task at a different time and the statuses of those task might vary. So this should correlate to something like this [Task 1, 3/6/19, Completed Task], [Task 2, 3/5/19, Completed Task], [Task 3, 2/5/19, In Progress Task]. Someone named Greg might have instead 4 task.
So my question is what is the best data structure to use for this? How do I add data to this data structure effectively?
I'm sorry if these seem like bare-bones basic questions. Again, I'm new to Groovy.
java arrays grails groovy
add a comment |
First time posting and I am having some difficulty understanding groovy script arrays? (not sure if they are list, arrays, or maps). I have typically coded in PHP and am used to associating PHP multidimensional arrays as a (key => value) association. I am not sure if I am overlooking that flexibility in Groovy. It seems like you either have to pick either a map/array combo or a list.
What I am trying to accomplish is I have another associative array that is static I would like to have associated with a key -> value. (e.g. 1 - Tim, 2 - Greg, 3 - Bob, etc...)
I have another associative array that is total dynamic. This needs to be nested within the associative array that I stated above because in this list it will contain task information that the current user has worked on. (e.g. under Tim there he might have worked on 3 unrelated task at a different time and the statuses of those task might vary. So this should correlate to something like this [Task 1, 3/6/19, Completed Task], [Task 2, 3/5/19, Completed Task], [Task 3, 2/5/19, In Progress Task]. Someone named Greg might have instead 4 task.
So my question is what is the best data structure to use for this? How do I add data to this data structure effectively?
I'm sorry if these seem like bare-bones basic questions. Again, I'm new to Groovy.
java arrays grails groovy
First time posting and I am having some difficulty understanding groovy script arrays? (not sure if they are list, arrays, or maps). I have typically coded in PHP and am used to associating PHP multidimensional arrays as a (key => value) association. I am not sure if I am overlooking that flexibility in Groovy. It seems like you either have to pick either a map/array combo or a list.
What I am trying to accomplish is I have another associative array that is static I would like to have associated with a key -> value. (e.g. 1 - Tim, 2 - Greg, 3 - Bob, etc...)
I have another associative array that is total dynamic. This needs to be nested within the associative array that I stated above because in this list it will contain task information that the current user has worked on. (e.g. under Tim there he might have worked on 3 unrelated task at a different time and the statuses of those task might vary. So this should correlate to something like this [Task 1, 3/6/19, Completed Task], [Task 2, 3/5/19, Completed Task], [Task 3, 2/5/19, In Progress Task]. Someone named Greg might have instead 4 task.
So my question is what is the best data structure to use for this? How do I add data to this data structure effectively?
I'm sorry if these seem like bare-bones basic questions. Again, I'm new to Groovy.
java arrays grails groovy
java arrays grails groovy
asked Mar 6 at 22:12
The Chem XThe Chem X
174
174
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Map model=[:]
List names=['Tim','Greg','Bob']
names?.each name->
//dynamically call something that returns a list
// model."$name"= getSomeList(name)
//get a list assign it the above list maybe something like this
// List someTasks = ['task1','task2']
// model."$name"= someTasks
//or shorter
// model."$name"= ['task1','task2']
// 1 element multi element list
if (name=='Bob')
model."$name"= ['task1']
else
model."$name"= ['task1','task2']
//This iterates through map and its value being another iteration
model?.each key,value ->
println "working on $key"
value?.each v-
println "$key has task $v"
Try some of above may help you understand it better and yes you can use <<
Map model=[:]
model << ['bob':['task1']]
model << ['Greg':['task1','task2']]
You could either map like latter or above through an iteration further lists/maps within that list so for example:
model << ['Greg':[
'task1' : ['do thing1','do thing2'],
'task2': [ 'do xyz', 'do abc']
]
]
//This iterates through map and its value being another map with an iteration
model?.each key,value ->
println "working on $key"
value?.each k, v->
println "$key has task $k"
v?.each vv ->
println "$key has task $k which needs to do $vv"
Using collect
you could really simply all the each iterations which is a lot more verbose, using collection you could make it into one line:
names?.collect[it:getSomeList(it)]
//sometimes you need to flatten in this case I dont think you would
names?.collect[it:seriesHotelList(it)]?.flatten()
List getSomeList(String name)
return ['task1','task2']
add a comment |
The basic data structures that are key/value lookups are just Java Map
s (usually the LinkedHashMap
implementation in Groovy). Your first-level association seems to be something like a Map<Integer, Employee>
. The nested one that you are calling "total dynamic" seems instead to really be a structured class, and you definitely should learn how Java/Groovy classes work. This seems to be something like what you're looking for:
class Employee
int employeeId
String name
List<Task> tasks
enum TaskStatus
PENDING,
IN_PROGRESS,
COMPLETED
class Task
int taskNumber
LocalDate date // java.time.LocalDate
TaskStatus status
By the way, Groovy is a great language and my preferred JVM language, but it's better to make sure you understand the basics first. I recommend using @CompileStatic
on all of your classes whenever possible and making sure you understand any cases where you can't use it. This will help to prevent errors and missteps as you learn.
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.
– chrylis
Mar 6 at 22:55
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f55033009%2funderstanding-multidimensional-associative-arrays-in-groovy%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Map model=[:]
List names=['Tim','Greg','Bob']
names?.each name->
//dynamically call something that returns a list
// model."$name"= getSomeList(name)
//get a list assign it the above list maybe something like this
// List someTasks = ['task1','task2']
// model."$name"= someTasks
//or shorter
// model."$name"= ['task1','task2']
// 1 element multi element list
if (name=='Bob')
model."$name"= ['task1']
else
model."$name"= ['task1','task2']
//This iterates through map and its value being another iteration
model?.each key,value ->
println "working on $key"
value?.each v-
println "$key has task $v"
Try some of above may help you understand it better and yes you can use <<
Map model=[:]
model << ['bob':['task1']]
model << ['Greg':['task1','task2']]
You could either map like latter or above through an iteration further lists/maps within that list so for example:
model << ['Greg':[
'task1' : ['do thing1','do thing2'],
'task2': [ 'do xyz', 'do abc']
]
]
//This iterates through map and its value being another map with an iteration
model?.each key,value ->
println "working on $key"
value?.each k, v->
println "$key has task $k"
v?.each vv ->
println "$key has task $k which needs to do $vv"
Using collect
you could really simply all the each iterations which is a lot more verbose, using collection you could make it into one line:
names?.collect[it:getSomeList(it)]
//sometimes you need to flatten in this case I dont think you would
names?.collect[it:seriesHotelList(it)]?.flatten()
List getSomeList(String name)
return ['task1','task2']
add a comment |
Map model=[:]
List names=['Tim','Greg','Bob']
names?.each name->
//dynamically call something that returns a list
// model."$name"= getSomeList(name)
//get a list assign it the above list maybe something like this
// List someTasks = ['task1','task2']
// model."$name"= someTasks
//or shorter
// model."$name"= ['task1','task2']
// 1 element multi element list
if (name=='Bob')
model."$name"= ['task1']
else
model."$name"= ['task1','task2']
//This iterates through map and its value being another iteration
model?.each key,value ->
println "working on $key"
value?.each v-
println "$key has task $v"
Try some of above may help you understand it better and yes you can use <<
Map model=[:]
model << ['bob':['task1']]
model << ['Greg':['task1','task2']]
You could either map like latter or above through an iteration further lists/maps within that list so for example:
model << ['Greg':[
'task1' : ['do thing1','do thing2'],
'task2': [ 'do xyz', 'do abc']
]
]
//This iterates through map and its value being another map with an iteration
model?.each key,value ->
println "working on $key"
value?.each k, v->
println "$key has task $k"
v?.each vv ->
println "$key has task $k which needs to do $vv"
Using collect
you could really simply all the each iterations which is a lot more verbose, using collection you could make it into one line:
names?.collect[it:getSomeList(it)]
//sometimes you need to flatten in this case I dont think you would
names?.collect[it:seriesHotelList(it)]?.flatten()
List getSomeList(String name)
return ['task1','task2']
add a comment |
Map model=[:]
List names=['Tim','Greg','Bob']
names?.each name->
//dynamically call something that returns a list
// model."$name"= getSomeList(name)
//get a list assign it the above list maybe something like this
// List someTasks = ['task1','task2']
// model."$name"= someTasks
//or shorter
// model."$name"= ['task1','task2']
// 1 element multi element list
if (name=='Bob')
model."$name"= ['task1']
else
model."$name"= ['task1','task2']
//This iterates through map and its value being another iteration
model?.each key,value ->
println "working on $key"
value?.each v-
println "$key has task $v"
Try some of above may help you understand it better and yes you can use <<
Map model=[:]
model << ['bob':['task1']]
model << ['Greg':['task1','task2']]
You could either map like latter or above through an iteration further lists/maps within that list so for example:
model << ['Greg':[
'task1' : ['do thing1','do thing2'],
'task2': [ 'do xyz', 'do abc']
]
]
//This iterates through map and its value being another map with an iteration
model?.each key,value ->
println "working on $key"
value?.each k, v->
println "$key has task $k"
v?.each vv ->
println "$key has task $k which needs to do $vv"
Using collect
you could really simply all the each iterations which is a lot more verbose, using collection you could make it into one line:
names?.collect[it:getSomeList(it)]
//sometimes you need to flatten in this case I dont think you would
names?.collect[it:seriesHotelList(it)]?.flatten()
List getSomeList(String name)
return ['task1','task2']
Map model=[:]
List names=['Tim','Greg','Bob']
names?.each name->
//dynamically call something that returns a list
// model."$name"= getSomeList(name)
//get a list assign it the above list maybe something like this
// List someTasks = ['task1','task2']
// model."$name"= someTasks
//or shorter
// model."$name"= ['task1','task2']
// 1 element multi element list
if (name=='Bob')
model."$name"= ['task1']
else
model."$name"= ['task1','task2']
//This iterates through map and its value being another iteration
model?.each key,value ->
println "working on $key"
value?.each v-
println "$key has task $v"
Try some of above may help you understand it better and yes you can use <<
Map model=[:]
model << ['bob':['task1']]
model << ['Greg':['task1','task2']]
You could either map like latter or above through an iteration further lists/maps within that list so for example:
model << ['Greg':[
'task1' : ['do thing1','do thing2'],
'task2': [ 'do xyz', 'do abc']
]
]
//This iterates through map and its value being another map with an iteration
model?.each key,value ->
println "working on $key"
value?.each k, v->
println "$key has task $k"
v?.each vv ->
println "$key has task $k which needs to do $vv"
Using collect
you could really simply all the each iterations which is a lot more verbose, using collection you could make it into one line:
names?.collect[it:getSomeList(it)]
//sometimes you need to flatten in this case I dont think you would
names?.collect[it:seriesHotelList(it)]?.flatten()
List getSomeList(String name)
return ['task1','task2']
edited Mar 11 at 10:14
answered Mar 7 at 11:04
VahidVahid
6,32621839
6,32621839
add a comment |
add a comment |
The basic data structures that are key/value lookups are just Java Map
s (usually the LinkedHashMap
implementation in Groovy). Your first-level association seems to be something like a Map<Integer, Employee>
. The nested one that you are calling "total dynamic" seems instead to really be a structured class, and you definitely should learn how Java/Groovy classes work. This seems to be something like what you're looking for:
class Employee
int employeeId
String name
List<Task> tasks
enum TaskStatus
PENDING,
IN_PROGRESS,
COMPLETED
class Task
int taskNumber
LocalDate date // java.time.LocalDate
TaskStatus status
By the way, Groovy is a great language and my preferred JVM language, but it's better to make sure you understand the basics first. I recommend using @CompileStatic
on all of your classes whenever possible and making sure you understand any cases where you can't use it. This will help to prevent errors and missteps as you learn.
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.
– chrylis
Mar 6 at 22:55
add a comment |
The basic data structures that are key/value lookups are just Java Map
s (usually the LinkedHashMap
implementation in Groovy). Your first-level association seems to be something like a Map<Integer, Employee>
. The nested one that you are calling "total dynamic" seems instead to really be a structured class, and you definitely should learn how Java/Groovy classes work. This seems to be something like what you're looking for:
class Employee
int employeeId
String name
List<Task> tasks
enum TaskStatus
PENDING,
IN_PROGRESS,
COMPLETED
class Task
int taskNumber
LocalDate date // java.time.LocalDate
TaskStatus status
By the way, Groovy is a great language and my preferred JVM language, but it's better to make sure you understand the basics first. I recommend using @CompileStatic
on all of your classes whenever possible and making sure you understand any cases where you can't use it. This will help to prevent errors and missteps as you learn.
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.
– chrylis
Mar 6 at 22:55
add a comment |
The basic data structures that are key/value lookups are just Java Map
s (usually the LinkedHashMap
implementation in Groovy). Your first-level association seems to be something like a Map<Integer, Employee>
. The nested one that you are calling "total dynamic" seems instead to really be a structured class, and you definitely should learn how Java/Groovy classes work. This seems to be something like what you're looking for:
class Employee
int employeeId
String name
List<Task> tasks
enum TaskStatus
PENDING,
IN_PROGRESS,
COMPLETED
class Task
int taskNumber
LocalDate date // java.time.LocalDate
TaskStatus status
By the way, Groovy is a great language and my preferred JVM language, but it's better to make sure you understand the basics first. I recommend using @CompileStatic
on all of your classes whenever possible and making sure you understand any cases where you can't use it. This will help to prevent errors and missteps as you learn.
The basic data structures that are key/value lookups are just Java Map
s (usually the LinkedHashMap
implementation in Groovy). Your first-level association seems to be something like a Map<Integer, Employee>
. The nested one that you are calling "total dynamic" seems instead to really be a structured class, and you definitely should learn how Java/Groovy classes work. This seems to be something like what you're looking for:
class Employee
int employeeId
String name
List<Task> tasks
enum TaskStatus
PENDING,
IN_PROGRESS,
COMPLETED
class Task
int taskNumber
LocalDate date // java.time.LocalDate
TaskStatus status
By the way, Groovy is a great language and my preferred JVM language, but it's better to make sure you understand the basics first. I recommend using @CompileStatic
on all of your classes whenever possible and making sure you understand any cases where you can't use it. This will help to prevent errors and missteps as you learn.
edited Mar 6 at 22:38
answered Mar 6 at 22:33
chrylischrylis
51.7k1686118
51.7k1686118
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.
– chrylis
Mar 6 at 22:55
add a comment |
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.
– chrylis
Mar 6 at 22:55
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
I'm sorry but all I have seen so far for adding to the map's is a value usually done by using <<. How would I add something like those values in to that map. My example that I am asking for is actually wrong. I want something more like entry 1 : (id - 1, name - Tim) entry 2 : (id - 2, name - Greg)
– The Chem X
Mar 6 at 22:48
@TheChemX Use real classes. Groovy makes this really easy:
new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.– chrylis
Mar 6 at 22:55
@TheChemX Use real classes. Groovy makes this really easy:
new Employee(employeeId: 1, name: "Tim")
. This is a critical concept in JVM languages and you need to learn about it.– chrylis
Mar 6 at 22:55
add a comment |
Thanks for contributing an answer to Stack Overflow!
- 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%2fstackoverflow.com%2fquestions%2f55033009%2funderstanding-multidimensional-associative-arrays-in-groovy%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