ポモドーロタイマー
ポモドーロタイマー
omoiyari.fmというpodcastが面白しろくて、最近は毎日聴講しています.
Web業界は異分野ですが、マネージメントやチームビルディング等、分野に関わらず活用できそうな"意識の高い"お話が聴ける貴重なコンテンツだと感じています
(有料でもよさそうだけど. 無料のまま続けて欲しい..)
さて、第0回から聴き進めて着ましたが、第22回が衝撃で3日連続で聴いてしまいました。
kakakakakuさんのインパクトにやられてます
#22 「Trello があるので眠れない」 | #omoiyarifm
ツールや自己管理の手法が参考になる部分が多く. リピートしてました.
このブログも今年は触ってなかったのですが。kakakakakuさんに大分刺激を受けたので、なにも考えずブログをスタートしようとおもったしだいです
「ブログを書く技術」を発表した - kakakakakku blog
そこででてくるポモドーロ・テクニックというkakakakakuさんも実践されているお話がありました
自己流ポモドーロを実践している話 - kakakakakku blog
私は30分刻みで休憩無しでやっていたのですが、やはり上の方々は休憩まで考えるのかと勉強になりました。ほとんど勢いで90分ぐらいコーディングしてしまうので、自分を止めてくれるような仕組みが欲しいと思ったので、「作業を強制的に止めてくれる」ポモドーロ タイマーを作ってみます。
とりあえず作る
まずはプロジェクトを立ち上げる。 既存ツールは調べない。手段が目的。
一応ちょい設計
- 要件1: 25分後にメッセージを表示
- 要件2: 強制的に作業を止めるように仕向ける
- 要件3: 強制的に5分間休憩させる
フォームサイズは固定の方がいいでしょう。 「それしかできないがカッコイイ」
フォームのサイズを変更できないようにする - .NET Tips (VB.NET,C#...)
必要な要素は以下のような感じでしょうか
5休憩の部分で上手い設計が必要となりそうですが 手段が目的なので、ひたすら描き続けます。
まずはタイマーを二つ作ります
タイマー処理の利用 - 一定間隔で処理を実行する (C#プログラミング)
とおもったら、ストップウォッチクラスがあった
Stopwatch.Elapsed Property (System.Diagnostics) | Microsoft Docs
カスタム TimeSpan 書式指定文字列 | Microsoft Docs
private int WorkingTimeLimitMin = 25; //分 25; private int RelaxTimerLimitMin = 5; //分 5; private Stopwatch stopwatch; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // ストップウォッチを初期化 this.stopwatch = new Stopwatch(); this.stopwatch.Start(); // 残り時間を初期化 label_lasttime.Text = "25"; } private void timer_every1s_Tick(object sender, EventArgs e) { TimeSpan elapsed = this.stopwatch.Elapsed; TimeSpan timeLimit = new TimeSpan(0, WorkingTimeLimitMin, 0); TimeSpan lastTime = timeLimit - elapsed; // 経過時間を表示 this.label_lasttime.Text = elapsed.ToString(@"mm\:ss"); // 残り時間 表示 //this.label_lasttime.Text = timeLimit.ToString(@"mm\:ss"); }
これでカウントアップ(ダウン)ができた.
さて、いくらか25分たったら、アラートを出す
- 状態遷移
- wait
- [Start Action]
- Working
- [elapsed > workingTimeLimit]
- Relaxing
- [elapsed > RelaxingTimeLimit]
- wait
enumで状態を作ってそれで管理するか... 行き当たりばったりで、enumで管理するとコードがごちゃごちゃする. それでも最後までいけるか。
enum TimerState { Wait, Working, Relax } private TimerState AppState = TimerState.Wait;
デザイン
色々色をいじっていたら、いうことを聴かなくなった。。。
C# WindowsFormはよくこうなる。よく分からん。
C#でColorの値をリストアップしてみる - takoashiの開発記録
なんとかできました。 強制的に最前面表示になり、操作できないようになります。 強制的に最前面・最大画面になるので、他の操作が出来ません。 本アプリ落とすのも大変かもしれません。
フォームを最小化あるいは最大化する - .NET Tips (VB.NET,C#...)
- 待機画面
- タスク30分タイマ
- 休憩5分タイマ
icon
icon作ります 小さいのでこだわっても見えません
でも有るのとないのでは大違いなので気楽に作ります
iconはこちらで作ります
マルチアイコン生成ウェブアプリ - ウェブアプリ - カンタローCGI
Illustratorから500x500のPNGを吐き出し、.icoファイルに変換してもらいます
良い感じではないでしょうか とりあえず小さくなるので、何かあれるだけでいい
READMEを描いてたらアイキャッチ画像が欲しくなってきた。。。
眠い..
癒しのスカイブルーで統一
README
READMEを描かないと。。。
動かせば分かる。はず。。
READMEの良さそうな書き方・テンプレート【GitHub/Bitbucket】 - karaage. [からあげ]
これがGo言語とかなら、OSS的な感じになるんだろうなー
リリース
https://github.com/peace098beat/PomodoroTimer
githubにあげました. もし使ってもらえましたら嬉しいです
明日から会社で試してみよう
ふぃ
関連
「プログラマならキッチンタイマぐらい作れないと」
初心の頃、キッチンタイマを作ったことを思い出した。
- 作者: Staffan Noeteberg,渋川よしき,渋川あき
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/12/16
- メディア: 単行本(ソフトカバー)
- 購入: 13人 クリック: 330回
- この商品を含むブログ (56件) を見る
- 出版社/メーカー: 佐藤金属興業
- メディア: ホーム&キッチン
- この商品を含むブログを見る
- 出版社/メーカー: Masayuki
- 発売日: 2018/09/13
- メディア: アプリ
- この商品を含むブログを見る