Cruncher: An Implementation of Bret Victor's Scrubbing Calculator
cruncher.io
cruncher.io
After I tell it that yes, I really meant to click on the link that it had offered me, it displays the examples... and promptly replaces them with an empty page after a few seconds.
That annoying dialog also comes out when doing other things, like using the Back button.
Quick feedback: some I believe issues in the current version, in the "assorted examples":
- "4 apples + 5 oranges * 18 friends" ― wasn't that meant to be "(4 apples + 5 oranges) * 18 friends"?
- "Hold ALT while scrubbing to plot" ― doesn't seem to work for me on Fx nor Chrome
- after clicking on "assorted examples", they like to not show immediately, requiring me to go back till the URL has "?/examples/cdg" and then refresh.
- also, Ctrl-Z doesn't seem to do anything, I'd really appreciate if Undo was available after I click something by accident.
- 5,000 in some locales means 5 not 5000 (',' is used as decimal separator instead of '.') ― see e.g.: https://en.wikipedia.org/wiki/Decimal_separator#Countries_us...
In the 'real world', that would clearly be the correct interpretation, even if it flies in the face of the 'standard' rules of precedence. If the calculator really works that way, it only makes it more impressive in my book.
The text is supposed to be, in the first place, all the relevant context in an abstract form, i.e. problem minus all irrelevancies.
It's an interesting discussion how the nature of concrete items involved in calculations might affect the precedence. I think that, since "apples" and "oranges" are clearly more closely related than "friends", it makes sense that they bind together more closely in this case. Also, the order in which the items are presented has some bearing on the interpretation.
Compare this to an application like Calca (http://calca.io/). Calca is more difficult to start with for a mathophobe because, while it will solve your calculations and equations for you, you do have to explicitly define all variables and formulate an equation. But the result is that the learning curve when you graduate from the application is much smoother: you can easily port more complex problems to a programming language or pen-and-paper math. Your existing knowledge doesn't suddenly become void.
The left and the right sides of the field are the sides of the equation. The "dragon box" is x, and you are trying to isolate it on one side. Galaxy images are 0, and can be removed at any time by tapping. Multiplication by 1 can similarly be done. Dice are used to represent numbers and can be added/subtracted, factored, divided/multiplied; other critters are used to represent other constants (a, b, c) and have the same done.
If you get far enough along, they substitute an 'x' icon for the dragon box, and letters for the constants.
However, the game doesn't explain why certain operations are allowed or disallowed -- each of the algebraic rules introduced is described as a "new magic power".
Notwithstanding opinions on the merits or lack thereof of abstracting and visualizing concepts that may or may not help your syntactical understanding of algebra, I want to point out that this is A) a brilliant idea and B) a really cool implementation.
Kudos to the developer who spent the time to implement this, and to Brett for putting the idea forward. I hope this gets traction and is continued to be built upon.
It was even more funny because while I was waiting for the comments to load I was thinking, "This is an awesome tool, but I bet the top comment is going to be some obscure reason not to like it."
Consider the context of this kind of thing is different to the context in which we usually use code.
To explain:
It would be great if figures (e.g. in articles) came with code representing how they were calculated, such that they can be tweaked. In fact, I think actual programming source code should implement such a thing e.g. for constants. But this won't be part of the "real" code - the values will remain implemented as constants. Hence "code" like this should be still considered manual, a working tool, as opposed to the nature of common code - which is non-manual in the end...
edit: Can't seem to find any other character mapping issue. Perhaps this is due to some hardcoded mapping assuming an english keyboard?
Text input doesn't seem to work for other than US keyboard layout. Does it read keycodes directly?
Currently, I can't really use it much because the examples won't load (they flash, and then disappear)