Instalando Homebrew en MacOS

Cuando comienzas a trabajar con tu Mac al nivel de un usuario avanzado, es muy probable que quieras instalar aplicaciones o paquetes que Apple «no quiere que conozcas». Homebrew es uno de esos productos que Apple no quiere que conozcas.

Con Homebrew podemos instalar todas aquellas aplicaciones que un usuario avanzado de Linux conoce y usa a menudo, por ejemplo daemon, daemontools, npm o wget. Sin embargo yo lo utilizaré para instalar herramientas relacionadas con domótica como veremos más adelante.

Para instalar Homebrew basta abrir una ventana de Terminal y copiar le siguiente comando.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Una vez que el proceso de instalación haya terminado podremos instalar otros paquetes. En mi caso yo instalé wget y npm lo cual se hace con los siguientes comandos.

brew install wget
brew install npm

Eso es todo, ahora a disfrutar del software de línea de comandos como todo un linuxero.

Por emontes, hace

Cómo transferir Raspbian a una tarjeta microSD en macOS

Desde hace un tiempo que llevo usando una Raspberry Pi para distintos proyectos, entre otros el minado de criptomonedas, lo cual ya había comentado en las entradas Minando criptomonedas en una Raspberry Pi y Automatizando el minado de criptomonedas en una Raspberry Pi, y en otros proyectos que comentaré más adelante.

Sin embargo, hasta ahora no he comentado en ninguna entrada cómo se transfiere la imagen de Raspbian en una tarjeta microSD en macOS.

Lo primero es descargar la imagen de Raspbian desde la página de la Fundación Raspberry. En dicha página encontramos 3 versiones de Raspbian, Raspbian Stretch con Escritorio y aplicaciones recomendadas, Raspbian Stretch con Escritorio y Raspbian Stretch Lite. Personalmente recomiendo la versión Raspbian Stretch con Escritorio, puesto que aunque en la mayoría de mis proyectos desactivo el Escritorio para controlar la Raspberry Pi por SSH desde Terminal, no se sabe si vas a necesitarlo incluso por la razón más inverosímil.

Una vez descargado el archivo ZIP de imagen de Raspbian Stretch con Escritorio, no hay que cometer el error de descomprimirlo, puesto que lo vamos a utilizar tal como está.

Para transferirlo a la tarjeta microSD utilizaremos un software Open Source y multiplataforma llamado balenaEtcher el cual tiene una interfaz muy sencilla y que además ejecuta un proceso de validación comparando el origen con el destino. Mi hijo intentó en algún momento con Etcher (a secas) sin éxito, y por esta razón recomiendo balenaEtcher puesto que ha funcionado en todas las veces que he transferido la imagen de una nueva Raspberry Pi.

Obviamente para transferir Raspbian en la tarjeta microSD en nuestro Mac, necesitaremos un adaptador de microSD a SD estándar o de microSD a USB, ya que los Mac no disponen de puerto microSD.

Una vez terminado el proceso de transferencia de la imagen de Raspbian en la tarjeta microSD, ya podemos desmontarla e insertarla en nuestra Raspberry Pi, aunque existe un truco que bien vale la pena ejecutar antes de echar a andar nuestra Raspberry Pi, el cual les comentaré más adelante.

Por emontes, hace

iMovie, GarageBand, Pages, Numbers y Keynote tanto para iOS como para MacOS ahora son completamente gratuitas

Vía MacRumors, 9to5Mac, Applesfera, AppleInsider, iMore e Hipertextual me entero que iMovie, GarageBand, Page, Numbers y Keynote tanto para iOS como para MacOS ahora son completamente gratuitas. Recordemos que hasta ahora todas estas aplicaciones eran gratuitas pero solamente para clientes que hayan adquirido un Mac nuevo o un dispositivo iOS nuevo.

Apple aún no ha actualizado la página web de iWork reflejando las nuevas condiciones, pero esto ya fue actualizado en la App Store y Mac App Store. Este cambio también beneficiará a las instituciones educacionales y comerciales gracias a la actualización del Programa de Compras por Volumen.

Links:

Los desarrolladores de f.lux critican el desempeño de Night Shift

Vía 9to5Mac y Applesfera me entero que los desarrolladores de f.lux criticaron el funcionamiento de Night Shift implementado en la actualización a macOS Sierra 10.12.4.

Recordemos que f.lux es una aplicación que permite reducir la cantidad de azul-verde que emite la pantalla de nuestro dispositivo de tal forma de no alterar el ciclo circadiano del sueño, algo que también dice hacer Night Shift.

Sin embargo, según los desarrolladores de f.lux, Night Shift no reduce correctamente la cantidad de azul-verde que emite la pantalla aunque al ojo descubierto pareciera que ambas aplicaciones exhiben en pantalla el mismo color anaranjado.

Esto fue publicado en los foros de f.lux por un miembro del equipo de desarrollo, documentado con gráficos que muestran la cantidad de cada color que reducen Night Shift y f.lux respectivamente.

Habrá que ver qué dice Apple al respecto, y si eventualmente corrige y/o mejora el desempeño de Night Shift en actualizaciones posteriores.

Links:

Pages, Numbers y Keynote para macOS e iOS se actualizan con bastantes funcionalidades nuevas

Vía 9to5Mac, MacRumors, FAQ-Mac, AppleInsider, Applesfera y iMore me entero que las aplicaciones de iWork – la suite de ofimática de Apple – Pages, Numbers y Keynote fueron actualizadas recibiendo bastantes y novedosas funcionalidades en sus versiones tanto para macOS como para iOS.

La funcionalidad más interesante es la posibilidad de desbloquear con el Touch ID aquellos archivos protegidos con contraseña lo cual fue implementado en las 3 aplicaciones.

Pages recibe soporte para poder escribir ecuaciones en formato LaTeX o MathML, así como también soporte para crear links que apunten a otra parte del documento.

Las 3 aplicaciones también recibieron soporte para reemplazar de forma sencilla y en todo el documento fuentes que estén ausentes, así como la exportación en formato RTF (Rich Text Format).

Links:

Apple lanzó actualización de seguridad para OS X 10.10 Yosemite y OS X 10.11 El Capitan

Vía 9to5Mac me entero que junto con la actualización a macOS X Sierra 10.12.4 Apple lanzó una actualización de seguridad para OS X 10.10 Yosemite y OS X 10.11 El Capitan.

La información asociada a la actualización no indica cuales son los errores o problemas de seguridad que corrige, pero podría estar relacionado con algunas vulnerabilidades de seguridad recientes que supuestamente ha utilizado la CIA para hackear OS X.

Links:

Apple lanzó la actualización a macOS Sierra 10.12.4

Vía Applesfera, MacRumors, 9to5Mac, FAQ-Mac y AppleInsider me entero que Apple lanzó la actualización a macOS Sierra 10.12.4 la cual trae novedades que se centran principalmente en Night Shift, una característica que ya estaba presente en iOS pero que no había hecho su arribo a macOS.

La lista de cambios en macOS Sierra 10.12.4 es la siguiente

  • Night Shift ahora está disponible en el Mac
  • Soporte para Shanghainés en Dictado
  • Pregúntale a Siri acerca de resultados de cricket, programación y estadísticas de jugadores. Siri sabe acerca de estadísticas y datos de la Indian Premier League e International Cricket Council
  • Actualización de las APIs de PDFKit para una mejor visualización de los PDFs en aplicaciones que usan dicho framework
  • iCloud Analytics ahora está presente como un paso adicional optativo en la configuración
  • La Mac App Store gana soporte para Touch Bar, el control de volumen ahora indica los niveles en forma visual

Probablemente algunos extrañen el hecho que esta actualización no trae consigo la implementación de APFS, el nuevo sistema de archivos estrenado en iOS 10.3, y es probable que tomando en cuenta que en MacOS pueden existir múltiples particiones, sea un poco más complejo de implementar y requiera algo más de trabajo, o que incluso estén guardando esta característica para macOS 10.13.

Para actualizar sus Macs a macOS Sierra 10.12.4 basta que abran la Mac App Store y pinchen en la pestaña Actualizaciones.

Links:

[Tutorial] Emular Raspbian en MacOS Sierra utilizando Qemu

Aunque soy un fanático de Apple, el Raspberry Pi siempre ha tenido un lugar especial en mi corazón principalmente por la posibilidad de realizar proyectos de demótica doméstica, servidores de medios, NAS caseros, etc.

En ocasiones puede ser necesario disponer de una emulación de la Raspberry Pi en nuestro Mac para poder probar programas, scripts, etc sin necesidad de encender dicho dispositivo.

Mi primera intención fue virtualizarlo utilizando VirtualBox, sin embargo dicho software no funciona con sistemas operativos basados en ARM como por ejemplo Raspbian.

Por lo tanto fue necesario buscar otra opción cuya única alternativa es utilizar un emulador. En internet es posible encontrar numerosas guías de cómo emular Raspbian en MacOS, pero varias de ellas tenían errores y me costó bastante lograr el objetivo.

Por esta razón, creí necesario publicar cómo logre emular Raspian en MacOS exitosamente utilizando para ello el software Qemu.

1. Descargar e instalar Homebrew y Qemu

Algunas guías indican que es necesario tener instalado Xcode para poder instalar Qemu, sin embrago este es un requerimiento innecesario. Basta instalar Homebrew tras lo cual podremos instalar Qemu sin necesidad de instalar Xcode, y por lo demás Homebrew nos permitirá instalar muchas otras cosas que Apple no nos entrega en MacOS, que pueden ser interesantes para quienes gustan de usar el Terminal y que veremos más adelante. Además, si no eres desarrollador de aplicaciones para iOS o MacOS, no volverás a utilizar Xcode nunca más y sólo ocupará espacio en disco.

Lo primero es abrir un ventana de Terminal, y escribir el siguiente comando el cual permitirá la instalación de Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Una vez instalado Hombre podremos instalar Qemu, escribiendo el siguiente comando

brew install qemu

Con esto ya tendremos instalado Qemu, listo para poder emular Raspbian en nuestro Mac

2. Descargar Raspbian y el Kernel para emularlo en Qemu

En este punto encontré varios problemas, algunas guías no eran lo suficientemente claras, o asumían que quien estaba instalando Qemu para emular Raspbian tenían un conocimiento avanzado, y otros eran demasiado antiguos los cuales si bien funcionaban corrían versiones antiguas de Raspbian, o ejecutaban comandos «deprecados» que hacían que la emulación «crasheara». Encontré incluso algunos scripts sh que me ayudaron a entender qué errores estaba cometiendo porque justamente tenían errores.

Para emular Raspbian en Qemu es necesario 2 archivos. Primero una versión de Raspbian y segundo un kernel el cual permite que Raspbian corra emulado dentro de Qemu. Sin embargo, el kernel es específico para cada versión de Raspbian. La última versión de Raspbian disponible en el sitio de la Raspberry Pi Foundation es Raspbian Jessie 2017-02-27. La última versión del kernel para Rapbian en Quemu es compatible con Rsapbian Jessie 2016-11-25, por lo tanto es necesario descargar esa versión específica para tener éxito en su emulación.

El kernel para correr Raspbian en Qemu no e mantenido por Raspberry Pi Foundation ni por Qemu, sino por un usuario de Github llamado dhruvvyas90.

Los links para la descarga de ambos son los siguientes

https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.4.34-jessie

http://downloads.raspberrypi.org/raspbian/images/raspbian-2016-11-29/2016-11-25-raspbian-jessie.zip

Es recomendable descargar ambos archivos en una carpeta creada específicamente para dicho efecto. En mi caso los descargué en ~/Mis Programas/Raspberry Pi/

Personalmente, cuando estoy usando el Terminal, prefiero utilizar comandos de Terminal, y por lo tanto obviamente la creación de las carpetas y descarga de dichos archivos también lo hice en el Terminal

cd ~
mkdir Mis\ Programas
mkdir Mis\ Programas/Raspberry\ Pi

Para la descarga de los archivos fue necesario instalar un programa que existe en Linux pero que MacOS no no entrega que es wget, pero gracias a Hombres es tremendamente fácil de instalar

brew install wget

Ahora solo basta descargar los archivos utilizando los siguientes comandos

wget https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.4.34-jessie

wget http://downloads.raspberrypi.org/raspbian/images/raspbian-2016-11-29/2016-11-25-raspbian-jessie.zip

Una vez descargados los archivos tenemos que descomprimir el archivo zip que contiene a Raspbian con el siguiente comando

unzip 2016-11-25-raspbian-jessie.zip

Esto generará el archivo 2016-11-25-raspbian-jessie.img el cual utilizaremos para emular Raspbian utilizando Qemu.

3. Configurar y emular Raspbian en MacOS Sierra utilizando Qemu

Finalente, ya tenemos todo lo necesario para emular Raspbian en MacOS Sierra utilizando Qemu. Ahora solo tenemos que configurar la emulación para que corra adecuadamente en nuestro Mac, lo cual requiere un primer booteo, luego la modificación de algunos archivos del sistema dentro de la emulación, para que todo quede correctamente configurado y después poder bootear Raspbian todas las veces que necesitemos.

3.1 Primer booteo

Es necesario hacer un primer booteo tras el cual tendremos que hacer algunas modificaciones a un par de archivos estando dentro de la emulación en Qemu. Para esto utilizaremos el siguiente comando

qemu-system-arm -kernel kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 elevator=deadline rw init=/bin/bash" -drive "file=2016-11-25-raspbian-jessie.img,index=0,media=disk,format=raw"

Esto iniciará Raspbian y después de menos de un minuto veremos la consola Shell en la ventana en que se está emulando Raspbian

3.2 Modificación de los archivos ./etc/ld.so.preload y ./etc/fstab

Ahora, dentro de la ventana de Qemu en que se está emulando Raspbian, es necesario modificar un par de archivos. Se trata de los archivos ./etc/ld.so.preload y ./etc/fstab.

En el caso de ./etc/ld.so.preload es necesario «comentar» cada una de sus lineas y en el caso de ./etc/fstab es necesario «comentar» todas las entradas que contengan el texto «/dev/mmcblk». Para «comentar» las lineas basta con insertar el texto «# » al principio de cada una de las líneas.

Los comandos para realizar esto son

nano /etc/ld.so.preload
nano /etc/fstab

Recordemos que para salir y grabar los cambios en el editor de textos Nano, es necesario presionar las teclas Ctrl-X y luego Y para confirmar que los cambios sean grabados.

3.3 Segundo booteo

Ahora realizaremos el segundo booteo de Raspbian con lo cual el emulador después de un par de minutos nos mostrará el entorno gráfico de Raspbian. Más adelante veremos cómo se modifica la configuración para bootear sin cargar el entorno gráfico, ya que esto es más adecuado para proyectos de demótica doméstica o de internet de las cosas.

qemu-system-arm -kernel kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 elevator=deadline rw" -drive "file=2016-11-25-raspbian-jessie.img,index=0,media=disk,format=raw" -net user,hostfwd=tcp::5022-:22

Este es el comando que tendremos que utilizar de ahora en adelante cada vez que deseemos correr nuestra emulación de Raspbian en MacOS Sierra, ya que las modificaciones a los archivos realizadas en el paso anterior son permanentes.

Debido a que es muy fácil cometer un error cuando se escribe un comando demasiado largo con demasiadas opciones, preferí transformarlo en un script sh, el cual me permite ejecutar la emulación con un comando más sencillo. Abrí un archivo nuevo utilizando el editor nano, copié el texto siguiente y luego guardé el archivo con el nombre «qemu-raspbian.sh» en la misma carpeta donde están los archivos de imagen de Raspbian y el kernel.

# Define variables
export QEMU=$(which qemu-system-arm)
export RPI_KERNEL=./kernel-qemu-4.4.34-jessie
export RPI_FS=./2016-11-25-raspbian-jessie.img

# Emulate Raspberry Pi
$QEMU -kernel $RPI_KERNEL \
-cpu arm1176 -m 256 \
-M versatilepb -no-reboot -serial stdio \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 elevator=deadline rw" \
-drive "file=$RPI_FS,index=0,media=disk,format=raw" \
-net user,hostfwd=tcp::5022-:22

De esta manera cada vez que quiero emular Raspbian en MacOS con Qemu utilizo el siguiente comando en Terminal

sh qemu-raspbian.sh

Además esto permite que cada vez que aparezca una nueva versión de kernel, basta que modifique la variable asociada al nombre de kernel dentro del script sh.

Por cierto, al emular Raspbian no es posible acceder a la utilización del conector GPIO ya que es un entorno emulado, no es un Raspberry Pi real, pero sirve al menos para probar scripts, programas, compilaciones, etc, cuando no tenemos a mano nuestra Raspberry Pi o simplemente cuando no queremos malograr todo lo que ya hemos hecho con una linea de código mal escrita.

Espero que este tutorial sea de ayuda para quienes como yo, gustan de realizar proyectos con la Raspberry Pi, y en la medida que vayan apareciendo nuevas versiones tanto de Raspbian como del kernel, la iré actualizando. Saludos.

Links:

Ni Tan Fanboys Podcast 070

Ni Tan Fanboys Podcast Banner

Este es un nuevo podcast sin Monky, pero acompañado por ArmoredReaper. En la sección Noticias de Apple comentamos acerca de los 7 años del iPad, del ingreso de Apple al Wireless Power Consortium, de la disminución en las ventas de iPad, de las nuevas contrataciones de Apple, de la patente de tecnología de reconocimiento de huellas dactilares integrada en la pantalla, de los problemas en la pintura del iPhone 7 Negro Mate, de la actualización de firmware de los AirPods y de la fecha de la WWDC 2017.

En la sección de Rumores de Apple les comentamos acerca del rumor que indica que Apple estaría desarrollando un procesador ARM para trabajar en conjunto con los procesadores de Intel en nuevos MacBook Pro, otros rumores que indican que Apple estaría probando un Apple TV 4K y de un rumor que indica que Apple estaría trabajando en nuevas características para los podcasts.

En la sección iOS Apps comentamos acerca de los juegos OK Golf y Emergency. En la sección Apple TV Apps les comentamos acerca del juego Hotlap Heroes. En la sección MacApps les comentamos acerca de Google Drive y Visual Studio Mac Preview.

En la sección Internet les comentamos acerca de un nuevo hackeo de la consola NES Classic Mini el cual permite que corra juegos de Neo-Geo, SNES y Sega Genesis entre otros.

En la sección gadgets les comentamos acerca del bastón de selfies Bluetooth que usamos durante nuestras vacaciones.

Finalmente en la sección Bookmarks, les comento acerca del sitio AppAdvice TV el cual recopila revisiones de juegos y aplicaciones específicas del Apple TV.

[display_podcast]

[Tutorial] Cómo arreglar el funcionamiento del widget de Clima del Dashboard en macOS 10.12 Sierra

Hace un par de días me di cuenta que el widget de Clima del Dashboard dejó de funcionar en mi MacBook Pro Mid 2012 con macOS 10.12 Sierra. Probablemente esto ocurrió hace bastante tiempo pero no me había dado cuenta. Dicho widget no solo no mostraba la información del clima, sino que al intentar cambiar la ciudad, no encontraba ninguna coincidencia.

Extrañamente, el widget de Clima que se puede agregar al Notification Center, funciona a la perfección, y aunque podría prescindir del widget de Clima del Dashboard y utilizar el del Notification Center, soy un usuario de Mac de hace bastante tiempo y ya estoy demasiado acostumbrado a utilizar el widget del Dashboard.

Busqué una solución durante muchas horas, y finalmente en los foros de Apple Support, y foros de MacRumors encontré la respuesta, aunque es algo compleja y requiere del uso del Modo de Recuperación y del Terminal.

El funcionamiento del widget de Clima recae en un archivo localizado en /System/ Library/WidgetResources/.parsers/ llamado weatherParser.js, el cual no ha sido actualizado por Apple siguiendo nuevas directrices de uso de Yahoo Weather.

Un desarrollador llamado Gonzalo Rodrigo encontró la solución y la publicó en GitHub, y creí que era necesario publicarlo paso a paso para que quien quiera solucionarlo no pierda todo el tiempo que yo perdí, ya que por cierto cometí algunos errores cuando lo intenté.

¡¡ADVERTENCIA!!:

La desactivación del Control de Integridad puede romper la instalación de macOS si no eres pulcro y haces exactamente lo que indica el tutorial. De todas maneras si sigues las instrucciones de este tutorial, lo haces bajo tu PROPIO RIESGO.

Paso 1: Reiniciar en Modo de Recuperación y desactivar el Control de Integridad

Lo primero que debemos hacer es desactivar el Control de Integridad, puesto que si se mantiene activado no podremos modificar el archivo en cuestión. Para esto es necesario reiniciar en Modo de Recuperación lo cual se logra manteniendo presionadas las teclas Cmd-R hasta que escuchemos el clásico sonido de inicio del Mac, el mismo que hace wall-E en la película de Pixar.

Una vez iniciado el Modo de recuperación, abrimos la aplicación Terminal para lo cual vamos al menú y seleccionamos Utilidades – Terminal. Con el Terminal abierto, desactivamos el Control de Integridad con el siguiente comando

csrutil disable

Finalmente reiniciamos, para lo cual podemos escribir reboot en la misma ventana de Terminal.

Paso 2: Copiar el archivo weatherParser.js en /System/Library/WidgetResources/.parsers/

Una vez que nuestro Mac se ha reiniciado en Modo Normal, abrimos una ventana de Terminal y procedemos a copiar el archivo weatherParser.js que descargamos al directorio /System/Library/WidgetResources/.parsers/ utilizando el siguiente comando de Terminal. En el ejemplo yo tengo dicho archivo en un subdirectorio del directorio Descargas.

sudo cp ~/Downloads/osxcalendarwidget-master/weatherParser.js /System/Library/WidgetResources/.parsers/

El sistema nos pedirá que ingresemos nuestra clave de administrador, y listo. Ahora basta ir al Dashboard y presionar Cmd-R en nuestro teclado para que el widget de Clima vuelva a funcionar correctamente.

Es importante copiar el archivo utilizando el Terminal puesto que en mi caso inicialmente lo copié utilizando el entorno gráfico del Finder moviendo el archivo de una carpeta a otra, con el consiguiente problema que el widget seguía sin funcionar, y no volvió a funcionar sino hasta que hice la copia del archivo a través del Terminal.

Finalmente, es necesario volver a reiniciar el Mac en Modo Recuperación para volver a activar el Control de Integridad con el comando

csrutil enable

Reiniciamos en Modo Normal, ya todo habrá vuelto a la normalidad y habremos desactivado la posibilidad de malograr el sistema operativo de nuestro Mac ante cualquier descuido de nuestra parte en alguna otra ocasión.

Links: