Virtualiza cualquier sistema operativo en tu Mac gracias a UTM

La virtualización de un sistema operativo sobre otro es una posibilidad para dar la oportunidad al usuario a utilizar lo más apropiado en cada momento permitiendo a una persona poder usar Safari en MacOS mientras edita un documento en Microsoft Word en Windows 10 en una misma máquina. Hemos hablado de estas posibilidades en el artículo de convivencia de Windows y MacOS en hardware de apple.

Aunque en MacOS ya existían soluciones para virtualizar sistemas operativos sobre MacOS con la llegada de los nuevos procesadores Apple M1 estas soluciones dejaron de ser eficientes o totalmente incompatibles.

Tanto VMWare fusion como el proyecto VirtualBox sólo pueden ejecutarse, por ahora, en procesadores X86 y X64 por lo que no puede funcionar en procesadores Apple M1. La solución de Parallels ofrece una solución compatible con procesadores Apple M1 pero su falta de accesibilidad lo hacen incompatible con los usuarios con discapacidad.

Fue la propia Apple quien ofreció una solución para poder ejecutar de forma virtual sistemas operativos de tipo ARM64 sobre sus nuevos procesadores. Esta tecnología se conoce como Hypervisor Virtualization Framework.

El Open source al rescate

Gracias a esta tecnología de Hypervisor Virtualization Framework la comunidad de desarrolladores de software para MacOS pudo crear el proyecto UTM.

UTM es una solución software para ejecutar distintos sistemas operativos sobre hardware Mac. Aunque oficialmente puede trabajar con sistemas operativos ARM64 también se pueden instalar versiones para procesadores PPC, ARM32, X86 y X64.

Apoyo al proyecto

Aunque UTM se puede descargar gratuitamente de la página del proyecto UTM también podemos descargar UTM de la MacAppStore por un precio de 10 euros.

Descargar la aplicación de la MacAppStore nos da la tranquilidad de tener todas las actualizaciones de forma automática y cómoda sin necesidad de volver a instalar nada.

Accesibilidad de UTM

A diferencia del proyecto VirtualBox y Parallels la interfaz gráfica de usuario que presenta UTM es nativa de MacOS y resulta totalmente accesible con VoiceOver y otros productos de apoyo.

Instalación de un sistema operativo

Con UTM es sencillo crear una nueva máquina virtual. Simplemente utilizamos la opción de crear una nueva máquina virtual, indicamos el tipo de sistema operativo, asignamos memoria RAM, número de núcleos del procesador a virtualizar, espacio en disco duro y, una vez creada, podemos configurar una unidad de CD/DVD virtual que apunte a un fichero en formato ISO o crear una carpeta compartida entre el sistema operativo anfitrión y el virtualizado para poder compartir ficheros.

Tras esta configuración procedemos a ejecutar la máquina para instalar el sistema operativo utilizando tanto video con una resolución suficiente como acceso a la tarjeta de sonido.

Drivers para el hardware gracias también a UTM

El propio proyecto UTM nos proporciona la posibilidad de descargar un paquete de instalación de drivers para el hardware virtualizado por UTM para tener un correcto acceso a servicios de red, multimedia, carpetas compartidas y puertos USB.

Este paquete se conoce como Spice guest tools and Qemu drivers y se pueden encontrar en la página de soporte de UTM.

Galería de instalaciones para hacerlo aún más fácil

UTM nos ofrece una galería de máquinas predefinidas para Linux y Windows donde se nos ofrecen descargas e instrucciones para completar con éxito la instalación de una de estas máquinas.

Accesibilidad en la instalación

En cuanto a la accesibilidad del proceso con las funciones de lectura de imágenes de VoiceOver podemos llegar a leer las pantallas de arranque aunque el momento más crítico es cuando el arranque de la máquina nos pide que pulsemos una tecla para arrancar desde la unidad CD/DVD que es donde se aloja virtualmente el fichero ISO con el instalador del sistema operativo.

El resto de la interfaz de UTM es totalmente compatible con la accesibilidad de MacOS.

Crea un script para contar tiempo en AppleScript

A veces puede que necesitemos contar cuánto tiempo ha transcurrido desde un evento a otro mientras utilizamos nuestro equipo con MacOS. Con AppleScript podemos crear un script que realice esta cuenta de tiempo.
Con lo que conocemos de AppleScript y lo visto en los artículos de Crea un cronómetro de cuenta atrás en AppleScript, Controlar variables no definidas en AppleScript y Obtener la hora actual en AppleScript de distintas formas podemos crear el siguiente script:

global timeValue, counting

on getTimeInSeconds()
	-- set t to (time of (current date))
	return (time of (current date)) as number
end getTimeInSeconds

on startCount()
	set counting to true
	set timeValue to getTimeInSeconds()
	say ("Contando")
end startCount

on stopCount()
	set numberOfSeconds to getTimeInSeconds() - timeValue as integer
	set numberOfHours to numberOfSeconds / 3600 as integer
	if numberOfHours > 0 then
		set numberOfSeconds to numberOfSeconds - (numberOfHours * 3600) as integer
	end if
	set numberOfMinutes to numberOfSeconds / 60 as integer
	if numberOfMinutes > 0 then
		set numberOfSeconds to numberOfSeconds - (numberOfMinutes * 60) as integer
	end if
	say ("Tiempo transcurrido " & numberOfHours & " horas, " & numberOfMinutes & " minutos y " & numberOfSeconds & " segundos.")
	set timeValue to 0
	set counting to false
end stopCount

on run
	try
		if counting = false then
			startCount
		else
			stopCount()
		end if
	on error number -2753
		startCount()
	end try
end run

Obtener la hora actual en AppleScript de distintas formas

En AppleScript podemos obtener la hora actual de diversas formas según qué necesitemos hacer.
Podemos obtener la hora actual en horas, minutos y segundos de la siguiente forma:

set tiempo to (time string of (current date))
display dialog tiempo

Pero podemos obtener el número de segundos transcurridos desde la madrugada hasta ahora:

set tiempoEnSegundos to (time of (current date)) as number
display dialog tiempoEnSegundos

Con cada una de las formas podemos realizar distintas funcionalidades y herramientas.

Crea un cronómetro de cuenta atrás en AppleScript

Crear  a mano un simple cronómetro para controlar que no se nos pase el tiempo delante de nuestro ordenador es algo sencillo con unos pocos conocimientos de AppleScript.

Con los artículos publicados en este sitio web tenemos la información suficiente para crear un script que nos pregunte cuántos segundos queremos para la cuenta atrás y que tras finalizar la cuenta atrás reproduzca un sonido.

El código sería el siguiente:

on playSound(soundFileName)
	do shell script "afplay /System/Library/Sounds/" & soundFileName
end playSound

on run
	set numberOfSeconds to text returned of (display dialog "Introduzca los segundos para la cuenta atrás" default answer "")
	delay numberOfSeconds
	playSound("Glass.aiff")
end run

Es un script sencillo que puede ser mejorado fácilmente incluyendo, por ejemplo, soporte para reconocer horas y minutos.

Instala aplicaciones de iPhone y iPad en tu equipo Mac con chip M1 desde la MacAppStore

Desde que Apple sacó al mercado sus nuevos ordenadores con chip M1 es posible instalar apps de iPhone e iPad y utilizarlas en los
ordenadores.

Las aplicaciones para iPhone e iPad que resultaban accesibles en los dispositivos con el sistema operativo iOS mantienen su accesibilidad cuando se ejecutan en un dispositivo MacOS con chip M1 por lo que se pueden utilizar las mismas aplicaciones desde el iPhone y desde el mac.

Instalación

El proceso de instalación es sencillo. Simplemente abre la MacAppStore de tu mac, utiliza el buscador y en la barra de herramientas elige la opción de Apps para iPhone y iPad y busca en los resultados.

Una vez instalada la app podrás encontrarla en tu carpeta de aplicaciones de Mac y ejecutar la aplicación como una más de MacOS.

Volver a jugar a juegos como Buscaminas accesible o Sopa de letras accesible ya es posible desde tu mac.

Cómo ejecutar un script de AppleScript desde Swift

Aunque lenguajes de programación como Swift, Objective-C o Java nos permiten crear aplicaciones para Mac potentes y rápidas a veces hay funciones que AppleScript si puede hacer y otros lenguajes para Mac no pueden.

Un ejemplo de algo que AppleScript puede hacer con facilidad es consultar el estado y modificar el comportamiento de otra aplicación. Esto se debe a que muchas aplicaciones de MacOS incluyen librerías y diccionarios de soporte de AppleScript para que el propio sistema operativo pueda entablar comunicaciones con las aplicaciones.

Dentro de una aplicación podemos mezclar lenguajes de programación para conseguir los beneficios de todos ellos. Por ejemplo, crear un script en Swift que ejecute un script de AppleScript para manipular una aplicación.

Continuar leyendo «Cómo ejecutar un script de AppleScript desde Swift»