2022-11-29に更新

事故物件的なポモドーロ タイマー

たのまれたので、なんとかする予定のプログラム。

ポモドーロタイマー。

ポモドーロタイマーとは、ポモドーロがイタリア語でトマト、でタイマーはキッチンタイマーのタイマー。

トマト キッチンタイマーなんだけど、そっちが主ではなくて、そのタイマーではかる時間のことを指している。
なにかクリエーティブな作業をするときの時間配分で、2時間かけたい場合、25分間作業して、5分間休憩して、25分間作業して、5分間休憩して、
25分間作業して、5分間休憩して、25分間作業して、15分間休憩してというようにすると、いい感じで集中してられる、というライフハックのことをポモドーロタイマーというらしい。

end time 17:28:35

1 pomodoro = 25min, rest = 5min
long rest = 15min

 1 pomodoro 25min -> rest 5min -> 1 pomodoro 25min -> rest 5min
 1 pomodoro 25min -> rest 5min -> 1 pomodoro 25min -> long rest 15min

total 130min

pomodoro: 1
total time: 16 min
remain: 9 min

now 15:35:08

さっと作ってみてポモドーロタイマーを検索したらいっぱいありそう。

たのまれたのは、たぶんそういうのじゃないのでしばらく時間がかかりそう。

パピヨン本田のマンガを読んでリラックスしよう。

https://twitter.com/papiyonhonda/status/1475425058684551176?s=20&t=LHttfuow8JjZmaKTEYmpQQ

papiyonhonda

基本的には、このようなかんじか。
Ruby
https://rentry.co/uf7d5

問題なければ、機能を付けていく。
まだロジックを考えてないが、ひとまず間違いがないかチェック。

うん、なんかまちがっているね。

どこがおかしいかなということでチェックしていこう。

1 require 'time'
2
3 pomo = ARGV[0].to_i # 1 pomodoro durations
4 interval = ARGV[1].to_i # rest durations
5 long_rest = ARGV[2].to_i # long rest durations
6
7 one_set = pomo*4 + interval*3 + long_rest # min
8 puts one_set # min                                                                    
9
10 tempotime_0 = Time.new
11 tempotime = Time.new
12 mission_finish_time = tempotime_0 + one_set*60 # sec
13 puts tempotime_0
14 puts mission_finish_time
15 minutes = (mission_finish_time - tempotime_0).to_i.div(60)
16 puts "#{minutes/60}:#{minutes%60}"
17 exit
60  while seconds < 60 do
61    t = Time.new
62
63    if (t - tempotime > 1)

のとこは

60  while seconds < 60 do
61    t = Time.new
62
63    if ((t - tempotime).to_i > 0)

こうしといて。

ここもおかしくなるので、

92        puts "remain: #{(((tempotime_0 + pomo*60)-t).to_i).div(60)} min #{(((tempotime_0 + pomo*60)-t).to_i).modulo(60)} sec"

これでいいんじゃない。

92        puts "remain: #{((tempotime_0 + pomo*60*pomodoro + resttimes*60*(pomodoro - 1)) - t).to_i.div(60)} min #{(((tempotime_0 + pomo*60*pomodoro + resttimes*60*(pomodoro - 1)) - t).to_i).modulo(60)} sec"

いちおう、ベースはできた。基本的にはこれで良さそう。
Ruby
https://rentry.co/pvmdk

間違うところもよくわかったので、初めて Dart をどうやって書くのか読みながらヨチヨチと Ruby で書いたものと同じような感じにしてみる。
Dart
https://rentry.co/369sd

ツイッターでシェア
みんなに共有、忘れないようにメモ

tomato

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント