Re: [O] random weekly event

2014-07-16 Thread Ivan Kanis
July, 15 at 23:58 Thorsten Jolitz wrote:

 Ivan Kanis i...@kanis.fr writes:

 I need to have org agenda (and then appt) manage an event once a week.
 The catch is that is should happen at a random day and hour.

 My thinking is that populating programmatically a year entry is probably
 the sanest way to go about it.

 Has anyone else done it?

 This is not an arcane scientific solution, but should give a random
 timestamp for between tomorrow and the end of the current week. You
 could write a function (using run-with-timer) that runs this sunday at
 00:00h and inserts a todo item with the returned timestamp into an
 agenda file:

Hi Thorsten,

Thanks it will get me there when I will write it. I turn off emacs at
home and at work so the run-with-timer will not work.

Take care,

Ivan
-- 
Hard drive sleeping. Let it wake up on it's own...
-- BOFH excuse #43



[O] random weekly event

2014-07-15 Thread Ivan Kanis
Hi,

I need to have org agenda (and then appt) manage an event once a week.
The catch is that is should happen at a random day and hour.

My thinking is that populating programmatically a year entry is probably
the sanest way to go about it.

Has anyone else done it?

Ivan
-- 
Repeated reboots of the system failed to solve problem.
-- BOFH excuse #20



Re: [O] random weekly event

2014-07-15 Thread Thorsten Jolitz
Ivan Kanis i...@kanis.fr writes:

 Hi,

 I need to have org agenda (and then appt) manage an event once a week.
 The catch is that is should happen at a random day and hour.

 My thinking is that populating programmatically a year entry is probably
 the sanest way to go about it.

 Has anyone else done it?

This is not an arcane scientific solution, but should give a random
timestamp for between tomorrow and the end of the current week. You
could write a function (using run-with-timer) that runs this sunday at
00:00h and inserts a todo item with the returned timestamp into an
agenda file:

#+begin_src emacs-lisp
(defun tj/return-random-timestamp-this-week ()
   Insert random timestamp for this week.
  (interactive)
  (let* ((cal-info (decode-time (current-time)))
 (dow (nth 6 cal-info))
 (year (nth 5 cal-info))
 (month (nth 4 cal-info))
 (day (nth 3 cal-info))
 (hour (nth 2 cal-info))
 (random-day (+ day (1+ (random (- 5 dow)
 (random-hour (random 23))
 (random-minute (random 59))
 (random-second (random 59)))
(format-time-string %D %R
   (encode-time random-second
random-minute
random-hour
random-day
month
year

#+end_src

#+results:
: tj/return-random-timestamp-this-week


#+begin_src emacs-lisp :results raw
(let (res)
 (dotimes (i 10 res)
   (setq res (concat
  res
  (format %d: %s\n
 (1+ i)
 (tj/return-random-timestamp-this-week))
#+end_src

#+results:
1: 07/17/14 17:39
2: 07/16/14 18:18
3: 07/18/14 19:21
4: 07/17/14 12:58
5: 07/16/14 15:30
6: 07/16/14 16:17
7: 07/16/14 04:10
8: 07/16/14 21:37
9: 07/17/14 19:22
10: 07/16/14 13:39


-- 
cheers,
Thorsten




Re: [O] random weekly event

2014-07-15 Thread Thorsten Jolitz
Thorsten Jolitz tjol...@gmail.com writes:

 Ivan Kanis i...@kanis.fr writes:

 #+begin_src emacs-lisp
 (defun tj/return-random-timestamp-this-week ()
Insert random timestamp for this week.
   (interactive)
   (let* ((cal-info (decode-time (current-time)))
(dow (nth 6 cal-info))
(year (nth 5 cal-info))
(month (nth 4 cal-info))
(day (nth 3 cal-info))
(hour (nth 2 cal-info))
(random-day (+ day (1+ (random (- 5 dow)
(random-hour (random 23))
(random-minute (random 59))
(random-second (random 59)))
 (format-time-string %D %R
  (encode-time random-second
   random-minute
   random-hour
   random-day
   month
   year


ups, should be probably rather this:
 
,
| (random-day (+ day (1+ (random (- 7 dow)
`

limit is not included, see

,[ C-h f random RET ]
| random is a built-in function in `C source code'.
| 
| (random optional LIMIT)
| 
| Return a pseudo-random number.
| All integers representable in Lisp, i.e. between `most-negative-fixnum'
| and `most-positive-fixnum', inclusive, are equally likely.
| 
| With positive integer LIMIT, return random number in interval [0,LIMIT).
| With argument t, set the random number seed from the current time and pid.
| With a string argument, set the seed based on the string's contents.
| Other values of LIMIT are ignored.
| 
| See Info node `(elisp)Random Numbers' for more details.
| 
| [back]
`

-- 
cheers,
Thorsten




Re: [O] random weekly event

2014-07-15 Thread Thorsten Jolitz
Thorsten Jolitz tjol...@gmail.com writes:

 ups, should be probably rather this:
  
 ,
 | (random-day (+ day (1+ (random (- 7 dow)
 `

grrr ... (- 6 dow) of course 

-- 
cheers,
Thorsten