tag:crieit.net,2005:https://crieit.net/tags/%E3%83%88%E3%83%9E%E3%83%88/feed 「トマト」の記事 - Crieit Crieitでタグ「トマト」に投稿された最近の記事 2022-11-29T17:08:40+09:00 https://crieit.net/tags/%E3%83%88%E3%83%9E%E3%83%88/feed tag:crieit.net,2005:PublicArticle/18319 2022-11-23T17:55:13+09:00 2022-11-29T17:08:40+09:00 https://crieit.net/posts/acea21ee905aaf3997a8f1856b504303 事故物件的なポモドーロ タイマー <p>たのまれたので、なんとかする予定のプログラム。</p> <p>ポモドーロタイマー。</p> <p>ポモドーロタイマーとは、ポモドーロがイタリア語でトマト、でタイマーはキッチンタイマーのタイマー。</p> <p>トマト キッチンタイマーなんだけど、そっちが主ではなくて、そのタイマーではかる時間のことを指している。<br /> なにかクリエーティブな作業をするときの時間配分で、2時間かけたい場合、25分間作業して、5分間休憩して、25分間作業して、5分間休憩して、<br /> 25分間作業して、5分間休憩して、25分間作業して、15分間休憩してというようにすると、いい感じで集中してられる、というライフハックのことをポモドーロタイマーというらしい。</p> <pre><code>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 </code></pre> <p>さっと作ってみてポモドーロタイマーを検索したらいっぱいありそう。</p> <p>たのまれたのは、たぶんそういうのじゃないのでしばらく時間がかかりそう。</p> <p>パピヨン本田のマンガを読んでリラックスしよう。</p> <p><a target="_blank" rel="nofollow noopener" href="https://twitter.com/papiyonhonda/status/1475425058684551176?s=20&t=LHttfuow8JjZmaKTEYmpQQ">https://twitter.com/papiyonhonda/status/1475425058684551176?s=20&t=LHttfuow8JjZmaKTEYmpQQ</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://mobile.twitter.com/papiyonhonda/status/1589904538404007936/photo/1">papiyonhonda</a></p> <p>基本的には、このようなかんじか。<br /> Ruby<br /> <a target="_blank" rel="nofollow noopener" href="https://rentry.co/uf7d5">https://rentry.co/uf7d5</a></p> <p>問題なければ、機能を付けていく。<br /> まだロジックを考えてないが、ひとまず間違いがないかチェック。</p> <p>うん、なんかまちがっているね。</p> <p>どこがおかしいかなということでチェックしていこう。</p> <pre><code class="ruby">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 </code></pre> <pre><code class="ruby">60 while seconds < 60 do 61 t = Time.new 62 63 if (t - tempotime > 1) </code></pre> <p>のとこは</p> <pre><code class="ruby">60 while seconds < 60 do 61 t = Time.new 62 63 if ((t - tempotime).to_i > 0) </code></pre> <p>こうしといて。</p> <p>ここもおかしくなるので、</p> <pre><code class="ruby">92 puts "remain: #{(((tempotime_0 + pomo*60)-t).to_i).div(60)} min #{(((tempotime_0 + pomo*60)-t).to_i).modulo(60)} sec" </code></pre> <p>これでいいんじゃない。</p> <pre><code class="ruby">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" </code></pre> <p>いちおう、ベースはできた。基本的にはこれで良さそう。<br /> Ruby<br /> <a target="_blank" rel="nofollow noopener" href="https://rentry.co/pvmdk">https://rentry.co/pvmdk</a></p> <p>間違うところもよくわかったので、初めて Dart をどうやって書くのか読みながらヨチヨチと Ruby で書いたものと同じような感じにしてみる。<br /> Dart<br /> <a target="_blank" rel="nofollow noopener" href="https://rentry.co/369sd">https://rentry.co/369sd</a></p> tomato