Texto en 4 pixeles de altura

Estoy pensando en escribir algunas cosas en una matriz de punto con solo 4 pixeles de altura (Unicorn pHAT RGB de 8×4). Para eso voy a necesitar escribir caracteres legibles con solo 4 pixeles (con 5 suele ser mas fácil) así que prepare esta font que dejo acá disponible por si alguien la necesita.

Acá hay una versión con zoom para que vean los caracteres de mejor forma:

4-pixel-text-zoom-description

Y el archivo 1:1 con los caracteres de 4 pixeles de altura

4-pixel-text

NOTA: Use el color naranja para representar los caracteres que a mi parecer no son súper entendibles y el color celeste para representar los caracteres que no tiene 3 pixeles de ancho (hay algunos de 1, 2, 4 y 5 pixeles de ancho) ya que esta no es una fuente de ancho fijo.

Instalando el adaptador WiFi Edimax 7811UN en una Raspberry Pi y no perder el SSH

Hace poco recupere mi Raspberry Pi (me compre una RPi2 esta vez) y una batería de accesorios. Entre ellos un adaptador WiFi Edimax UW-7811UN comprado en Amazon.

Hasta acá nada fuera de lo normal, configuré e instalé todo, pero cuando quise conectarme por SSH, nada… Simplemente no funcionaba. La conexión por cable ethernet andaba perfecta, pero por WiFi no había caso. 

Bueno, buscando bastante encontré la solución en este post que acá comparto en castellano. 

El problema es que por defecto el driver de este adaptador viene con el Power Saving activado y hay que deshabilitarlo para poder conectarse de forma remota. 

Lo único que tienen que hacer es ejecutar este comando y reiniciar la Raspberry Pi

 sudo echo "options 8192cu rtw_power_mgnt=0" >> /etc/modprobe.d/8192cu.conf

Espero que les sea de utilidad.

El Capitan Recovery Update

Salio la versión final de OSX El Capitan, y me dispuse a instalarla.

Salio todo ok, se instaló bien, pero al reiniciar solo booteo Mac OSX (tengo triple boot Mac/Windows/Linux usando rEFInd que desapareció con el update, pero era de esperar).

Bueno, el siguiente paso era restaurar rEFInd, busque un rato por Internet, y aunque no llegue fácil, la solución no era super difícil, básicamente ahora no se puede bootear mas desde la carpeta refind y un .efi arbitrario si no que se tienen que llamar de una forma especifica, así que la idea es reemplazar lo que creo mac por el nuestro (nota: por ahí esto no es 100% necesario, pero no pude probarlo, el resto del post si es 100% necesario ).

  1. Montar la unidad EFI
  2. Renombrar dentro de Boot el archivo bootx64.efi a otra cosa
  3. Renombrar la carpeta Boot a otra cosa
  4. Renombrar dentro de la carpeta refind el archivo refind_x64.efi a bootx64.efi
  5. Renombrar la carpeta refind a Boot

Hasta acá todo bien, luego por lo que leí faltaba un paso mas, básicamente avisarle que ahora tiene que bootear (de nuevo) desde esa imagen efi de refind. Para hacer esto hay que usar el comando bless, por ejemplo así (suponiendo que montaron su unidad EFI en la carpeta /Volumes/esp con el comando sudo mount -t msdos /dev/disk0s1 /Volumes/esp):

6. sudo bless –mount /Volumes/esp –setBoot –file /Volumes/esp/EFI/Boot/bootx64.efi –shortform

Este paso es el que me trajo problemas, tanto a mi como a la gente que uso El Capitan con rEFInd. Básicamente Apple implemento una nueva medida de seguridad que previene el uso de ciertas utilidades de sistema desde el SO (en este caso bless) y solo deja hacerlas desde recovery.

Bueno, no era tan difícil, me dispuse de entrar al recovery (manteniendo alt al bootear) y simplemente ejecutar el comando necesario para relajar ese checkeo de seguridad.

7. csrutil disable

Acá viene lo interesante! este comando fallo, después de buscar un rato me di cuenta que por alguna razón la actualización al El Capitan no actualizo la unidad de recovery, entonces mi recovery era aun de Yosemite (10.10) y no incluía la nueva tool csrutil.

Para tratar de instalar esto encontré una única opción en este post de los foros de mac rumors, que básicamente requiere:

  • Bajarse la tool vieja que te deja instalar recovery en OSX Lion de apple.
  • Bajarse todo El Capitan de vuelta (si no les quedo de la bajada inicial por ahí). Esto se hace desde el app store mismo, en la solapa Purchases se lo pueden re bajar.
  • Bajarse el script que hizo el creador del post
  • Copiar InstallESD.dmg del instalador, el dmg de la tool de Lion de apple y el script recovery.sh a Downloads
  • Darle permisos de ejecución y ejecutar el script

Después de hacer todos estos pasos, si reinician con alt van a ver que van a tener el recovery de El Capitan (10.11)😀 y con eso, van a poder ejecutar csrutil disable y una vez que ejecutan eso van a poder ejecutar bless… y con bless ejecutado les va a revivir rEFInd.

Uff, costo!

Dublin, nuevo timezone y problemas con el Jailbreak

Me mude a Dublin (GMT+1 en horario de verano, GMT en horario normal) y esperaba que la hora del iPhone se actualice como le sucede al resto de la gente. Pero no.

Bueno, fui a cambiar el horario a mano, aunque realmente no quería, pero al menos para tener la hora bien, y al configurar el time zone al de dublin, el iPhone simplemete revertia el setting al time zone de Buenos Aires sin chistar lo mas minimo.

Probe configurando la hora a mano +4 horas del horario que decia y usando la zona horaria de Buenos Aires, de nuevo no ideal, pero al menos tenia la hora correcta.

Esto sirvió hasta que quise bajar una app del app store, donde al poner la contraseña, simplemente no bajaba y me la volvía a pedir, nuevamente sin ningún mensaje de error.

Uniendo un par de neuronas, se me ocurrio que el problema podia ser por el time zone, volvi al de argentina y si, efectivamente las descargas de apps volvieron a funcionar.

Osea que ahora tenia que elegir entre bajar apps o tener la hora correcta.

(Mentira, tenia una opción mas, era obvio que algo de las cosas que le hice al iPhone rompió el time zone, específicamente algo del Jailbreak, pero no quería usar la tercera opción oculta que era perder el Jailbreak y restaurar el iPhone en 8.4.1)

Así que obviamente me dispuse a usar la cuarta opción oculta: arreglarlo como sea.

Después de leer bastante les paso a los detalles de como lo arregle:

Basicamente usando ssh (terminal remota) me conecte a la consola del iPhone y navegue hasta /var/db/timezone, ahi al ejecutar “ls -l” comprobe que los dos archivos que guardan los settings y las opciones del iPhone estaban corruptos.

Basicamente son 2 symlinks: zoneinfo (symlink a una carpeta con todas las tz -zonas horarias-) y localtime (un symlink al archivo de zona horaria seleccionado).

No se por que se rompió, pero para arreglarlo me baje un zip con el zoneinfo de este post y usando scp (copia remota por ssh) primero reemplace el symlink de zoneinfo por la carpeta bajada de internet, y luego a mano (por que solo reemplazando zoneinfo no se arreglaba) tambien cree un nuevo symlink llamado localtime (reemplazando el actual) apuntando a /var/db/timezone/zoneinfo/Europe/Dublin que era el time zone que queria.

Despues de todo eso la zona horaria de mi iPhone se arreglo!

Prueba de velocidad Router/Modem TP-LINK TD-W8980

Una pequeña prueba de velocidad del Router/Modem TP-LINK TD-W8980 entre una PC conectada por cable y una notebook conectada por los 3 medios que provee este Modem/Router:

  • WiFi 2.4 GHz
  • WiFi 5.0 GHz
  • Ethernet 1Gbps

Tanto la WiFi de 2.4 GHz como la de 5.0 GHz están configuradas en 300Mbps y la red cableada es Gigabit.

Bueno acá están los resultados:

El primer resultado (25Mbits/s) es por la red de g, el segundo (100Mbits/s) es por la red n y el ultimo (900Mbits/s) es por cable ethernet.

Software

Just for the record, el software que instale al hacer un refresh de la PC:

To be continued…?

Automatización barata

Otra idea, hacer un sistema de Home Automation (casa inteligente) pero en vez de usar enchufes inteligentes (como los Belkin que salen 50+ usd cada uno y cada modulo tiene wifi y toda la chachara) tener un único modulo maestro y varios modulos hijos.

El modulo maestro, que es el caro, tendría la wifi, y algún kit arduino o similar de bajo costo pero que pueda hacer de controlador. 

Los modulos hijos baratos (y acá esta la magia) usarían la olvidada tecnología de power-line communications para comunicarse con el controlador.

Entonces los enchufes inteligentes, montarían sobre la señal de 220v sus datos, incluso con un simple protocolo de autodescubrimiento, que emita su id a la red, cada x tiempo y que escuche datos enviados a su dirección.

Se puede hacer todo autoconfigurable, con un id de 32 o 64 bits, fijo en cada dispositivo hijo (a la MAC) que se autoanunciarian, y el modulo maestro que tiene el protocolo para ir registrando a los dispositivos que se anuncian en la red, y presentarlos a través de una api en un server html embebido a las aplicación mobile (o directamente un cliente web tambien).

Esto bajaría los costos, incluso, si se quere, se puede vender un dispositivo aislador, para conectar en la entrada de la casa para impedir que la señal de datos salga de la red eléctrica hogareña.