jueves, 9 de febrero de 2017

Conversations: Cliente Jabber para Android


Hay multitud de programas de mensajería instantánea que prometen el oro y el moro: emoticonos, chats en grupo, animaciones, fotografías e incluso criptografía de la güena.

Google con Hangouts/Gtalk/Loqueseaahora, Facebook con Facebook/WhatsApp, Telegram con Telegram, WeeChat, etcétera.

Pero hay un gran olvidado, y ese no es otro que Jabber. Jabber es un protocolo de mensajería libre en formato XML que puede ser implementado por cualquier cliente sin ningún tipo de coste adicional en licencias.

Jabber lleva muchos años conviviendo entre nosotros. De hecho Google lo usa en Hangouts y Gtalk, así como Facebook en su sistema de mensajería (pero no en WhatsApp). El problema es que estas compañías han hecho un adoptar, extender, extinguir en toda regla. Mediante extensiones propietarias han terminado privatizando el protocolo para su uso particular.

La potencia de Jabber radica en la federación de servidores. Un sistema totalmente distribuido a la que cualquier nodo se puede unir, de manera que usuarios de distintas redes pueden hablar entre sí. Es decir, fulanito@red1.com puede comunicarse con menganito@red2.com. ¡Incluso puedes enviar mensajes a Twitter, Messenger, ICQ e IRC! (woah, Messenger, IRC).

En el caso de Google la federación dejó de estar disponible por lo que los usuarios de Gtalk/Hangouts sólo pueden comunicarse con otros usuarios de Gtalk/Hangouts. En sus contactos no pueden haber cuentas de otras redes. En el caso de Facebook, tres cuartos de lo mismo.

Jabber es un protocolo muy extendido y muy usado. En sistemas de escritorio tienes Pidgin, Kopete y Audium entre otros. Para Android, existe Conversations, ChatSecure/Zom y Xabber entre otros. Todos estos clientes son libres y llegan a soportar incluso OTR, esto es, mensajería cifrada con confidencialidad perfecta.

¿Cuáles son las desventajas de este protocolo? Jabber es mensajería instantánea. El protocolo soporta extensiones como las de un navegador mediante las cuales un cliente puede ofrecer funcionalidad adicional. De base no hay llamadas de voz, no hay videoconferencia ni hay archivos adjuntos. Todas estas funciones son extensiones al protocolo Jabber.

Además, faltan funcionalidades tales como los bots o poderte agregar a ti mismo para guardar archivos en la nube, tal y como permite Telegram. Sin embargo en cuanto a seguridad Conversations no tiene equivalente.

Conversations soporta todo lo que cabría esperar de un cliente moderno de mensajería e incluso más: chats en grupo, avatares, notificación de mensaje leído (tick/doble tick), sincronización entre dispositivos sin necesidad de estar conectado a una página web (puedes hablar desde más de un dispositivo y que los mensajes se mantengan sincronizados en todos), bloquear contactos y enviar adjuntos.
No sólo eso, también ofrece posibilidad de cifrado OMEMO, OpenPGP, OTR e incluso conectar via la red de enrutado anónimo TOROMEMO es el cifrado más moderno de los tres. Permite tener chats cifrados y tenerlos sincronizados entre múltiples dispositivos. Obviamente para usar Conversations no hace falta ningún número de teléfono asociado. Esto implica que es multicuenta por lo que puedes manejar múltiples cuentas Jabber en un mismo dispositivo sin necesidad de múltiples tarjetas SIM. Con una misma aplicación puedes usar la cuenta Google (Gmail/Gtalk/Hangouts) y la de cualquier otro servidor Jabber. Claro que la de Google sólo sera útil para contactar con otras cuentas Google.

Notifica vía LED, tiene tema oscuro y una gran cantidad de ajustes.
Ajustes de ConversationsAjutes de Conversations:
Opciones para expertos

Puedes exportar la clave pública
Para la exportación usa OpenKeyChain

F-Droid. OpenKeyChain se integra con otras aplicaciones como K-9 Mail (cliente de correo que permite cifrar mensajes con OpenPGP). Es decir, puedes usar la clave pública de tus contactos para mandarles mensajes de correo cifrado. De OpenKeyChain ya hablaré en otro post.


Conversations es una implementación compatible con ChatSecure, aplicación de mensajería instantánea segura disponible para iOS. Hay una versión para Android pero ésta ya no está mantenida. La misma aplicación te recomienda instalar Conversations ó Zom. Zom es la continuación de ChatSecure para Android (y que también está disponible para iOS), sin embargo no soporta OMEMO y tiene menos opciones a configurar. ChatSecure es gratuita. Conversations de pago en la Google PlayStore. En F-Droid está disponible de manera gratuita. ChatSecure iOS también implementa OMEMO desde su versión 4.0 lanzada el 17 de enero de 2017.

Ajustes de Zom Zom, modos de cifrado
ChatSecure ofreciendo otras aplicaciones (Zom ó Conversations)


Conversations es software libre GPL. ChatSecure no es GPL (la App Store no permite dicha licencia).

Los creadores de Conversations tienen servidor Jabber propio que soporta todas las características del cliente. Tiene un coste de 8 euros anuales. Si quieres montarte tu propio servidor, también ofrecen información al respecto. Prosody tiene soporte para casi todas las extensiones de Jabber que Conversations emplea. Le faltan XEP-033 (PGP), XEP-333 y XEP-352. Ejabberd soporta todas las funcionalidades soportadas por Conversations y algunas otras como voz IP y videoconferencia (Jingle, Conversations sólo permite enviar archivos). Ambos servidores (Prosody, Ejabberd) son software libre.

Este programa formaría parte de las recomendaciones de la Electronic Frontier Foundation. Yo particularmente no recomendaría Signal ya que los creadores de dicho programa no quieren generar un APK para ser firmado por los de F-Droid con la excusa de que F-Droid no tiene un equivalente a Google Analytics. Es decir, su aplicación se distribuye únicamente a través de la PlayStore. El cliente de escritorio es una extensión para Google Chrome (que también permitirá usar Google Analytics). Que se postulen como mensajería segura y respetuosa de la privacidad obligando a sus usuarios a estar fichados por Google no es coherente.

jueves, 2 de febrero de 2017

Configurar Microsoft Office para utilizar el formato Open Document

Con el cada vez más extendido uso de formatos abiertos y libres así como la proliferación de distintas plataformas, la interoperabilidad se convierte en algo indispensable en el uso diario de las tecnologías.

Es por ello que se creó el Open Document Format (ODF) para permitir la interoperabilidad de los documentos con distintas suites de ofimática y sistemas operativos.

Microsoft Office utiliza por defecto su formato propietario, el OOXML (Office Open XML, también llamado MOX por otros, Microsoft Open XML), que de abierto tiene poco. Las extensiones del OOXML son las antiguas del Office pero añadiéndole una x: .docx, .xlsx, .pptx.

Si bien es cierto que el formato ODF hasta su versión 1.2 no tuvo bien especificado el sistema de fórmulas, eso ya forma parte del pasado. Los estándares evolucionan con el tiempo y mejoran. De hecho aún falta especificar un estándar para macros.

Así pues, debido a que OOXML es difícil que sea soportado nativamente por todas las suites ofimáticas existentes, lo más conveniente es configurar Office para guardar en formato ODF. MS Office ofrece soporte a ODF desde Office 2007 SP2. Basta con seguir los siguientes pasos:

  1. Abrir el menú archivo->opciones
  2. Sección Guardar.
  3. Escoger formato






Y le indicáis que lo haga efectivo para el resto de aplicaciones de Microsoft Office.

Si no lo ponéis así, entonces siempre habría que usar el Guardar Como y seleccionar el formato OpenDocument (texto de OpenDocument, hoja de cálculo de OpenDocument, etcétera).

En el caso de empresas, se pueden cambiar las directivas de grupo.

Una lista de compatibilidad de Office con ODF la podéis encontrar aquí (Excel) y aquí (Word). Hay características que aparecen marcadas como incompatibles, sin embargo con otras suites sí que se pueden usar.
Por supuesto, otra opción es usar LibreOffice ó Calligra.

miércoles, 1 de febrero de 2017

Desbloquear el gestor de arranque de un teléfono Xiaomi

Xiaomi es uno de los pocos fabricantes que permite desbloquear de manera oficial el cargador del sistema operativo para así poder modificar las particiones y sus contenidos al gusto del cliente. Otro de estos fabricantes es OnePlus.
Hay que seguir una serie de pasos.

Requisitos previos:
  • Teléfono Xiaomi
  • Teléfono con opciones de desarrollo activadas
  • Opción de desbloqueo OEM activada
Pasos:
  1. Pedir permiso a Xiaomi a través de la página http://en.miui.com/unlock
  2. Esperar a recibir el SMS de confirmación
  3. Descargar el programa Mi Unlock
  4. Ejecutar el programa
  5. Introducir nuestro correo y contraseña de la cuenta Mi
  6. Entrar en modo fastboot. Con el teléfono apagado, presionar «bajar volumen» + «encender».
  7. Conectar el teléfono mediante USB al ordenador.
  8. En el programa Mi Unlock, presionar sobre el botón Unlock una vez dicho botón esté activo al detectarse el teléfono.

Sin embargo puede ocurrir un problema, y es que el Mi Unlock se puede quedar atascado al 50%. En Internet hay varias quejas al respecto, con distintos mensajes de error tales como que el Mi Unlock detecta múltiples cuentas o que no encuentra al teléfono conectado («not connected to Mi Phone»).

Bien, mi caso es el segundo. No encontraba el teléfono conectado. El problema residía en que no tenía el driver ADB (interfaz Android Debug Bridge). Así pues me he tenido que descargar el driver y como el Windows desde la versión 8 requiere de drivers firmados, he tenido que reiniciar la máquina virtual del Windows 8 «que tengo para cosas que aún no consideran la existencia de otros SO» con la opción de no comprobar las firmas de los controladores (drivers).

El proceso se detalla a continuación. Nótese que el teléfono puede mantenerse en modo fastboot y conectado al PC mediante USB durante todo el tiempo (reinicios, instalación del driver, ejecución de programas, etc.).

  1. Darte cuenta de que tras presionar el Unlock el Mi Unlock te dice que naranjas de la China (jaja, de la China)
  2. Descargarte un fastboot para hacer una comprobación. Descomprimir el .zip en una carpeta. Instalar.
  3. Descargarte el driver ADB. Descomprimir el .zip en una carpeta.
  4.  
    1. Si usas Windows 7 o anteriores, instalar el driver dándole con el botón derecho del ratón al archivo «android_winusb» que hay en la carpeta del driver USB de xiaomi.
    2. Si usas Windows 8 o posterior, debes reiniciar el Windows desactivando la opción de verificar firma de los controladores (drivers). Para ello mueve el puntero del ratón a la esquina superior derecha para desplegar los «charms». Luego le das a «configuración». Después a «cambiar configuración del PC». Ahora le das a «Uso general». En la parte derecha, desplaza la página hasta abajo del todo y le das a «Reiniciar Ahora». Seguidamente pulsas en «Solucionar problemas». Luego «Opciones avanzadas». Después pulsas sobre «Configuración de inicio». Y le das a reiniciar.

    3. El Windows se reiniciará y aparecerá un listado de opciones antes de abrir sesión. Pulsas la tecla del número correspondiente. «Deshabilitar el uso obligatorio de controladores firmados» corresponde con la opción 7, pulsas el 7.
  5.  Instalar el driver previamente descargado (clic derecho sobre el archivo «android_winusb.inf»).
  6. Conectar el móvil en modo fastboot al puerto USB del ordenador
  7. Ejecutar la utilidad de fastboot previamente descargada e instalada.
  8. Escribir «fastboot.exe devices» y pulsar intro. Debería aparecer nuestro dispositivo. Si no aparece, entonces hay que modificar el PID y el VID del archivo «android_winusb.inf»:
    1. Obtener VID y PID del dispositivo. Esto se hace vía Administrador de Dispositivos.
    2. Una vez obtenidos dichos números, modificar la sección Google.NT en el android_winusb.inf.
      El VID y PID no coinciden porque el del cuadro de diálogo es de otro dispositivo
  9. Una vez ya vemos que fastboot nos lista el teléfono (ejecutar la utilidad fastboot, en la consola de comandos que se abre, ejecutar fastboot.exe devices), podemos proceder desbloquearlo.
  10. Ejecutar de nuevo la utilidad Mi Unlock. Hacer login, darle a Unlock, ver como acaba el proceso y nos indica que ya está desbloqueado.
  11. Pulsar Reboot Phone.
  12. En el teléfono, dentro del menú ajustes->ajustes adicionales->opciones de desarrollo->Mi Unlock status, debería aparecer como Unlocked.
Estos procedimientos se han realizado con un Xiaomi Redmi Note 3 Special Edition con MIUI 8.1.1.0 Global Stable. Si tu teléfono no se ha actualizado a dicha versión, la puedes descargar desde la página de MIUI. El mío se actualizó a la 8.0.1.0 creo recordar. La 8.1.1.0 no estaba disponible vía OTA.

Compilación de fuentes de información:

martes, 3 de enero de 2017

Yalp Store: descargar aplicaciones de Play Store sin Play Store

La mayoría de teléfonos Android traen instalados los servicios de Google: instalador de aplicaciones, gestor de cuentas Google, YouTube, Gmail, Google Maps, Google Fotos, Google Music ... junto con la Play Store, la tienda de aplicaciones de Google (que no de Android).

Para todos aquellos que tienen una ROM no custodiada por los seres de luz que son los fabricantes de teléfonos y Google mismo con concordato mediante, existen alternativas.

La primera y se podría decir que obligatoria, es F-Droid. F-Droid es un catálogo instalable de Software Libre y de Código Abierto para Android. El cliente de dicho catálogo facilita su navegación, instalación y actualizaciones en tu dispositivo. La aplicación se descarga desde la propia web. Es un APK.

La segunda y que da título a la entrada de blog de hoy es Yalp Store. Yalp Store permite descargar aplicaciones de la Play Store. Instalas Yalp desde F-Droid y en el primer arranque de la aplicación te pedirá correo y contraseña de tu cuenta Google. Una vez introducidos podrás buscar aplicaciones y descargarlas. Eso sí, sólo gratuitas. Las de pago no aparecen. Decir también que viola las condiciones de uso de Google por lo que te pueden borrar la cuenta y todo lo que tengas en ella. Es recomendable pues utilizar un usuario Google aparte sólo para esto.

Yalp Store es también software libre (en caso contrario no estaría en F-Droid). Te permite obviar la instalación de todo el software de Google e instalar aplicaciones de aquellos desarrolladores que no contemplan otros repositorios de APKs. Además, también ahorrarás memoria y espacio de almacenamiento. Es ridículo lo que ha aumentado el consumo de recursos por parte del ecosistema Google.

Otra cosa a tener en cuenta es que por ahora la contraseña de la cuenta la almacena en texto plano, así que la necesidad de usar una cuenta desechable es aún mayor.

Nótese que Yalp es Play del revés :P

viernes, 30 de diciembre de 2016

Descargar rápido con Steam en Ubuntu (actualizado)

Estos días Steam está con las ofertas navideñas con interesantes descuentos. Y cómo no, las líneas de Internet están quemándose descargando videojuegos.

Los usuarios de GNU Linux se pueden encontrar con una desagradable sorpresa y es que hay un bug que impide descargar al máximo de velocidad con la conexión que tengas.

El bug en cuestión satura de peticiones DNS la red. Ubuntu incluye por defecto un sistema de DNS con el paquete dnsmasq-base.


Network Manager, que es el programa gestor de red usado en Ubuntu, lanza una instancia del programa dnsmasq, usado para encontrar la dirección IP correspondiente a las direcciones web a las que se quiera acceder.

Hay que activar la caché para este programa. Basta con añadir un archivo en /etc/NetworkManager/dnsmasq.d/ con una línea tal que así:

cache-size=100

Esto permitirá recordar a dnsmasq las IPs de direcciones buscadas previamente. Si navegáis por multitud de páginas distintas, podéis poner un número más grande. Yo lo he dejado en 1000.

Una vez añadido ese archivo (de nombre options.conf por ejemplo), hay que reiniciar el Network Manager:

sudo service network-manager restart

Se puede probar fácilmente. Sabiendo que el comando con el que se ejecuta dnsmasq bajo órdenes de Network Manager es el siguiente:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d 

Sólo tenemos que usar la IP 127.0.1.1 para hacer resolución de nombres. El comando dig permite hacerlo.

dig @127.0.1.1 aguasmenores.blogspot.com
;; Query time: 36 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)

 

dig @127.0.1.1 aguasmenores.blogspot.com
;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)

 
El tiempo de respuesta se ve reducido a 0 msec. Sin activar la caché siempre será superior a 0. Si os fijáis, el comando de Network Manager pone la opción --cache-size=0. Lo que hay en el archivo de configuración tiene prioridad por lo que no pasa nada. De otro modo las pruebas con dig no hubieran salido bien.

Configurar Network Manager evita instalar los scripts para correr dnsmasq con systemd a modo de demonio de sistema vinculado a una interfaz de red concreta (es decir, que la resolución de nombres de esa interfaz -típicamente eth0-) se hace vía el dnsmasq arrancado con systemd y no el arrancado por Network Manager, que continua gestionando otras interfaces).

Probado en Ubuntu 16.10.

Este bug de Valve lleva así varios años. Algún día lo corregirán. Mientras habrá que instalar dnsmasq. Si no, la velocidad de red queda limitada a 500KiB/s en vez de decenas de MiB/s.


Si reiniciais el network manager durante una descarga activa en Steam, es posible que Steam se cierre. A mí me ha pasado.
Si no os funciona la caché quizá en vuestra versión de Ubuntu Network Manager no use el plugin DNS para conectar con el dnsmasq local. Para cargar dicho plugin, en el archivo /etc/Network/Manager/NetworkManager.conf debe aparecer la opción dns=dnsmasq en la sección main:
[main]
...
dns=dnsmasq


Si por lo que sea no tenéis Network Manager instalado, entonces instalad dnsmasq a secas. dnsmasq y Network Manager crean conflictos, así que si hay Network Manager entonces sólo dnsmasq-base tiene que estar instalado. Si no hay Network Manager entonces dnsmasq debe estar instalado (que también instalará dnsmasq-base, proveyendo el ejecutable).


Eso es todo.

Ah, una cosa más. Si quieres que las compras que hagas en Steam cuenten como compra realizada para GNU Linux, debes descargar el programa en GNU Linux y arrancarlo bajo GNU Linux unos minutos. Si no lo haces, es decir, si solo lo compras y antes de ejecutarlo en GNU Linux lo haces en Windows entonces contará para Windows ;-(

jueves, 22 de diciembre de 2016

Firefox con multiproceso, extensión Add-on Compatibility Reporter

Firefox lleva ya unos meses implementando multiproceso. Pero aún hay usuarios que no tendrán multiproceso activo por tener extensiones incompatibles. Si ese es el caso hay dos opciones:
  • Quitar esas extensiones
  • Continuar sin multiproceso
  • Notificar a los creadores de esas extensiones + cualquiera de las dos opciones anteriores
Este post va de la última opción. Para notificar a los creadores de las extensiones podemos instalarnos el Add-on Compatibility Reporter. Esto nos dejará un botón con forma de pieza de puzzle en la barra de herramientas.


Puedes reportar las extensiones incompatibles como que no funcionan marcando la X. Luego le das a submit. Por cada extension marcada como que no funciona te indicará que pongas un comentario. Basta con un "extension is not compatible with multiproces".
Se puede hacer lo mismo desde el cuadro de diálogo Herramientas->complementos:




Esta extensión también te permite saber si tu navegador tiene el multiproceso activo o no. Firefox multiproceso (o con Electrolysis) es más rápido y más estable. La propia Mozilla informa de una mejora del 36% en estabilidad.