Skip to content

Instantly share code, notes, and snippets.

@pbkhrv
Last active February 6, 2016 23:31
Show Gist options
  • Save pbkhrv/e95984c0ae207978f855 to your computer and use it in GitHub Desktop.
Save pbkhrv/e95984c0ae207978f855 to your computer and use it in GitHub Desktop.
Sketch of possible text representations of a getguesstimate.com spreadsheet
Naive thinking of ways to represent @getguesstimate spreadsheets as text....
Using http://www.getguesstimate.com/models/314 as an example
in YML
count_meltdowns:
label: Number of meltdowns
formula: normal(0,2) # distributions use function notation?
minutes_per_meltdown:
label: Minutes per meltdown # if label is skipped, split/capitalize node id to save on typing
formula: uniform(3,13)
total_meltdown_time:
formula: count_meltdowns * minutes_per_meltdown # can also force everthing into function notation
reasoning: |
some explanation here
yml allows multiline strings
and you get parsing of these for free
S expressions or Clojure syntax could be fun too, but not as (general) user-friendly, maybe
(defnode number-meltdowns
:label "Number of meltdowns"
(uniform-dist 0 2))
(defnode minutes-per-meltdown
:label "Minutes per meltdown"
:formula (uniform-dist 3 13))
(defnode total-meltdown-time
(* number-meltdowns minutes-per-meltdown))
@OAGr
Copy link

OAGr commented Feb 6, 2016

Now that I think about it, why did you originally want this feature? If the goal is to have text files that can be converted into Guesstimate models, that's a lot easier than having ones that are interoperable (can be converted back and forth). There's already a private API and we've had someone else try it; with that we could have a lot more flexibility for anyone to make their own format method and have that convert to a model.

Agreed that it would make sense to have data as part of other files, that could work.

One limitation of this is that it would make dependencies difficult; the longer term vision for Guesstimate is for it to be a bit like a wiki, where some models could reference data from other models or the internet. This makes it much less repo like, but there may be some clever ways to get much of the best of both worlds. Programmers have a lot of ways of dealing with dependencies, but it would definitely be a fair bit of work to do all that dependency management for something like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment