getguesstimate / guesstimate-app Goto Github PK
View Code? Open in Web Editor NEWCreate Fermi Estimates and Perform Monte Carlo Estimates
Home Page: http://getguesstimate.com/
License: MIT License
Create Fermi Estimates and Perform Monte Carlo Estimates
Home Page: http://getguesstimate.com/
License: MIT License
Right now all styles are in in main.styl
. They should be broken out.
Once a sheet is created, it should be possible to change its visibility. This is probably not a crucial addition (not sure if Github has it), but it seems useful, especially for people who have already created private models.
I may spend some time with it, but if it takes too long, would be ok launching private support without this feature.
I'm setting up a local copy so I can test changes, etc.
It might be helpful to have a short walkthrough of how to do this for potential contributors.
I just checked out the app from git following the instructions from README.md, tried starting it using "npm run start" but it won't start. I'm not skilled enough to solve this problem myself, so if it's a stupid user error, ignore it. From the log on the command line:
$ npm run start
> [email protected] start /home/alex/Projects/guesstimate-app
> BUILD_DEV=0 NODE_ENV=development API_ENV=production webpack-dev-server
/home/alex/Projects/guesstimate-app/webpack.config.js:5
var elev = `<script> var _elev = window._elev || {};(function() {
^
SyntaxError: Unexpected token ILLEGAL
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at module.exports (/home/alex/Projects/guesstimate-app/node_modules/webpack/bin/convert-argv.js:80:13)
at Object.<anonymous> (/home/alex/Projects/guesstimate-app/node_modules/webpack-dev-server/bin/webpack-dev-server.js:55:48)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
npm ERR! weird error 8
npm ERR! not ok code 0
Lots of models have 1-3 'output' metrics. It has been recommended that we allow these to be distinguished. This is something I've been thinking about and think it would be pretty simple to implement.
https://medium.com/@CoryMogk/cool-tool-initial-feedback-ec5ac90ffa3c#.nzrly5k2p
1.Add Title of the page to the editor page.
2.Add a description field while creating a new page.
The naming conventions are always pretty important, I wanted to lay out what we have and ask if there are any strong opinions on this.
Model: One guesstimate spreadsheet
Metric: The thing that fills a cell and has a value ('people in iowa')
Guesstimate: The thing that goes into the number field of a Metric. In the future there could be many guesstimates for one metric, so you'll see in the code base there's a one-to-many relationship.
Simulation: A Monte Carlo simulation. Stores around 5k samples and some metadata. Belongs to a guesstimate.
In the codebase 'Model' is often written as 'space', which is what it used to be called. I'll try to change this sooner than later, as I could see that getting confusing.
Two solutions for now:
Estimates in my field, more often than not, are about figuring out when something will be completed. I'd like to see units of time supported.
To Reproduce:
repo/new
It breaks in production, but works locally it seems.
As a user, I should see a bootstrap dropdown list of my models. See here:
http://react-bootstrap.github.io/components.html
This should go on the top left, next to the + button.
One 'distribution' type should be 'data'. When the user clicks this, they can input raw data.
A few people have requested being able to declare their 99% range or similar, instead of their 90% interval.
I'm thinking this should be implemented by a more detailed 'distribution editor' later on.
From a request,
"Just wanted to see if there was a way to color (fill or outline) cells? Would be great to have this feature to highlight different cells for inputs."
Do one test. Then set up Travis.ci.
The user can take a second to load, so in the beginning, the 'My Models' button doesn't do anything.
Right now refreshing does not work
To reproduce:
http://www.getguesstimate.com/
I'm dealing with lots of numbers in the peta range but it switches over from Tera to 10^15 when passing 1000 tera. Could we have it as peta instead? :)
when hangouts is activated it does not allow your cellular carrier to send a receive messages to go into settings and use messaging will resolve the problem.. the only other option is Hangouts.
The homepage icon should be a favicon. I think this will be done in the webpack config.
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
running with latest d950de4
ran npm install, installed a bunch of stuff, exited cleanly running npm run start:
Error: Cannot find module 'lodash.defaults'
so npm install lodash.defaults, repeat for autoprefixer
these should probably be added as dependencies
The site has very high latency right now. Perhaps this is due to the sampling technique employed. You seem to have around 1000 samples, do a double for loop when combining estimates, then randomly pick a subset of 1000. Suppose instead you use histograms, each represented as an array of pairs (value, probability). Now the same double for loop, produces pairs (value, probability). You have n^2 values vs before, so choose a subset of size n that are nicely spaced. 100 should suffice, but maybe you can get away with 20. "Nicely spaced" is the hardest part of this algorithm. If you want the histogram bars to be equally spaced the math gets a bit trickier.
As a side note, I think histograms much more accurately preserve distributions, per bit of representation.
Right now the server returns all models (called spaces in the code) at once. This is now about 2.5mb. Super slow and unnecessary. Should be refined.
I'm thinking it would be nice to see the 'JSON' form of models. This could be edited, where whatever is added would then be the new model.
This would allow for crude alterations. Also, by making a pure text format, it would allow interoperability with other tools. So another program could produce models that would feed into Guesstimate, for instance.
From a user request:
"how can I work with other users on a shared model? I want to work with [name hidden] on his [name hidden] model, if possible"
In order to implement new distributions, it would be helpful to refactor and rewrite some of the code used for distributions.
tl;dr
Unreadable description tag
No horizontal scrollbar
Display issues after scrolling horizontally with cursor keys
Using the public model Drake Equation as an example,
Upon entering the page:
The description (or at least, I assumed it was) tag is scrunched up on the left.
There was also no scrollbar to scroll left and right, so I had to select a cell and then press the left and right cursor keys to do so.
When I tried to return (after having scrolled to the right) by pressing left however, this happened:
I am unable to view the description and the header seems to have glitched. I was able to scroll all the way to the first cell though.
This was on Firefox 43.0.2.
P.S: Unrelated to the issue, I think it would help your app if you make it easier for users to provide feedback (e.g. "contact us", and/or "fork me on GitHub"). Good luck!
From a intercom request:
' There’s currently a bad bug though in how chains of calculations are dealt with. As it stands, in a chain of calculations X -> Y -> Z, it appears that random numbers are sampled for X to calculate distributions in Y, but then to calculate the distribution of Z the values of Y are resampled. The effect is that correlations are ignored entirely. What should happen is that random numbers are sampled from X and used to calculate the whole chain of values (Y and Z). Here is a quick proof of the error: http://getguesstimate.com/models/2218. For two data cells I’ve labelled A and B (e.g. X = {A,B}), there are separate cells for C=A/(A+B) and D=B/(A+B) (so Y = {C,D}), and finally a cell that is the sum of the two fractions E=C+D. This should be identically 1, because A/(A+B) + B/(A+B) = 1. Instead, an error range is found for E because the values for C and D are resampled ignoring their anti-correlation. Doing the entire computation in one step, shown in the cell labelled F, works correctly because the values sampled for X={A,B} are used directly in the computation of F=A/(A+B) + C/(C+D). '
Great project.
Please consider supporting more distributions. The types below are useful for 'guesstimate' simulations:
Exponential, Pareto, Generalized extreme value, Truncated Normal, skew normal, t-distribution, Gompertz.
Hi,
This is really great and I'd like to start using it for all sort sort of things. However, it can be difficult to use it if models are all public (unless I'm missing something).
Ideally, we'd have SSL (you can use https://letsencrypt.org/ for free certs) and a flag to make models public or private. Some kind of sharing system ("let use X see this model") would be nice, but not critical.
Alternatively, I was going to self-host but this doesn't really seem possible at the moment because the Rails app isn't yet published (by the way: publish it; until you do it's pretty hard to get more contributors working on the app, and even if it's not perfect, others will help you make it better), and even in "remote API" mode I can't get it to build on my Mac (npm install fails with "No compatible version found: lodash._charsendindex@'>=3.0.0 <4.0.0'").
I'm going to keep trying to make it work locally and see if I can help implement private models, but it's a bit "catch 22" at the moment.
Thanks for doing this and thanks for sharing. It's a really impressive thing you've built!
It would be great to restore to previous versions. A user recommended we use a conflict-free replicated data type (CRDT), perhaps with swarm.
A few history-related features that would be useful:
When I put in a distribution such as [0.05, 0.09] as uniform, There's a large spike in the visualization at the right-most bin.
Right now when a node is clicked, an html box comes on top of it. This looks really neat. The nodes don't look as neat, they are kind of blurry.
Converting this into HTML will mean having images that probably aren't clickable (the cytoscape element behind is clickable instead). This would mean moving them and modifying their heights on dom operations.
Some light information on how to set up a dev (or outward facing) deployment would be great!
A user reported that when there was no internet connection, no error was shown for a few minutes. When they got internet again, they still couldn't save; instead they had to refresh (losing their data).
Problems:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.