Números aleatorios en AppleScript

A veces en nuestros scripts puede que nos interese tener un poco de azar para bien ofrecer diversión al usuario u optimizar un algoritmo.

AppleScript nos ofrece el comando random number para generar números aleatorios.

Su sintaxis es muy simple:


set azar to random number
set dado to random number from 1 to 6

Con esto es muy sencillo el poder crear, por ejemplo, un script para simular una tirada de un dado de 6 caras.


set dado to random number from 1 to 6
set dadoText to dado as text

display alert "En el dado ha salido el número " & dadoText

Mejorando nuestra salud gracias a AppleScript

Es conocido que la empresa Apple está incluyendo en todos sus dispositivos móviles elementos y características para mejorar la salud de sus clientes. En el Apple watch, por ejemplo, existe una característica que nos invita a levantarnos de la silla cada hora para que mejoremos nuestra salud y adoptemos hábitos saludables.

En MacOS todavía no se ha incluido ninguna de estas características pero gracias a AppleScript podemos crear nuestras propias soluciones.

Descripción de la solución

Queremos crear con AppleScript una aplicación que cada hora nos muestre un aviso para que nos levantemos de nuestro sitio durante al menos un minuto.

Con lo que hemos aprendido en artículos anteriores esto no es demasiado complicado.

Debemos aprovechar el evento idle para crear una aplicación con AppleScript que se ejecute automáticamente cada 60 segundos y compruebe la hora. Si el valor de los minutos del reloj es igual a 50 entonces mostramos nuestro aviso.

El código podría ser algo como lo siguiente:


on mostrarAviso()
display alert "Levántate durante un minuto"
end mostrarAviso

on idle
set currentDate to current date
set minutos to (currentDate's minutes)
if minutos = 50 then
mostrarAviso()
end if
return 60
end idle

Recuerda exportar el script como aplicación como se indicó en el artículo Eventos de ejecución en aplicaciones creadas con AppleScript para que el evento idle funcione de forma apropiada.

Propuestas de mejora

El script es sencillo y funciona pero se puede mejorar de muchas formas. A continuación se indican algunas posibles mejoras que puedes incluir investigando un poco con AppleScript:

  • Reproducir un sonido de campana para que el usuario no se confunda con otra notificación
  • En lugar de mostrar una alerta ejecutemos el salvapantallas de MacOS para obligar al usuario a dejar de trabajar
  • Contabilizar cuántas horas se ha mostrado el aviso para dejar de hacerlo tras 12 horas como sucede en el Apple Watch
  • Mostrar una alerta personalizada indicando cuántas horas nos quedan por levantarnos para motivar más al usuario

Todas estas propuestas se pueden realizar con lo que ya hemos ido aprendiendo en los artículos publicados sobre AppleScript e investigando un poco.