{"id":83,"date":"2011-06-12T21:47:03","date_gmt":"2011-06-12T20:47:03","guid":{"rendered":"http:\/\/www.tyflosaccessiblesoftware.com\/programaraciegas\/?p=83"},"modified":"2011-06-12T21:47:03","modified_gmt":"2011-06-12T20:47:03","slug":"automator-programacion-simple-para-usuarios-de-mac-osx","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=83","title":{"rendered":"Automator, programaci\u00f3n simple para usuarios de Mac OSX"},"content":{"rendered":"<p><a href=\"http:\/\/www.apple.com\">Apple<\/a> en su sistema operativo para ordenadores de escritorio y port\u00e1tiles, m\u00e1s conocido como Mac OSX, incluye un lenguaje de script para poder realizar operaciones de forma controlada. Este sistema de scripts es conocido como <em>Apple script<\/em>. Con este sistema se pueden realizar varias operaciones as\u00ed como ampliar funcionalidades del sistema operativo o algunas aplicaciones. El problema es que es necesario conocer el lenguaje de programaci\u00f3n utilizado por Apple script y tener conocimientos de programaci\u00f3n.<\/p>\n<p>Apple es cosciente de las limitaciones de muchos usuarios que carecen de los conocimientos necesarios para utilizar Apple script pero conoce la necesidad de proporcionar alguna herramienta que permita a un usuario sin conocimientos en programaci\u00f3n crear mecanismos para realizar, de forma autom\u00e1tica, tareas mon\u00f3tonas y mec\u00e1nicas. Por esta raz\u00f3n Apple ha desarrollado <em>Automator<\/em>.<\/p>\n<h2>Automator<\/h2>\n<p>Apple describe Automator de la siguiente forma: <\/p>\n<blockquote><p>Automator es un innovador asistente de procesos de automatizaci\u00f3n que facilita la automatizaci\u00f3n de las tareas repetitivas. Con Automator, podr\u00e1 evitar las tediosas tareas de programar y crear scripts que suelen ser necesarias para crear procesos de automatizaci\u00f3n. Cada uno de los pasos de un proceso automatizado, denominados acciones, pueden ensamblarse en una tarea completa arrastrando las acciones hasta un flujo de trabajo de Automator. Puede ejecutar los flujos de trabajo finalizados tantas veces como desee e incluso compartirlos con otros usuarios.<\/p><\/blockquote>\n<p>De forma resumida podemos decir que Automator es una herramienta de desarrollo para crear macros sencillas utilizando las aplicaciones y servicios del sistema para que el ordenador realice por nosotros las tareas repetitivas y mon\u00f3tonas.<\/p>\n<p>Automator trabaja con <em>acciones<\/em> y <em>flujos de trabajo<\/em> simplificando el proceso de crear macros y peque\u00f1os scripts.<\/p>\n<h3>Flujos de trabajo<\/h3>\n<p>Un flujo de trabajo consiste en un conjunto de tareas que deben realizarse en un orden determinado para alcanzar un objetivo. Cada una de estas tareas recibe un elemento, lo manipula, y lo pasa a la siguiente tarea del flujo de trabajo. Un ejemplo de la vida real, por ejemplo, ser\u00eda el que podemos experimentar a la hora de convertir un documento de texto en un audio que escuchamos en nuestro reproductor MP3. El flujo ser\u00eda algo similar a lo siguiente: descargamos el documento de texto, lo abrimos con nuestra aplicaci\u00f3n de conversi\u00f3n texto a voz, cogemos los archivos MP3 generados y los pasamos a nuestro reproductor MP3 para, posteriormente, comenzar a escuchar el documento donde queramos. En este ejemplo el contenido del documento es el <em>elemento<\/em> que las distintas tareas manipulan hasta alcanzar el objetivo final.<\/p>\n<h3>Acciones<\/h3>\n<p>Las acciones son los distintos mecanismos de manipulaci\u00f3n que Automator posee. En nuestro ejemplo ser\u00edan las diversas tareas que realizamos con el contenido del documento. Automator posee una librer\u00eda de acciones para crear nuestros flujos de trabajo. Esta librer\u00eda se ve ampliada con cada nueva aplicaci\u00f3n instalada en el sistema operativo que incluya compatibilidad con Apple script o Automator. Esto hace que Automator vaya siendo cada vez m\u00e1s potente.<\/p>\n<h2>Aprender con un ejemplo<\/h2>\n<p>En el \u00e1mbito de la programaci\u00f3n el camino del aprendizaje suele basarse en la experimentaci\u00f3n pr\u00e1ctica as\u00ed que aprendamos Automator con un peque\u00f1o ejemplo. Vamos a crear un servicio para el sistema que nos permita convertir ficheros de texto plano en archivos de audio en formato AIF, soportados por el reproductor de MP3 de Apple. De esta forma tendremos un rudimentario sistema para convertir ficheros de texto en audio para escucharlos donde queramos.<\/p>\n<p>Para ayudar a los usuarios con discapacidad visual a seguir este peque\u00f1o tutorial se incluir\u00e1n indicaciones para los usuarios de VoiceOver, el lector de pantallas de Mac OSX para usuarios con discapacidad visual. Aquellos usuarios que no utilicen este producto de apoyo pueden ignorar estas indicaciones.<\/p>\n<h3>Primer contacto con Automator<\/h3>\n<p>En primer lugar debemos abrir Automator, para ello debemos buscar la aplicaci\u00f3n en la carpeta de aplicaciones del sistema.<\/p>\n<p>Una vez abierto nos mostrar\u00e1 un asistente que nos preguntar\u00e1 que tipo de flujo de trabajo queremos crear. La ventana del asistente proporciona una descripci\u00f3n de cada tipo de flujo de trabajo disponible. Si leemos la descripci\u00f3n para el tipo <em>Servicio<\/em> podremos leer lo siguiente: <\/p>\n<blockquote><p>Los servicios son flujos de trabajo contextuales disponibles a trav\u00e9s de Mac OS X. Aceptan texto o archivos de la aplicaci\u00f3n activa o del Finder. Los servicios est\u00e1n disponibles en el men\u00fa Servicios<\/p><\/blockquote>\n<p>. Esta descripci\u00f3n es la m\u00e1s cercana a lo que necesitamos para nuestro ejemplo por lo que seleccionaremos esta opci\u00f3n y pulsaremos el bot\u00f3n <strong>Seleccionar<\/strong>.<\/p>\n<h3>El \u00e1rea de trabajo<\/h3>\n<p>A continuaci\u00f3n nos aparecer\u00e1 la ventana de trabajo de Automator con el flujo de trabajo <em>Sin t\u00edtulo<\/em>. Ha de recorddarse que Automator es una herramienta de desarrollo por lo que el consumo de recursos para crear flujos de trabajo es grande as\u00ed que no os asusteis si el equipo empieza a ir lento.<\/p>\n<p>En el centro de la ventana veremos una tabla con las tareas de nuestro flujo de trabajo. Esta tabla es reconocida por voiceOver con el texto <em>Sin t\u00edtulo flujo de trabajo<\/em>. Al profundizar sobre esta tabla encontraremos nuestra primera acci\u00f3n del flujo. Es una tarea de recepci\u00f3n identificada por el texto <em>El servicio recibe la selecci\u00f3n de<\/em>. VoiceOver identificar\u00e1 esta tarea con el texto <em>texto en El servicio recibe la selecci\u00f3n de  cualquier aplicaci\u00f3n Reemplaza el texto seleccionado grupo (1 de 1)<\/em>. Podemos modificar algunos par\u00e1metros de esta tarea para ajustarlos a nuestras necesidades. Los usuarios de VoiceOver deber\u00e1n profundizar en la tarea para cambiar los diversos par\u00e1metros que posee.<\/p>\n<h3>Ajustando la acci\u00f3n a nuestros requisitos<\/h3>\n<p>Para nuestro servicio queremos recibir un documento de texto desde el Finder, que es nuestro explorador de archivos. En el primer par\u00e1metro seleccionaremos <em>Documento<\/em> y para el segundo par\u00e1metro seleccionaremos <em>Finder<\/em>. VoiceOver verbalizar\u00e1, al leer la tarea, lo siguiente: <em>documentos en El servicio recibe la selecci\u00f3n de  Finder Reemplaza el texto seleccionado grupo (1 de 1)<\/em><\/p>\n<p>Para cambiar el valor de cada par\u00e1metro debemos hacer click sobre \u00e9l y nos aparecer\u00e1 una lista desplegable con todos los posibles valores.<\/p>\n<h3>A\u00f1adiendo m\u00e1s acciones<\/h3>\n<p>Ahora debemos a\u00f1adir, a continuaci\u00f3n de la acci\u00f3n para recibir el documento, una nueva acci\u00f3n para convertir el fichero de texto plano en un fichero de audio. Mac OSX proporciona un comando del terminal para verbalizar mensajes de voz, es el comando <strong>say<\/strong>. Este comando, entre sus par\u00e1metros, nos permite crear un fichero de audio en lugar de verbalizar el texto. Es la forma m\u00e1s r\u00e1pida para convertir un texto a audio. Por esta raz\u00f3n utilizaremos para este ejemplo este comando del terminal.<\/p>\n<p>Para poder a\u00f1adir comandos del terminal en nuestro flujo de trabajo debemos utilizar una acci\u00f3n de tipo <strong>Ejecutar el script Shell<\/strong>. Para ello nos dirigiremos a la biblioteca de acciones, los usuarios de VoiceOver deben profundizar en el elemento <em>vista dividida de descripci\u00f3n de acciones dividir grupo<\/em> y, posteriormente, profundizar sobre <em>vista dividida de biblioteca de acciones dividir grupo<\/em>. Encontraremos una tabla de la biblioteca de acciones y una tabla de acciones. En la segunda tabla se mostrar\u00e1n las acciones asociadas a la categor\u00eda que representa la primera tabla. Para nuestra acci\u00f3n debemos elegir la categor\u00eda <em>Utilidades<\/em> en la primera tabla, as\u00ed podremos seleccionar el elemento <em>Ejecutar el script Shell<\/em>. Pulsa Enter para a\u00f1adir esta nueva acci\u00f3n a nuestro flujo de trabajo.<\/p>\n<p>Ahora debemos ajustar la nueva acci\u00f3n para que ejecute un peque\u00f1o script del terminal que convierta el documento de texto a un archivo de audio utilizando el comando <strong>say<\/strong>. La acci\u00f3n de ejecuci\u00f3n del script, identificada por VoiceOver como <em>Ejecutar el script Shell acci\u00f3n (2 de 2)<\/em>, debe recibir algunas modificaciones para que se adapte a nuestros requisitos. El par\u00e1metro <strong>Pasar datos de entrada:<\/strong>, con valor por defecto <em>a string<\/em>, debe tener el valor <em>como argumentos<\/em>. A continuaci\u00f3n de dicho par\u00e1metro hay un campo de texto donde se ve un peque\u00f1o script de consola por defecto. El c\u00f3digo por defecto del script es el siguiente:<\/p>\n<p><code><br \/>\nfor f in \"$@\"<br \/>\ndo<br \/>\n\techo \"$f\"<br \/>\ndone<br \/>\n<\/code><\/p>\n<p>Podemos editar el c\u00f3digo para modificar el comando <em>echo<\/em> o sustituir todo el script por el siguiente c\u00f3digo:<\/p>\n<p><code\"\nfor f in \"$@\"\ndo\n\tsay -o \"Resultado en voz\" -f \"$f\" \ndone\n<\/code><\/p>\n<p>Nuestro flujo de trabajo est\u00e1 terminado. Ahora debemos guardarlo utilizando la opciem>Guardar<\/em> del men\u00fa <em>Archivo<\/em> de la barra de men\u00fa. Nos preguntar\u00e1 por un nombre para nuestro flujo de trabajo, podemos nombrarla como <strong>Convertir a voz<\/strong><\/p>\n<p>\nUna vez guardado pertenecer\u00e1 a los servicios de Finder. Cerremos Automator y busquemos en Finder un archivo de texto plano. Al utilizar el men\u00fa contextual del archivo, los usuarios de voiceOver deben utilizar la combinaci\u00f3n Control+ALT+May\u00fasculas+M y el resto de usuarios hacer click con el bot\u00f3n derecho, nos aparece una opci\u00f3n con el nombre de nuestro flujo de trabajo. Al seleccionar esta opci\u00f3n comenzar\u00e1 a ejecutarse nuestro flujo de trabajo, visualmente se ver\u00e1 una rueda dentada trabajando, los usuarios de VoiceOver no tendr\u00e1n ning\u00fan tipo de feedback. El proceso tardar\u00e1 dependiendo del tama\u00f1o del archivo que queramos convertir.<\/p>\n<p>Hay muchas mejoras que se le pueden hacer a este flujo de trabajo: soportar documentos en formato RTF, poder seleccionar otra voz, a\u00f1adir un feedback para los usuarios de VoiceOver, etc. Pero como iniciaci\u00f3n a Automator creo que es suficiente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apple en su sistema operativo para ordenadores de escritorio y port\u00e1tiles, m\u00e1s conocido como Mac OSX, incluye un lenguaje de script para poder realizar operaciones de forma controlada. Este sistema de scripts es conocido como Apple script. Con este sistema se pueden realizar varias operaciones as\u00ed como ampliar funcionalidades del sistema operativo o algunas aplicaciones. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=83\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abAutomator, programaci\u00f3n simple para usuarios de Mac OSX\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,38,6],"tags":[83,81,82],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-applescript","category-macos-x","category-programacion","tag-applescript-2","tag-automator","tag-script"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=83"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/83\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}