Active Topics

 



Notices


Reply
Thread Tools
Posts: 118 | Thanked: 45 times | Joined on Dec 2009 @ Germany
#1
Push-It is a simple one button program. Every time you push that button in increments a counter and does some time calculations.

I know it is just another stopwatch. But the one BIG button provides a special value, at least for me.

Purpose/idea

The purpose of that tool is to help me doing exercises. For example if I do push ups, I do a set of them. But normally I can't count how many push ups I've made, because my thoughts are going in to many directions. But if I want to improve myself one day, I want to do more push ups than usually. So I need to know how many I can do, to do some more.
Therefor I'm in need of some help. Push-It is the solution. It counts every touch it receives and calculates the delta between the last touch and the touch before (time for one push up). It also calculates the delta between the last touch and the first touch (overall push up time). So you know how many pushups you did and also how long it took. And the next time I exercise, I can try to beat myself (if I want to) as I know my exact performance - or have saved it to a file.

Software availability

http://maemo.org/packages/view/push-it/
http://code.google.com/p/push-it/downloads/list
Or download it from the application manager from the extras-devel repository.

Features
  • Visual feedback for each hit
  • Fullscreen mode
  • Pause
  • Reset
  • Change number of lines to be displayed
  • Change font size of the output
  • Add time information to the output
  • Add date information to the output
  • Show all generated output in a list
  • Save that list (for awk/gnuplot postprocessing to generate a histogram or to compare your current performance to that of the last week etc...)
  • Edit that list and save it

Screenshot

So the main thing of this application is one button. Here is the screenshot :



More screenshots can be found here.

The most important thing for me was to get a new "lap time" no matter where I tap the screen. So I could hit it with my nose or any part of my body (keep your thoughts for yourself please).

Screenshot explanation

If you press on the screen several times you will end up with some measured times.

Every touch generates 2 new lines. The first line starts with a hash '#' followed by a number which counts the number of touches and a clock which holds the elapsed time.
In the next line the greek letter delta Δ stands for the time difference between the last touch on the screen and the touch before. The sum sign ∑ stands for the time difference between the last touch and the first touch. Avg is short for Average and the value represents the average time it took for each touch.

Examples

To imagine how I use it, some examples (more examples - including videos - here):

Push-up

Place the smartphone just below your nose so you can hit it with the nose. And then start pushing up. On this picture you can see the feedback you get, if you hit the device with your nose. As you might imagine I can't do as much pullups as I can do pushups so the application makes more sense of using when doing pushups.



Sorry for not wearing enough cloths - it was a hot day.

But with this example comes a warning - if you overdo it with exercising and collapse over your phone, you might break it.

If this program is used incautiously you could break your device physically. Always be sure that you use this software and the corresponding hardware in a way that the hardware won't get damaged. This responsibility is up to the user of the software not the authors.

For further reading

http://sites.google.com/site/markuss...it#TOC-Warning Warning - read it before using the program.
http://sites.google.com/site/markusscharnowski/n/pushit Program description
http://sites.google.com/site/markuss...-life-examples Examples including photos and videos.
http://sites.google.com/site/markuss...it/screenshots Screenshots

Personal comments

Some more comments: I never knew how many crunches I usually do - now I know: 3-4 minutes, 150-200 repetitions - don't want to count that. But for some other exercises it does not really make sense (at least for me) as I only do very little repetitions (pull-ups).

Feedback is welcome. I hope I will not be the only one who finds that useful.
 

The Following 4 Users Say Thank You to emesem For This Useful Post:
Helmuth's Avatar
Posts: 1,259 | Thanked: 1,341 times | Joined on Oct 2009 @ Germany
#2
Thanks a lot, emesem.

I just found out how useful this app could be.

Sometimes I'm batteling against myself and the time to solve a Rubik's Cube.

For my special use case I would suggest 2 small improvements:
  • A 2 stage switch. Touch to start the time... and with the second touch stop the time. After the next touch start the next duration. (I need time to scramble the cube again )
  • And additionally, please stop the phone to lock the screen automatically after 2 minutes when your application gets the time. (sometimes I need only several seconds more than 2 minutes to solve a cube)

Apart from that a really good stopwatch. Simple, well considered and powerful! Thanks!
 

The Following User Says Thank You to Helmuth For This Useful Post:
Posts: 118 | Thanked: 45 times | Joined on Dec 2009 @ Germany
#3
Hi Helmuth,

thank you for your feedback .

The first thing is no problem and already implemented. But I would call it "Start+Pause Mode". As I implemented it I regarded a "stop" function as useless , because you can either pause or do a reset.

The second thing can be done by the simple brightness applet. But I think it could be easy to integrate the request functionality also into push-it. But it is not really the linux/kiss approach. But not complex anyhow.

I hope I find the time to also implement that and then build a package. Hopefully it will be in extras-devel this evening, if not my deadline is this time next week .

Regarding Rubics cube:
Respect my fellow ^^.

But if you would use the rubics rube of the ovi store, you would not run into the screensaver problem . But I dislike the rubics cube game on the N900. I prefer the mechanical version.

Last edited by emesem; 2010-08-01 at 11:30.
 

The Following User Says Thank You to emesem For This Useful Post:
Helmuth's Avatar
Posts: 1,259 | Thanked: 1,341 times | Joined on Oct 2009 @ Germany
#4
Originally Posted by emesem View Post
The first thing is no problem and already implemented. But I would call it "Start+Pause Mode". As I implemented it I regarded a "stop" function as useless , because you can either pause or do a reset.
Mmh... how could I activate the Start+Pause Mode?

I can only find a Pause button in the menu. But that does not do what this use case needs.
I want to fast stop the time. And after I'm ready again fast start it to time the next elapse.

Originally Posted by emesem View Post
The second thing can be done by the simple brightness applet. But I think it could be easy to integrate the request functionality also into push-it. But it is not really the linux/kiss approach. But not complex anyhow.
Yes, I have the simple brightness applet installed. But in my opinion Push-It! should do it itself. If you measure more than 2 minute periods without looking at the screen the user could miss what they try to get with your application.

Originally Posted by emesem View Post
I hope I find the time to also implement that and then build a package. Hopefully it will be in extras-devel this evening, if not my deadline is this time next week .
Thanks a lot.

Originally Posted by emesem View Post
But if you would use the rubics rube of the ovi store, you would not run into the screensaver problem . But I dislike the rubics cube game on the N900. I prefer the mechanical version.
I've tested the [XXX] from ovi store. But I prefer the real cube in my hand, too. It doesn't shuffle the colors while trying to solve.
 
Posts: 118 | Thanked: 45 times | Joined on Dec 2009 @ Germany
#5
Originally Posted by Helmuth View Post
Mmh... how could I activate the Start+Pause Mode?
I'm sorry, I've done it in my development environment. It is not yet released. But I'll guess I make a single release for that feature and then I will take my time to figure out how to do that screensaver disabling.
 

The Following User Says Thank You to emesem For This Useful Post:
Helmuth's Avatar
Posts: 1,259 | Thanked: 1,341 times | Joined on Oct 2009 @ Germany
#6
Originally Posted by emesem View Post
I'm sorry, I've done it in my development environment. It is not yet released. But I'll guess I make a single release for that feature and then I will take my time to figure out how to do that screensaver disabling.
Don't do additional work only to relase it earlier. I'm patient and can wait until you're satisfied with your code.

I have a other and better Idea to budget your time instead of packaging a minor relase...

What about creating in the opposite a lock screen mode? (if possible)

If the user locks the screen itself while your application is running start a background measurement as soon as the user has pressed the camera button (full press). You could indicate this with a sound. And every time the user make a full press of the camera button take the time (with a click sound as response) and as soon as the user unlocks the screen the background measurement is finished.
Okay. A lot of work and I do not need it myself. But I guess the best way to implement a good stopwatch for sports where you have to look what you try to time and not at the screen of your mobile.
But I don't know if it is possible to query the camera button during the screen is locked. Perhaps there is during this time no D-Bus Signal to minimize battery consumption. I don't know.
 

The Following User Says Thank You to Helmuth For This Useful Post:
Posts: 118 | Thanked: 45 times | Joined on Dec 2009 @ Germany
#7
A new version of push-it is available through extras-devel.

http://maemo.org/packages/package_in...sh-it/0.1.0-2/

That version holds the "start+pause mode". Maybe there is a better name for that ^^?

The screensaver-turn-off-thing will come later and the camera-button-thing is also a good idea, but that is a brand new experience for me. But thank you for your inputs. I think in my next holidays I should be able to focus on the stuff .
Let's see what the time brings.
 

The Following User Says Thank You to emesem For This Useful Post:
Helmuth's Avatar
Posts: 1,259 | Thanked: 1,341 times | Joined on Oct 2009 @ Germany
#8
Originally Posted by emesem View Post
A new version of push-it is available through extras-devel.
Thanks a lot. Works great!

Originally Posted by emesem View Post
That version holds the "start+pause mode". Maybe there is a better name for that ^^?
I'm fine with this name. In my opinion it explains exactly what the user gets. But I'm not a native speaker.

Originally Posted by emesem View Post
The screensaver-turn-off-thing will come later and the camera-button-thing is also a good idea, but that is a brand new experience for me. But thank you for your inputs. I think in my next holidays I should be able to focus on the stuff .
Let's see what the time brings.
Thanks, and I have now exactly the right tool to time this period until you're finished.
It was only a Idea... I don't know if it's possible to read from this button when the screen is locked.
 
Posts: 118 | Thanked: 45 times | Joined on Dec 2009 @ Germany
#9
Now there is a new version extras-devel/extra-testing.

This version allows you to disable the screensaver (menu item "Disable Screensaver"). But it won't be done automatically. However push-it now stores most of the customizable settings. That means if you have disabled the screensaver once, push-it will know on the next execution and will start with disabled screensaver. The screensaver will be disabled as long as push-it is running.

All versions including this have the bug, that if the screen is of, push-it still takes 7-15% cpu time and therefor draining the battery. I still need to find out how to fix that.
 

The Following User Says Thank You to emesem For This Useful Post:
Jaffa's Avatar
Posts: 2,535 | Thanked: 6,681 times | Joined on Mar 2008 @ UK
#10
Sorry for not replying sooner.

Short version (from a Gtk+ point of view): when you register with osso_context you can register for a DBus signal, sent when the display blanks/gets locked. Listen for that and stop all timers, saving off the current time and timer position. Stop updating the screen.

Similarly, there's a window property (or go off focus) which you can do similar with.

I don't know, OTTOMH, how to do these things in Qt; but those are the two main events you want to be listening for: not being on-top (and therefore visible) and the screen being locked/blanked (and therefore not being visible).
__________________
Andrew Flegg -- mailto:andrew@bleb.org | http://www.bleb.org
 

The Following 2 Users Say Thank You to Jaffa For This Useful Post:
Reply


 
Forum Jump


All times are GMT. The time now is 08:19.