# Multi-stage Javascript Timer



## Cride5 (Nov 24, 2009)

Yes its yet another Javascript timer, but this one is specifically designed for time breakdowns. I was kind of hoping other js timers would eventually implement this, but I guess it wasn't to be.

Get it @ www.ctimer.co.uk

PS. It may not display nicely in IE, because I'm tired of bending over backwards for Microsoft.


----------



## blah (Nov 24, 2009)

Sweet!


----------



## 4Chan (Nov 24, 2009)

Bookmarked!

This will help me gauge how my recall and recognition is improving.
Awesome~


----------



## Caedus (Nov 24, 2009)

Ooh! I like!  Homepaged! People look at me strangely as I'm slamming my cube on my spacebar every few seconds. Lol.


----------



## Ryanrex116 (Nov 24, 2009)

Nice. I think I'll use this when I research my step times someday.


----------



## Cride5 (Nov 24, 2009)

Cheers for the positive comments guys..

Made a couple minor bug fixes and added a feature to allow time removal.

Just did my first breakdown:

```
best	3.17	9.51	2.11	3.87	22.74	
worst	6.93	15.60	4.08	6.56	27.55	
avg	5.20	12.17	3.06	5.27	25.72	
std	24.1%	13.8%	23.2%	14.7%	5.2%	
solve	step 1	step 2	step 3	step 4	total	
1	5.26	13.28	2.45	4.88	25.89	x
2	3.28	11.52	4.05	3.87	22.74	x
3	5.91	11.03	3.42	6.00	26.37	x
4	4.82	12.08	2.64	4.60	24.15	x
5	6.23	11.75	3.63	5.56	27.18	x
6	4.06	12.00	3.51	6.10	25.69	x
7	6.11	10.70	4.08	5.52	26.43	x
8	6.25	14.21	2.27	4.81	27.55	x
9	6.93	9.51	2.48	6.56	25.49	x
10	3.17	15.60	2.11	4.84	25.73	x
```

hmmm, looks like my EOLine prolly needs most work, but maybe its just lack of sleep


----------



## StachuK1992 (Nov 24, 2009)

Everything's really nice. I just wish it had a scrambler


----------



## JLarsen (Nov 24, 2009)

Stachuk1992 said:


> Everything's really nice. I just wish it had a scrambler



+1. But still an excellent idea. I think I'll do some breakdown of solve times tonight.


----------



## Kxg (Nov 24, 2009)

```
best	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	
worst	0.00	0.00	0.00	0.00	0.00	0.00	
avg	0.00	0.00	0.00	0.00	0.00	0.00	
std	-NaN%	-NaN%	-NaN%	-NaN%	-NaN%	-NaN%	
solve	step 1	step 2	step 3	step 4	step 5	total
```

Minor bug fixing, eh?


----------



## Cride5 (Nov 24, 2009)

Sn3kyPandaMan said:


> Stachuk1992 said:
> 
> 
> > Everything's really nice. I just wish it had a scrambler
> ...



Click on 'Random-State Scrambler' in the top left, and then select "Popup Window" 

.. but seriously, efficient random-state scrambling in js is something I'd like to do eventually but can't commit a lot of time to it at the moment. Maybe in future...




Kxg said:


> ```
> best	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08	4.9935920412842105e+301:08:48.08
> worst	0.00	0.00	0.00	0.00	0.00	0.00
> avg	0.00	0.00	0.00	0.00	0.00	0.00
> ...



Can you tell me how to reproduce the error?


----------



## Kxg (Nov 24, 2009)

Start ant stop timer. Click reset. Then click the 'x', which is used to remove times (however, we reseted, therefore it should be gone ).


----------



## Cride5 (Nov 24, 2009)

Kxg said:


> Start ant stop timer. Click reset. Then click the 'x', which is used to remove times (however, we reseted, therefore it should be gone ).



Cheers for the pointer. I've made an update so it should be fixed, thx..


----------



## Kxg (Nov 24, 2009)

Cride5 said:


> Kxg said:
> 
> 
> > Start ant stop timer. Click reset. Then click the 'x', which is used to remove times (however, we reseted, therefore it should be gone ).
> ...



Well, it's not fixed yet.


----------



## Cride5 (Nov 24, 2009)

Hmm, have you deffo refreshed the page.

I start and stop the timer. Click reset, and the x on the first row disappears..


----------



## Kxg (Nov 24, 2009)

Restarted the browser - it's fixed. (probably it kept cache and was too lazy to see something has changed, lol).


----------



## jms_gears1 (Nov 29, 2009)

lol i found another error

<< Fewer Steps | Reset | More Steps >>
best:	1.40	1.94	1.83	5.92	
worst:	3.34	2.47	4.12	7.90	
avg:	12.06	10.88	13.25	34.84	
std:	80.3%	80.0%	80.2%	80.0%	
solve	step 1	step 2	step 3	total	
1	1.99	2.47	2.97	7.44	x
2	1.98	2.10	1.83	5.92	x
3	3.33	1.94	2.14	7.41	x
4	3.34	1.98	2.18	7.51	x
5	1.40	2.37	4.12	7.90	x
6 

my averages for step 4 roux does not compute in my head

best:	1.08	0.10	0.13	1.32	
worst:	7.57	3.80	2.68	10.40	
avg:	29.03	13.66	8.70	51.40	
std:	87.8%	88.1%	88.1%	87.6%	
solve	step 1	step 2	step 3	total	
1	2.83	3.80	0.28	6.92	x
2	3.43	1.66	1.60	6.70	x
3	6.06	3.71	0.62	10.40	x
4	7.57	0.16	0.16	7.89	x
5	4.25	0.72	2.68	7.65	x
6	1.08	0.10	0.13	1.32	x
7	1.82	1.14	0.96	3.93	x
8	1.96	2.36	2.23	6.56	x
9 

so i did some random times and it happened again

best:	1.01	0.12	0.22	0.51	0.45	2.35	
worst:	9.90	3.43	8.18	2.87	2.21	20.84	
avg:	20.90	8.53	13.86	8.32	6.83	58.46	
std:	81.6%	81.5%	82.7%	80.8%	80.7%	80.7%	
solve	step 1	step 2	step 3	step 4	step 5	total	
1	1.73	2.19	8.18	1.96	1.44	15.53	x
2	6.20	0.17	0.22	0.55	0.65	7.81	x
3	1.01	0.12	0.25	0.51	0.45	2.35	x
4	9.90	3.43	2.41	2.87	2.21	20.84	x
5	2.04	2.60	2.78	2.41	2.07	11.91	x
6 

more than 3 steps

sorry if im posting to much just doing my own debugging?

best:	1.85	0.20	4.15	
worst:	3.95	2.43	4.75	
avg:	17.50	13.44	30.95	
std:	85.8%	85.9%	85.7%	
solve	step 1	step 2	total	
1	2.33	1.96	4.29	x
2	2.16	2.36	4.53	x
3	2.38	1.93	4.31	x
4	3.95	0.20	4.15	x
5	2.53	2.21	4.75	x
6	1.85	2.43	4.28	x
7	2.28	2.32	4.60	x
8 

2 steps 

best:	0.86	0.86	
worst:	2.62	2.62	
avg:	16.37	16.37	
std:	88.9%	88.9%	
solve	step 1	total	
1	1.93	1.93	x
2	1.90	1.90	x
3	1.73	1.73	x
4	1.59	1.59	x
5	1.83	1.83	x
6	0.86	0.86	x
7	1.92	1.92	x
8	1.96	1.96	x
9	2.62	2.62	x
10 

and finally one step


----------



## joey (Nov 29, 2009)

Great work, it looks awesome.

You and qqwref should collab... really really.


----------



## Cride5 (Nov 29, 2009)

Lol, this timer is still very much in beta stages. The averages fail so bad!! Give me a few days....

Apologies.


----------



## Cride5 (Nov 29, 2009)

OK, thats the averages fixed.


----------



## TheBB (Nov 29, 2009)

Hey, this is great for multi-blind.


----------



## StachuK1992 (Nov 29, 2009)

TheBB said:


> Hey, this is great for multi-blind.


That it would, both for memo and solving!
Actually, I think this would be good for any BLD solving!


----------



## JL58 (Nov 29, 2009)

Conrad, you're my hero! Great job! So many of us have been asking for that. Thanks a lot.


----------



## Cride5 (Dec 1, 2009)

*Support for Random-State scrambles*

OK, so I've made a few more improvements to the timer. It now uses cookies to maintain a persistent config and keep track of past times/scrambles.

The main improvement is support for random-state scrambles. However, don't jump for the ceiling just yet.. it has only been tested under Ubuntu and Windows XP with Firefox 3 and the Java 6 plugin. To use random state scrambles it will need to be enabled by going to 'options' and checking the "Use random-state scrambles" checkbox.

Plugin-wise, it is recommended that you use the *Sun* Java plugin (I've tested with version 6, but it may also work with Java 5 or 1.42). Support with other plugins may be flakey, as many JVM implementations aren't fully standards compliant. I know for a fact that the icedtea Java plugin doesn't work (I think that may actually be the default under Ubuntu), so if you happen to be using Ubuntu, you can change your default plugin by typing: sudo update-alternatives --config java
If you're using firefox, you can check your plugin by typing>

```
about:plugins
```
in your address bar. 

As for browsers, I've only tested with Firefox and Internet Explorer. Unfortunately, cTimer doesn't work in IE at all yet, and hadn't planned on really spending much time on it. If you are unable to use Firefox and really want to use cTimer, just let me know and I may look into fixing it..

Finally, platform-wise I'd imagine it should work on Mac if the Sun Java plugin and Firefox is being used. I have no idea if it works under Safari, so If anyone can test this let me know..

If you're using Firefox with the Sun Java 6 plugin and random-state scrambles aren't working could you let me know your: (1) Operating System (2) Firefox Version and (3) Plugin Version
... and I'll look into sorting it out.

Enjoi


----------



## Zarxrax (Dec 2, 2009)

Hey, this thing is really useful! I thought that I need to mostly work on improving my F2L, but after using this thing, I'm not so sure anymore. My other stuff is looking pretty slow.

Cross 7.46
F2L 16.96
2L-OLL 5.06
PLL 6.18
Total 35.68


----------



## miniGOINGS (Dec 2, 2009)

Zarxrax said:


> Hey, this thing is really useful! I thought that I need to mostly work on improving my F2L, but after using this thing, I'm not so sure anymore. My other stuff is looking pretty slow.
> 
> Cross 7.46
> F2L 16.96
> ...



I would go for your cross right now, just try and do it without looking. Also, if your using full PLL, that looks a little slow. Everything could be worked on, but I would stick with those for now.


----------



## Cride5 (Dec 11, 2009)

I've updated the app again. It now has:
* Random-state scrambles for 2x2 (thanks to Jaap's js solver)
* Scrambles for cube dimensions up to 7x7x7
* Saving of time breakdowns in cookies

Available in the usual place @ cube.crider.co.uk/ctimer.html

... any more bugs or feature requests just let me know.


----------



## Cride5 (Dec 11, 2009)

... it should now work in IE if that's your cup of tea 

Currently it's only tested on IE6, so if you find any problems using it on other versions of IE (or any other browser) reply below and I'll look into it..

EDIT: Also works with Google Chrome.


----------



## iSpinz (Dec 11, 2009)

Works on Chrome


----------



## Toad (Dec 11, 2009)

Very very nice. Works on Safari 4 on Mac fine


----------



## Cride5 (Jan 18, 2010)

*New updates for 2010*

The app now resides at a new domain www.ctimer.co.uk

It now supports scrambles for:
* Pyraminx (random-state)
* Square-1
* Megaminx

I've also updated logging code to make it more efficient/scalable, meaning it should be possible to do avgs of 1000 without any significant performance overheads.

Details on averages of 5, 12 50 etc including the scrambles used are now accessible through the stats tab. Just click twice on the average and a popup will show the gory details.

Any bugs/feature requests post below..

Cheers.


----------



## cincyaviation (Jan 18, 2010)

love it!!!!


----------



## masterofthebass (Jan 18, 2010)

Found a bug for Chrome on Linux. The 3rd menu for changing orientation (front color) is too far away from the 2nd menu, so there's no way to change it.


----------



## Cride5 (Jan 18, 2010)

masterofthebass said:


> Found a bug for Chrome on Linux. The 3rd menu for changing orientation (front color) is too far away from the 2nd menu, so there's no way to change it.



Aah, cheers for the pointer. Is that it fixed OK now?


----------



## masterofthebass (Jan 18, 2010)

yup, works fine now. Now if only I had a way where I could hold down the space bar  (not your problem)


----------



## Cride5 (Apr 1, 2010)

Jeremy Fleischman has recently created a new Java-based scrambler library, which makes use of Herbert Kociemba's open source two-phase solver implementation, and some of the code from my java/javascript scrambler applet.

The crucial improvement he made was to save and compress the lookup tables so that they are packaged up with the jar. It means initial use of the scrambler involves a 2.6 MB download, but all subsequant reloads of the scrambler are almost instantaneous provided the scrambler jar is cached locally. With Jeremy's permission I've now added this into the cTimer app, so random-state scrambles shouldn't cause any significant delay on page reloads.

Just as a final note, I've tested it on the following:
* Firefox 3 on Windows XP
* Google Chrome 4 on Windows XP
* Internet Explorer 6 on Windows XP
* Firefox 3 on Ubuntu Linux
* Google Chrome 5 beta on Ununtu Linux

It works fine on all tested apart from Chrome on Linux. There seems to be a problem with dynamic applet downloads, but I found an easy fix. If you're running Chrome on Linux and you want random-state scrambles, save the app on your local drive as a complete web page and uncomment the applet stuff at the bottom of ctimer.html

If you have any problems with it either post below or PM me and I'll see what I can do...

Finally, a big thanks to Jeremy for the improvements


----------



## chahupping (Apr 2, 2010)

nice timer.. like it..


----------



## Coisox (Jun 17, 2010)

how about implement voice input? allow user to create profile and record sample of voice beep (eg: "Beep","Done","Next", Wacha"). I'm average cuber and i regrip and rotate my cube a lot. So it's difficult to press the spacebar each time since my cube can fall. My average using CubeTimer is 37++ but when using cTimer i got 47-50 secs 

p/s: I should put my laptop on floor and use my leg to press spacebar


----------



## Cride5 (Jun 17, 2010)

Coisox said:


> how about implement voice input? allow user to create profile and record sample of voice beep (eg: "Beep","Done","Next", Wacha"). I'm average cuber and i regrip and rotate my cube a lot. So it's difficult to press the spacebar each time since my cube can fall. My average using CubeTimer is 37++ but when using cTimer i got 47-50 secs



I presume you're talking about using the 'multi-stage' feature. Personally, I just hover my hands over the spacebar and press with my pinkie when I'm doing a time breakdown. It probably slows me down a little, but it's good enough to gauge my overall performance breakdown.

Implementing voice activation is most likely beyond what regular Javascript can handle, so would require implementation in java with java-browser communication being used to send signals to the timer. Support for this across the browsers is pretty flakey, and I think the implementation effort involved probably wouldn't be worth it.


----------



## Coisox (Jun 18, 2010)

for the breakdown function, how about allow user to set "ignore key repeat". Lets say i set "ignore key repeat" to 1 secs, so if i double press the space bar, ur system will only capture once. This is because i always accidentally double press (or not sure whats actually happen) spacebar. And how bout considering all buttons around spacebar (GHJKLBNM<>) as spacebar since we have the "ignore key repeat" so that i can simply slap my keyboard.

This is example of my time:
10.52 15.80 0.06 7.34 33.72

My average is around that (33++) but it's impossible for me to 0.06 for OLL.

As for the voice recognition, i can use ur software together with windows speech recognition and it works just fine (almost consistently lag 2 secs). And maybe you could give option to user to combine with their own speech recognition software. Emm how to tell this...

1. Create hidden input box. Set cursor there when user hit the spacebar.
2. Using timer, check the hidden inputbox whether it changed and contains wording "space", "pace", "spade" or "spat". User can add this entry in the option. If return true, then it is a "spacebar"

The reason why i need to enter several wording is because windows voice recognition is not detecting my voice precisely.


----------



## peterbat (Jun 18, 2010)

Great! This is very helpful. I just did an average of 12, and my cross+f2l has about 4x as much uncertainty as my LL. I did not know that until now. Time to make f2l more consistent...


----------



## Cride5 (Jun 18, 2010)

Coisox said:


> for the breakdown function, how about allow user to set "ignore key repeat". Lets say i set "ignore key repeat" to 1 secs, so if i double press the space bar, ur system will only capture once. This is because i always accidentally double press (or not sure whats actually happen) spacebar. And how bout considering all buttons around spacebar (GHJKLBNM<>) as spacebar since we have the "ignore key repeat" so that i can simply slap my keyboard.


The reason it wasn't implemented like this to begin with was to ensure maximum usability. As a system designer I want to make the program usable by the widest possible audience. So for example, if someone is timing something which takes the order of < 100ms, then I want my timer to be able to capture that.

However, I figure that in mulit-stage mode the likelihood of users requiring the program to measure steps lasting less than 100ms is probably very low, so I've implemented that delay into multi-stage mode only, and because of this it is now possible to use any key between steps in multi-stage mode. 




Coisox said:


> As for the voice recognition, i can use ur software together with windows speech recognition and it works just fine (almost consistently lag 2 secs).


If the lag is consistent then it shouldn't be a problem because you're only interested in the length of time between events, not the precise time which they occur at.




Coisox said:


> And maybe you could give option to user to combine with their own speech recognition software. Emm how to tell this...
> 
> 1. Create hidden input box. Set cursor there when user hit the spacebar.
> 2. Using timer, check the hidden inputbox whether it changed and contains wording "space", "pace", "spade" or "spat". User can add this entry in the option. If return true, then it is a "spacebar"
> ...



I'm not sure how your voice recognition software works, but perhaps it's possible to configure a different utterance to bind to 'spacebar'. Perhaps 'bar' or something like that.


----------



## nitay6669 (Jun 23, 2010)

oh man!!
this is just great. but what is the std??


----------



## janelle (Jun 23, 2010)

nitay6669 said:


> oh man!!
> this is just great. but what is the std??



Click the info tab. It's one of the FAQs.


> What does 'std' mean under statistics?
> Standard Deviation. It gives a measure of your consistency. In cTimer it is presented as a percentage of the average. Closer to 0% means your times are more consistent.


----------

