2012/10/19

雑なリマインダ

「客先のfooさんにhogeの件で電話をかける」などのタスクはGoogle CalendarやGoogle Tasksで管理している。でも実際電話したら不在だったので「30分後にもう一度電話する」というタスクを忘れてしまう。ということで、こんな雑なリマインダを使ってる。
@ECHO --------------------------------------------
@ECHO 指定秒後にメッセージを表示します
@ECHO --------------------------------------------
@SET /p MESSAGE_TEXT="メッセージを入力して下さい > "
@SET /p SLEEP_SECONDS="待機秒数を指定して下さい > "
@TIMEOUT /T %SLEEP_SECONDS% /NOBREAK
@MSG console %MESSAGE_TEXT%
view raw reminder.bat hosted with ❤ by GitHub
リマインダが欲しいけど、そのためにソフトを常駐させるのも嫌なので、こんなの使ってる。

そういえば以前こんなの作ってた。console版のプログレスバー付きタイマーといったところ。notify-sendと組み合わせればリマインダになるな。
#!/usr/local/bin/gosh
(use srfi-13)
(use text.progress)
(use gauche.parseopt)
(define (usage)
(print "Usage: progress-timer [options ...] message")
(print " - t|title : default empty")
(print " - s|sleep : 3m = 3 minutes")
(print " 3s = 3 seconds")
(print " 3 = 3 milliseconds")
(print " defualt 0")
(print " - h|help : usage")
(exit 2))
(define (num-format cur max)
(format "~3d%" (round->exact (/. (* cur 100) max))))
(define (decompose-unit unit)
(let1 len (string-length unit)
(rxmatch-if (#/[0-9]+$/ unit)
(num)
(values (x->integer num) 'default)
(values (x->integer (string-take unit (- len 1)))
(string->symbol (string-drop unit (- len 1)))))))
(define (unit->millisecond unit)
(receive (num suffix)
(decompose-unit unit)
(* num (case suffix
((s) 1000)
((m)(* 1000 60))
(else 1)))))
(define (main args)
(let-args (cdr args)
((title "t|title=s" "timer")
(n "s|sleep=s" "0")
(h "h|help" => usage)
. rest)
(let ((p (make-text-progress-bar :header title
:header-width (+ (string-length title) 1)
:num-format num-format
:num-width 5
:max-value 100
:port (current-error-port)))
(interval (/ (unit->millisecond n) 100))
(message (and (not (null? rest))
(car rest))))
(dotimes (i 100)
(p 'inc 1)
(sys-nanosleep (* interval 1000000)))
(p 'finish)
(when message
(print message)))))


と、思ったら、こんなの作ってた。

0 件のコメント:

コメントを投稿