Show HN: Speedsums
speedsums.com
speedsums.com
Don't 'turn it up to 11' to remove all the subtlety and ram the joke down people's throats. And don't turn it into "Oops, try harder next time!" like every other insipid thing in the world. Please. You made something that made me laugh. As much as I love HN, it's a strange, unrepresentative community and you should be very careful trying to appease the crowd here, which always bristles at anything that breaks character. People here are sometimes too focused on how to churn out templated startups, and not enough on art.
"If you got below like 30 on your first attempt, you should probably practice a little before embarrassing yourself again."
You could spin it around by turning it to 11, and call it something like "Speedsums for assholes". Then you could insult the user at every opportunity you get, using over the top curses in a tongue in cheek manner ("4 seconds to solve that? My guinea pig did better!"). If it's clear that it's meant in a satirical way, it'd be less shocking. However, this is much harder to pull off in a way that is funny and stays funny over time.
So either make a product with clean, friendly copy - or make one that does the "evil coach" to the maximum. But certainly don't do a mix of the two- that's just very confusing emotionally.
(recommended related reading: http://www.abookapart.com/products/designing-for-emotion)
Is that part of discouraging procrastination or what? As it stands, I couldn't show my sisters this without them getting upset with me.
I imagine it would work by seeing two bars or boxes and then drawing a third bar/box with the correct area/length and getting rewarded based on how good you do. Another exercise would train you to convert numbers to or from boxes with the same length and at the appropriate scale.
Last week I cleaned up a lot my room and went through stuff from primary school. Speedruns, where we had a sheet of sums that we had to solve as quickly as possible, always showed I was within the bottom half of the class (I don't remember the exact number), while mostly other tests' scores were in the top 85% or something. "Slowly but steadily," I guess?
Oddly my typing speed is faster than everyone else I know, including in a class full of coders. I'm not slowest in everything at least.
I'd waste 2 hours pulling my hair out imagining what it would be like if I failed, instead of working. Looking back I probably should've seen a doctor about my anxiety issues.
Though I wasn't good at those speed tests, I'm generally not that frightened to do them. If I fail, so be it, nothing to change about it at that point except do my best. The period of anxiety is always just before starting, doubting whether I put enough work into it and whether I could get any studying done in 5 minutes.
Contrarily to most other students it seems, I'm hardly ever anxious to learn the results of a test after I've made it. I'm curious of course, but not anxious to know whether I failed or not. It even gets on my nerves to hear everyone analyzing each minor detail of the test like a post-mortem. I usually ask around if someone knows the answer to something I completely missed out on (if anything) and that's about it.
I would try obfuscating the problem a little bit :
* Display an image instead of a text (using canvas for quick drawing ? You'd have to create the images server side to really be sure)
* If you really want to display text, use a custom made font (Reverse-engineering the characters match would take a little time)
* Changing the elements id (#answer and #question) every question.
Any ideas ?
var element = document.getElementById('answer');var y = document.getElementById('question');var dispatchKeyboardEvent = function(target, initKeyboradEvent_args) {var e = document.createEvent("KeyboardEvents");e.initKeyboardEvent.apply(e, Array.prototype.slice.call(arguments, 1));target.dispatchEvent(e);};var dispatchTextEvent = function(target, initTextEvent_args) {var e = document.createEvent("TextEvent");e.initTextEvent.apply(e, Array.prototype.slice.call(arguments, 1));target.dispatchEvent(e);};var dispatchSimpleEvent = function(target, type, canBubble, cancelable) {var e = document.createEvent("Event");e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));target.dispatchEvent(e);};var send_key = function (key) {var canceled = !dispatchKeyboardEvent(element,'keydown', true, true, null, key, 0, '');dispatchKeyboardEvent(element, 'keypress', true, true, null, key, 0, '');if (!canceled) {if (dispatchTextEvent(element, 'textInput', true, true, null, key, 0)) {element.value += key;dispatchSimpleEvent(element, 'input', false, false);dispatchSimpleEvent(element, 'change', false, false);}}dispatchKeyboardEvent(element, 'keyup', true, true, null, key, 0, '');}; y.addEventListener('DOMNodeInserted', function(e){var z = eval(y.innerHTML.replace(/[=\s]/g,'').replace(/x/ig, '*').replace(/÷/g, '/')).toString(); for(var i in z){send_key(z[i]); element.value+=z[i];}});
cs.js:
(function(){var b;var a=function(){if(b!==undefined){var e=document.querySelector("input#answer");
e.value=b;e.dispatchEvent(new Event("keyup"))}};var c=function(e){var h=e.length;
var f;while(h--){f=e[h];if(!f.addedNodes||!f.addedNodes.length)
{continue}if(f.addedNodes[0].nodeType!==3){continue
}var j=f.addedNodes[0].textContent.match(/^\s*(\d+)\s*(\S)\s*(\d+)/);if(!j){continue
}var k=parseInt(j[1],10);var l=j[2];var g=parseInt(j[3],10);switch(l){case"+":b=k+g;
break;case"-":b=k-g;break;case"x":b=k*g;break;case"÷":b=k/g;break}setTimeout(a,500);
return}};var d=function(){var e=new
MutationObserver(c);e.observe(document.querySelector("div#question"),
{attributes:false,childList:true,characterData:false,subtree:false})
};window.addEventListener("load",d)})();
manifest.json {
"manifest_version": 2,
"name": "Speedsums Helper",
"version": "0.1",
"description": "Help be good at SpeedSums",
"author": "wreegab",
"content_scripts": [{
"matches": ["http://www.speedsums.com/*"],
"js": ["cs.js"],
"run_at": "document_start"
}]
}
Caveats:
Need to answer the first question.
Need a time out to prevent exhausting the list of questions (it stops at 119)It's Hacker News after all...
Try with "Estimation Math", "Random", and "Hard".
A friend of mine told me about this website. He used it to practice for interviews. I took it as a game. It's less about precision and more about "close enough" but quick calculations. After a while, you learn to focus on the most critical part of each question, which depends upon the operator and the number of digits, and dismiss what's irrelevant.
I really disliked learning the multiplication tables. When faced with 8 * 9, my mind thinks 8 * 8 = 64 and adds 8 to it to get 72. :-/
And if you have 9x9 just think 90-9=81.
9x10 = 100-10 = 90
9x15 = 150-15 = 135 and so on..
Just mash enter.