gmp26 / apps1 Goto Github PK
View Code? Open in Web Editor NEWAn incubator for math ed apps based on AngularJS
Home Page: http://nrich.maths.org/probabilityApps
License: MIT License
An incubator for math ed apps based on AngularJS
Home Page: http://nrich.maths.org/probabilityApps
License: MIT License
I’ll be out of Cambridge for the next few days, and only making sporadic fixes. I’m making this list for personal reference, but having it here might be useful too.
List here to account for the stack of commits I’ll push over the next few days, but also for other people to contribute to. Put other small fixes or minor issues with Mathmo in this thread, and I’ll work my way through the list over the next few days.
When this happens, the show answer/hide answer link disappears. It reappears after prev/next.
If there is no local storage space, mathmo behaves badly. This condition also appears on private browsing mode or if local storage really is full. It should show an error message and fall back to reasonable behaviour for non-persistent-memory. i.e. it should still allow exercise generation etc.
Following http://localhost:3005/#/mathmo/geom/C34/1011 failed to call up that problem.
One that works likes Simon Singh's now ancient 16-bit windows only version from http://simonsingh.net/cryptography/crypto-cd-rom/.
Essentially it has to highlight the active wire path as the keys are pressed and encoded/decoded.
Tests no longer run after updating karma
Can't get access to the close button in the popup dialogs - though touching off dialog does close it. Not sure how to fix this yet - need a scroll inside the popup.
When a window is resized and a mathmo plot is showing, it resizes properly. However, the prev and next buttons cause the plot to revert to the old window size.
Use http://mathquill.com/ for equation entry.
From @vrn20:
I had a `good idea' earlier today. Diamond collector is a rather nice way of getting students to practise finding equations of lines. I think that it's the same resource type as Mathmo, but with a couple of nice advantages (more engaging, slightly distracts students from what they're doing so that they might develop more fluency). I wondered whether it might be possible to make a version of Diamond collector that allows players to use equations of circles too. Perhaps just circles, perhaps a mix of lines and circles (possibly those are different levels or something). We could talk about what form the equations of the circles should take.
The boomerang counter allows for negative counts, and these aren’t necessarily flagged as “bad”.
For example, (small, large) = (-1, 1) doesn’t get flagged as bad because Phil needs an hour of carving and Cath decorates no boomerangs (which are valid values).
Either negative values should be discarded and reset to zero, or should flag an appropriate warning. Similar for non-integer values.
I realise that the Boomerang LiveScript is only a first pass; I might have a go at fixing some of this myself once I’ve learnt some more LiveScript.
This repo is good at making standalone Apps, but pretty hopeless at packaging reusable directives. I think we need to start a new repo for reusables modelled along angular-ui/bootstrap
lines. This would mean adopting conventions such as each directive in its own [angular] module, and probably dispensing with require.js
.
So we keep Apps1 for apps, but start a new repo for directives and associated support - probably by forking angular-ui/bootstrap
. Those guys can summon amazing demos in plunkr or jsFiddle with very little code.
Here are some candidate reusables
It's hard maintaining all the dependencies by hand and Yeoman
and Bower
are mature enough to use now.
Probably best to create a yeoman generator that builds the individual apps and ditch this umbrella app.
Brian Ford's generator - npm install -g generator-angular
looks like a good starting point but we would want to convert from coffeescript to livescript. (--coffee option generates a coffeescript codebase)
bower install angular-bootstrap
will bring in angular-ui/bootstrap.
Might be worth extracting the few reusable directives we have at the same time. See #36.
Chunks of HTML that are draggable and sortable. Note that this is for embedding in CMEP resources and so a jQuery based solution may be preferable to an Angular based solution. The end result should be the ability to create a list of HTML blocks, delimited by lodash
template commands.
The lodash
templates are processed into two forms - for web and for paper.
For the web the blocks should be randomised and have jQuery sortable behaviours attached. For paper, they would convert to LaTeX boxes and standard sized label formats for print.
We'd be looking for a simple template syntax to include in the markdown. Something like:
<%= sortable_start(groupId) %>
...markdown
<%= sortable_end %>
Need to take care that mathJAX remains rendered, that images drag with the surrounding texts, and that the drag and drop works on multiple touch devices too. A common problem with some touch screens is that the whole page drags rather than just the part that should be interactive.
Use yeoman generate-angular-ls to scaffold each app, then copy/paste/test.
Looks like a require config issue.
embeddable plotter taking inspiration from desmos.
@vrn20 is posting them in the CMEP-site repo
0 next yields 2
0 prev yields 0
@vrn20 is posting them in the CMEP-site repo. Copied here:
It would be very nice if the following questions could be added to Mathmo. Perhaps they can be deleted from this list when they've been added.
I'm writing ... to mean something that the computer should generate at random; I hope that it will be clear what I have in mind.
I clicked the link in issue 26 (http://localhost:3005/#/mathmo/share/1234/C34/1011), which opened in a “Shared” tab.
When I created a new exercise for student 1234, question type C34 wasn’t available for me to select, even though it hadn’t been used in that exercise yet.
Current implementation uses a 3rd party service that has gone down.
I’m not sure what’s causing this yet, but I’m going to dive in and try to fix it soon.
I suspect it’s caused by trying to treat a frac
object as an actual fraction, which lead to some problems when writing the first of the new questions.
vrn20 is posting in the site repo; copied here:
2 and 4 should be easy (we already have helper functions for these), I’ve already had a play with 3, and 1 and 5 don’t seem too tricky either.
Mike — shall I do these when I have a spare moment?
Plot y-axis bounds are not always correct. The maximum range of -10 to +10 is not appropriate when y is bounded above or below by N where |N| > 10.
Currently, we replace samples where |y| > 20 with [null,null] and then clip the plot to -10 < y < 10. Samples are taken every dx=0.01, which is usually good enough to catch a clipped point where 10 < |y| < 20, so the asymptote gets properly clipped. That 0.01 should adapt to the function however to ensure this is always the case.
d3MultiLinePlot interprets a null point as a penup command.
There is a similar issue with some of the parametric plots which have horizontal asymptotes.
Some unit tests coded by Ben Millwood for the last mathmo incarnation are now in the test directory. Since we are now using a seeded random number generator, it is possible to make much better tests - i.e. for a given seed, simply check that the resulting Q and A is as expected.
It should also be possible to run these under grunt test using the Karma/Jasmine setup.
See LS-1.2.0 announcement. We probably need a new grunt-livescript task as the npm version is not maintained by the LS team.
Mathmo sharing and viewing questions by seed or url needed.
Need to think about extracting a lib so we can generate selected problem/solution texts for CMEP - see http://cmep.maths.org/fenman/resources/G2_RT2/index.html.
Update tabs to new html
There is a bug in the 0.5.0 release of Angular-ui/bootstrap which prevents tabs from working after the uglify pass. This has been fixed in the GitHub master, and has been patched into the lib distributed with this repo.
Fix landed in 1105869
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.