Modelr front end
agilescientific / modelr-app Goto Github PK
View Code? Open in Web Editor NEWModelr front end
License: Apache License 2.0
Modelr front end
License: Apache License 2.0
The colorbar scale stretches to the max/min range of the values in the plot. Need to set colorbar limits to [-max , max] by default. Future versions can expose setting the colormap limits.
Just because
When the dust settles a bit, we should look at streamlining the CSS and JS and maybe even the HTML with minification. Also: LESS in Bootstrap. I don't know anything about any of it, but people seem to think it's important.
People need a way to export their data for backup or if they close their accounts. Should probably include their input data and the models, or links to them.
I guess that means an import option would be nice too...
could either build charts on the backend, or come back as JSON (moduli, tuning, thickess, etc)
Do whatever it takes to get this out of the app
# Get Evan's default scenarios (user id from modelr database)
evan = User.all().ancestor(ModelrRoot).filter("user_id =", 29)
evan = evan.fetch(1)[0]
ev_scen = Scenario.all().ancestor(evan).fetch(100)
scenarios += ev_scen
This is obviously a major problem. Apart form anything else, it makes it impossible to use the app on localhost.
We need the wavelet parameters added back to the simple scripts. This 'exploration' functionality is part of the point of Modelr.
Tweet models and rocks... using rich snippets or other markup https://support.google.com/webmasters/answer/99170?hl=en
The scenario won't save on the server, as it does a user verification first. The scenario does get added to html list, but will disappear when the page is reloaded properly.
The scenario list should always be populated from the server, and just refreshed after saved, or the append function should be put into the success function call on the post call.
I thought this worked.
https://modelr.io doesn't work or redir to www.modelr.io
I'd like to be able to share a scenario with someone by sharing a URL like
https://www.modelr.io/scenario?id=sand_wedge
...or something.
Online users can chat and share scenarios with each other.
User's should be able to upload any image to forward model. In my sandbox, modelr can upload images, determine the colours in the image, then let the user map the colours to rocks.
Need to serve the image and colour to rock mapping to the plot server, but shouldn't be too much more effort.
These forms don't mix with the rest of the modelr theme. The rock entry form should be basic to fix, but the scenario form is built generically in the display_form function in modelr.js and would need some significant re-working.
It's frustrating and obscure when modelr-server is down, because the rest of the site seems OK.
We need a way to splash an alert like "We're experiencing problems" any time the server is down. This should appear on the Scenario page at least, and perhaps elsewhere too.
Perhaps we can rely on Uptime Robot for the server status; I increased the check frequency to every 5 minutes. Maybe we should have a way to trigger the alert on our Admin dashboard too.
The new version of firefox doesn't support pages with mixed content(containing http and https served content). Since our scenario contains data from both https(front end) and http(backend requests), it isn't showing the scripts/plots.
https://blog.mozilla.org/tanvi/2013/04/10/mixed-content-blocking-enabled-in-firefox-23/
User can create an RGB image using 3 arrays as inputs. Already built in util.py, but no parser args accessing it. Normalization, and bulk shifting of arrays needs testing, and or optimization
Typo: change from "BrBg" to "BrBG", and it should work fine.
Modelr is 3 tools, which can be independent from each other.
Model Builder - Build a wedge/channel earth model to slice.
Forward Model - The convolution forward model.
AVO Response - Stochasic AVO calculation of an interface of two rocks.
All the parameters are crammed into one interface, which is confusing for a first time user. If we separate the tools, let them save models independent from scenarios, it should make for a better user experience.
So users can have longer and more meaningful scenario names. Will a subtext or a description be better?
There are a few major exceptions that we need to handle in a special way. Issues like billing failed, or stripe billed a user ID that doesn't exist in our account, we charged a user but failed to initialize them in our user base, etc... Things that will need immediate manual attention from us.
Trigger the app to send us an email for these exceptions?
Another parameter to expose in the UI. Not too hard to do on the backend. Only a few lines of code. Can use 1D syn as an example
There should a link to the about page in the tabs at the top of the base layout.
Plot headings and axis text, eg frequency, Hz, and sentence case everywhere.
Likely will need to happen in the backend server.
The default trace locations for wavelet and offset panels need to be revisited. For all channel models, the default location should be trace 150, which is the middle of the channel.
For all wedge models, it should probably also be 150, for consistency, though using 299 makes for a nicer display. (Should be #300, see #26 ). Right now, with trace 0, some selections result in no contrast, so the plot is blank.
Demo images, and those made by academic accounts (if and when they exist, and if they are free), could carry a subtle, pale grey modelr logo and modelr.io text in the top left or lower right corner. This might help promote modelr, and encourage people to sign up (we'd have to let them know it can be removed).
Either add the watermark/logo on modelr-server — could do generically with a logo=modelr_logo.png parameter, or just logo=true, or cryptically with wm=1 (or whatever) — or could do on front end with the Images API (not sure this is possible — seems not all of PIL is accessible https://developers.google.com/appengine/docs/python/images/).
The select script drop-down sometimes does not populate, so we added refresh button. Keep on eye on this as modelr is deployed. It would be nice if things worked without needing the refresh button.
Steve suggested obfuscating our 'special' JS (mostly in modelr.js). While, in principal, 'secret' code should just be on the server, and in principal all public code is public, there's maybe no need to be blatant about it. Obfuscation also minifies, so makes the page a bit faster.
This obfuscator goers a bit too far, with char codes etc. This is the one in prod right now http://javascriptobfuscator.com/ — note, modelr.js should be moved, otherwise a person could easily guess it's there. It is loaded in base_template.
This looks awesome, but is expensive. http://techcrunch.com/2013/04/17/improved-jscramber-3-helps-javascript-and-html5-developers-obfuscate-their-code/
Others, not obfuscating enough: http://javascript-minifier.com/, http://marijnhaverbeke.nl/uglifyjs
This one looks just right, but the output doesn't work: http://www.jsobfuscate.com/
The content us feature has been implemented, but needs to be tested
We should have some commitments around service levels. To back this up, we'd need a failover server (e.g. another Modelr-server instance), and some sort of site notification if the service is down for some reason.
prettyify the URL - it’s completely encoded but doesn’t need to be
use bit.ly API to shorten the URL we give people at the bottom of the Scenario page?? or use excuse to finally set this up http://yourls.org/#Install
We need to be able to 'see' the funnel of site visitors > demo users > sign up > pay up. I think we can do a good deal of this with Google Analytics, but correlating users with events would be useful (e.g. right from MailChimp to paying customer).
I will get a copy of Lean Analytics — this stuff will lead to be able to play more intelligently with button labels, pricing, etc.
It would be good to have a release number on the front end app (and probably on the back end too). Ideally these would be automated or at least streamlined somehow.
We could include these in the in user info thing (currently on About), also the date of the release. "The Modelr software was last updated 3 days ago". This is one the of the big plusses of web apps, so let's rub it in!
Forum for users
Forms need to have model, seismic, and plotting parameters separated. This is a result of the generic form generator, which uses the same code for every script.
This new form will likely be part of a larger modelr overhaul.
When the scenario names are too long the edit and delete buttons rearrange.
Hook up into stripes webhooks to get more payment information.
https://stripe.com/docs/webhooks
This could be a quick way to let people input or take away data, eg by copy-paste from/to Excel... https://github.com/warpech/jquery-handsontable
We hacked the email verification so we could test locally. Just a reminder we undo that before we let modelr loose
This issue is about interfaces.
Add a parameter for an instantaneous attribute (or attributes). Could ask what attribute too. Return either a matplotlib chart (always? optionally?) with the chart, or a JSON object with all the data, then we build a JS chart for the front end.
Default: amplitude at time[top of wedge].
Some browsers do not allow the user to save a scenario with spaces in the name.
We need a way to bypass the billing stuff on localhost, to create users etc.
Can we do this via the GAE dashboard maybe?
Generally speaking, there are potentially several ways of incorporating noise into the seismic experiment. Noise at receiver, noise in the earth model, noise as a function of source-receiver offset, etc.
easiest: add (gaussian) random noise level by setting signal : noise parameter for each trace, or for each ensemble of traces
more difficult: add "noise" (heterogeneity) to earth model? This might be a way to vary rock property variations within a single layer. It would make more spikes, and would wreck the economy of sparsity that we are using.
Before switching to prod on Stripe, I want to do some more testing, per https://stripe.com/docs/testing
Since we can't make the scenario names longer without messing up the dashboard layout, can we add a longer text description for mouseover? Might not be good on tablets, and we'd need to add another text field on the scenarios page.
I would like to add a badge to the site telling 'how many models served'... What's the easiest way to grab a metric like that? Would it require adding a counter, or can we just grab it from the logs? It doesn't have to be 100% accurate, just 90%.
One day we can add 'registered users' too :)
Add account page, or append it to profile, but allow the user to view billing information, change credit card information, change subscription status.
Traces should be numbered from 1, not 0. A wedge plot with 300 traces, say, has no trace #300.
Add features tab to base template
Get the address from stripe verification then decide how much tax to charge.
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.