Indentar el código en Visual studio Code

La herramienta de edición de código Visual studio code o más conocido como VSCode proporciona multitud de atajos de teclado y herramientas para hacer el trabajo de codificación más sencillo.

Ya vimos lo importante que es indentar bien el código fuente para que nuestro código sea más limpio y legible.

Una buena herramienta de edición de código debe incorporar algún mecanismo que nos permita corregir los errores de indentación de nuestro código y VSCode incorpora un atajo de teclado para ello.

Primero deberíamos seleccionar todo el código de nuestro fichero y luego pulsar el atajo de teclado correspondiente.

En el caso de Windows este atajo es Mayúsculas+Alt+F.

En el caso de MacOS el atajo es Mayúsculas+Opción+F.

Por último en el caso de Linux es Control+Mayúsculas+I.

Si tomamos como hábito antes de cerrar un fichero de código el corregir el nivel de indentación del mismo nos aseguraremos que todo nuestro código posee una buena indentación que mejora su legibilidad.

Conocer la hora, el nivel de batería y la señal Wifi con VoiceOver en MacOS Ventura sin AppleScript

La nueva versión de MacOS conocida como Ventura ha proporcionado varias novedades y otras que no lo son tanto.

Como novedad para VoiceOver se ha incluido la opción de pulsar VO+F7 para conocer la hora y fecha. Si lo volvemos a pulsar VoiceOver nos dirá el estado de la batería. Por último si lo volvemos a pulsar VoiceOver nos dará indicaciones del estado de conectividad Wifi.

Todas esta información se puede obtener mediante Applescript para versiones anteriores de MacOS y usando las funciones de VoiceOver de ejecutar AppleScript por lo que desluce muchísimo el caracter de novedad para MacOS Ventura.

Conocer el nivel de indentación del texto en MacOS Ventura sin necesidad de scripts

En versiones anteriores de MacOs sólo podíamos conocer el nivel de indentación del código mediante AppleScript.

Desde MacOS Ventura 13.0 ya está disponible una opción para que VoiceOver nos anuncie que ha cambiado el nivel de indentación.

Para configurar esta opción debemos abrir las opciones de VoiceOver pulsando VO+F8 y visualizando la categoría Verbosidad.

Dentro de Verbosidad encontramos la pestaña Texto y allí tenemos la opción Tabulación principal y espacio de la sangría:.

Esta opción de Tabulación principal y espacio de la sangría: nos permite modificar el comportamiento de VoiceOver cada vez que estemos navegando por un texto y haya una modificación del nivel de indentación.

Controlar qué programas se inician al arrancar tu Mac

En MacOS, como en otros sistemas operativos, existen varias formas en las que una aplicación puede solicitar ejecutarse al iniciar sesión.

Un usuario puede controlar qué aplicaciones han solicitado arrancarse junto con el sistema. Para ello sólo debemos ir a las Preferencias del sistema, entrar en el panel de Usuarios y grupos y en el selector de pestaña activar la pestaña llamada Items de inicio. En esa pestaña encontraremos una tabla con todas las aplicaciones que se arrancarán cuando se inicie la sesión de un usuario.

El problema es que este panel sólo da acceso a modificar la configuración de arranque de un usuario en concreto y sólo controla las aplicaciones que hayan solicitado el arranque con la sesión de un usuario. Pero si se han instalado servicios o aplicaciones que afectan a todo el sistema no aparecerán en esa tabla.

Finder al rescate

Lo interesante de utilizar un sistema operativo como MacOS es que todas las configuraciones son ficheros o elementos en carpetas. Sólo hay que conocer en qué carpeta buscar y qué podemos encontrar en esas carpetas.

Para poder examinar esas carpetas simplemente debemos ir a Finder y en la barra de menú buscar el menú Ir a y activar la opción Ir a la carpeta … e introducir la ruta a la carpeta que queremos examinar.

 

Servicios para drivers y servicios de seguridad

En MacOS, como en Unix, existen unos servicios especiales que se denominan daemons. Estos servicios carecen de interfaz de usuario y suelen encargarse de que algo funcione bien. Algunos de estos daemons se encargan de mantener la seguridad en las comunicaciones, que la cámara, el micrófono u otros periféricos multimedia estén siempre disponibles para cuando los necesite el usuario no haya ningún tipo de demora.

Todos estos daemons declaran su arranque al iniciar nuestro equipo en una carpeta determinada. En MacOS, por motivos de seguridad, los daemons incluidos por Apple tienen una carpeta segura y específica y los servicios de terceros utilizan otra carpeta.

Para los daemons de Apple tenemos la carpeta /System/Library/LaunchDaemons.

En esa carpeta encontraremos diversos elementos que lo que hacen es iniciar el daemon para que el sistema mantenga un control. Es recomendable no tocar en esta carpeta sin tener una copia de seguridad previa ya que estos daemons permiten usar bastantes elementos del hardware de nuestro equipo y puede que si rompemos algo tengamos que iniciar una sesión en modo a prueba de fallos y la accesibilidad puede no estar disponible.

Para los daemons de compañías distintas a Apple tenemos la carpeta /Library/LaunchDaemons

En esta carpeta podemos encontrar servicios que arrancan el soporte de análisis de Adobe, los servicios de configuración de auriculares USB, servicios de actualización de software de Microsoft o Google o el servicio de arranque rápido de Zoom.

Para hacer que un servicio deje de arrancar con nuestro equipo simplemente debemos sacarlo de la carpeta /Library/LaunchDaemons

Servicios de arranque de aplicaciones

Puede que un servicio lo que realice es arrancar una aplicación. Esto sucede por ejemplo con las aplicaciones de OneDrive, Dropbox, Amazon Music o Amazon Chime.

Estos servicios de arranque de aplicaciones se localizan en dos carpetas:

La primera afecta a todos los usuarios y su ruta es /Library/LaunchAgents

La segunda carpeta es para cada usuario en concreto y la ruta para el usuario actual es ~/Library/LaunchAgents

Para evitar que un programa arranque simplemente deberemos borrar el servicio que lo arranca de la carpeta de launch-agent correspondiente.

Obtener el listado de voces disponibles para el comando say en MacOS

El comando say se utiliza en MacOS tanto desde la terminal como desde AppleScript para hacer que una de las voces instaladas en el sistema operativo lea una información.

Vimos un ejemplo en la introducción a AppleScript en el que hacíamos hablar a nuestro Mac desde un AppleScript.

Usando say desde la Terminal

Usar el comando say desde la terminal es bastante sencillo. Vamos a ver el típico ejemplo de Hola mundo con la Terminal.

Abre la Terminal de Mac, está en la carpeta Aplicaciones/Utilidades

Una vez abierta escribe el siguiente comando:

say '¡Hola mundo!'

Al ejecutar el comando el equipo verbalizará el mensaje con la voz por defecto del sistema.

Si queremos usar una voz en concreto tenemos que especificarlo utilizando su nombre precedido del indicador -v. Por ejemplo utilicemos la voz de Monica en el ejemplo anterior:

say -v Monica '¡Hola mundo!'

El problema aparece cuando no conocemos el nombre de la voz concreta que queremos utilizar. Para ello el mismo comando say nos ofrece la solución.

Al usar el comando say de la siguiente forma se mostrará un listado de voces en la Terminal:

say -v \?

El listado será algo como lo siguiente:

  • Alex en_US # Most people recognize me by my voice.
  • Alice it_IT # Salve, mi chiamo Alice e sono una voce italiana.
  • Alva sv_SE # Hej, jag heter Alva. Jag är en svensk röst.
  • Amelie fr_CA # Bonjour, je m’appelle Amelie. Je suis une voix canadienne.
  • Anna de_DE # Hallo, ich heiße Anna und ich bin eine deutsche Stimme.
  • Carmit he_IL # שלום. קוראים לי כרמית, ואני קול בשפה העברית.
  • Damayanti id_ID # Halo, nama saya Damayanti. Saya berbahasa Indonesia.
  • Daniel en_GB # Hello, my name is Daniel. I am a British-English voice.
  • Diego es_AR # Hola, me llamo Diego y soy una voz española.
  • Ellen nl_BE # Hallo, mijn naam is Ellen. Ik ben een Belgische stem.
  • Fiona en-scotland # Hello, my name is Fiona. I am a Scottish-English voice.
  • Fred en_US # I sure like being inside this fancy computer
  • Ioana ro_RO # Bună, mă cheamă Ioana . Sunt o voce românească.
  • Joana pt_PT # Olá, chamo-me Joana e dou voz ao português falado em Portugal.
  • Jorge es_ES # Hola, me llamo Jorge y soy una voz española.
  • Juan es_MX # Hola, me llamo Juan y soy una voz mexicana.
  • Kanya th_TH # สวัสดีค่ะ ดิฉันชื่อKanya
  • Karen en_AU # Hello, my name is Karen. I am an Australian-English voice.
  • Kyoko ja_JP # こんにちは、私の名前はKyokoです。日本語の音声をお届けします。
  • Laura sk_SK # Ahoj. Volám sa Laura . Som hlas v slovenskom jazyku.
  • Lekha hi_IN # नमस्कार, मेरा नाम लेखा है. मैं हिन्दी में बोलने वाली आवाज़ हूँ.
  • Luca it_IT # Salve, mi chiamo Luca e sono una voce italiana.
  • Luciana pt_BR # Olá, o meu nome é Luciana e a minha voz corresponde ao português que é falado no Brasil
  • Maged ar_SA # مرحبًا اسمي Maged. أنا عربي من السعودية.
  • Mariska hu_HU # Üdvözlöm! Mariska vagyok. Én vagyok a magyar hang.
  • Mei-Jia zh_TW # 您好,我叫美佳。我說國語。
  • Melina el_GR # Γεια σας, ονομάζομαι Melina. Είμαι μια ελληνική φωνή.
  • Milena ru_RU # Здравствуйте, меня зовут Milena. Я – русский голос системы.
  • Moira en_IE # Hello, my name is Moira. I am an Irish-English voice.
  • Monica es_ES # Hola, me llamo Monica y soy una voz española.
  • Nora nb_NO # Hei, jeg heter Nora. Jeg er en norsk stemme.
  • Paulina es_MX # Hola, me llamo Paulina y soy una voz mexicana.
  • Rishi en_IN # Hello, my name is Rishi. I am an Indian-English voice.
  • Samantha en_US # Hello, my name is Samantha. I am an American-English voice.
  • Sara da_DK # Hej, jeg hedder Sara. Jeg er en dansk stemme.
  • Satu fi_FI # Hei, minun nimeni on Satu. Olen suomalainen ääni.
  • Sin-ji zh_HK # 您好,我叫 Sin-ji。我講廣東話。
  • Tessa en_ZA # Hello, my name is Tessa. I am a South African-English voice.
  • Thomas fr_FR # Bonjour, je m’appelle Thomas. Je suis une voix française.
  • Ting-Ting zh_CN # 您好,我叫Ting-Ting。我讲中文普通话。
  • Veena en_IN # Hello, my name is Veena. I am an Indian-English voice.
  • Victoria en_US # Isn’t it nice to have a computer that will talk to you?
  • Xander nl_NL # Hallo, mijn naam is Xander. Ik ben een Nederlandse stem.
  • Yelda tr_TR # Merhaba, benim adım Yelda. Ben Türkçe bir sesim.
  • Yuna ko_KR # 안녕하세요. 제 이름은 Yuna입니다. 저는 한국어 음성입니다.
  • Yuri ru_RU # Здравствуйте, меня зовут Yuri. Я – русский голос системы.
  • Zosia pl_PL # Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.
  • Zuzana cs_CZ # Dobrý den, jmenuji se Zuzana. Jsem český hlas.

Conoce el nivel de indentación del texto con VoiceOver de forma automática

VoiceOver para MacOS es incapaz de conocer y notificar el nivel de indentación del texto. Por esa razón en su día desarrollé un script que puede averiguar y verbalizar esta información. 

Este script está disponible en el repositorio de Indentation line for VoiceOver.

Usando el script manual

En este repositorio está el fichero speakIndentationLine que contiene el AppleScript para que VoiceOver verbalice el nivel de indentación del último texto verbalizado por el lector de pantallas.

Este script debía asociarse a un atajo de teclado de VoiceOver para poderlo utilizar de forma cómoda pero incluso así existía la posibilidad de perdernos un cambio de indentación debido a que debíamos revisar manualmente cada línea de un texto para conocer si había algún cambio en el nivel de indentación.

Automatizando la funcionalidad

Para solucionar el problema se ha creado un nuevo script en el repositorio llamado checkIndentationService que ejecuta la función de verificar el nivel de indentación de forma automática y sólo se verbaliza cuando se han producido cambios en el nivel de indentación.

Para que este script se ejecute de forma apropiada es necesario exportar el script como aplicación y asegurarnos que en la conversión esté marcada la opción Permanecer abierto tras el gestor de ejecución. Puedes leer sobre el proceso en el artículo Convertir un AppleScript en una aplicación para MacOS.

Una vez convertido tendremos la opción de abrir la aplicación checkIndentationService y VoiceOver verbalizará cada nuevo cambio de nivel de indentación de un texto.

Recuerda leer el fichero Readme.md del repositorio para saber cómo cambiar la voz que se utiliza para hacer las notificaciones.