Cómo instalar WhatsApp en una tablet Android

WhatsApp… Cómo lo detesto.

Para que no me esté pitando todo el día el móvil, decidí instalarlo en la tableta, pero resulta que solo está disponible para móviles.

Gracias al blog de tecnología de ABC encontré la solución, que es descargar manualmente http://www.whatsapp.com/android/current/WhatsApp.apk e instalarlo.

Recuerda que así no tienes actualizaciones automáticas.

Incomodidades Sociales Electrónicas Innecesarias (ISEI)

Hoy escribo un artículo que transciende de lo técnico que suele ser este blog, y pasa a ser algo más psicosociológico. Por supuesto, solo es una mera opinión, pero quería compartirla.

Por culpa de Gracias a las nuevas tecnologías, observo la creación de un nuevo fenómeno al que me he tomado la libertad de denominar ISEI (Incomodidades Sociales Electrónicas Innecesarias).

Básicamente, son situaciones socialmente incómodas, surgidas a partir de los nuevos medios electrónicos de comunicación (redes sociales y programas de MI, principalmente).

Lo más irónico de las ISEI es que son innecesarias. En una sociedad en que el único medio de comunicación remoto era el teléfono fijo y la carta, o en la que no se asumiera que estás las 24 horas del día conectado a la red de forma localizable, la gente jamás las experimentaría.

Cómo se originan las ISEI

En toda comunicación existe un emisor y un número indeterminado de receptores, aunque normalmente sea uno solo.

Lamentablemente, las ISEI las provocan los receptores, pero no son culpables de ello, ya que las provocan al dar un uso razonable a sus medios de comunicación.

Las ISEI se gestan únicamente en el interior de un emisor subjetivo, picajoso y desinformado. Este emisor cree que, por tener cierta información que permite monitorizar hasta cierto punto las actividades del receptor, puede adivinar sus pensamientos, actitudes o actividades.

Las ISEI son, por tanto, creación (y culpa) del emisor.

Contaré algunas experiencias recientes (no necesariamente mías), para mayor claridad:

El amigo bloqueado

Tengo un amigo al cual no veo muy a menudo, pero que es muy pelmazo escribiendo por WhatsApp. Tanto, que acabé bloqueándolo.

El otro día lo vi por la calle y lo saludé con una palmadita en la espalda. Ni me miró a la cara. Días más tarde recibí una llamada:

- Él: Hey, el otro día te vi por la calle.

- Yo: Sí, te saludé. Pensaba que no te habías dado cuenta, como no me dijiste nada…

- Sí, claro, por la calle me saludas, pero en el WhatsApp me sigues teniendo bloqueado, ¿eh?

- Es que te pones muy pelmazo por ahí, pero me puedes llamar cuando quieras.

- *click*

La amiga ausente

Cenando en un restaurante, con la típica amiga que vive más enganchada del móvil que de la realidad:

- ¿Qué miras tanto rato en el móvil?

- Es que me han comentado una foto en Instagram. ¿Tú tienes Instagram?

- No, ni me pienso hacer.

- ¡Puf, no tienes vida social!

La novia controladora

- ¡Eh, ¿por qué no respondiste a mi WhatsApp?! Vi que tenías el doble check

- Ah, pues no me ha sonado el teléfono.

Abres el móvil. No tienes notificaciones. Android debió matar el proceso sin preguntar. Abres WhatsApp y en ese instante aparecen las conversaciones y las notificaciones. Justo entonces tu novia te mira el móvil.

- Ya. “No te ha sonado”. Claaaro.

Piense mal y [creerá que] acertará

- Pues esta mañana he puesto un mensaje en el grupo de WhatsApp y nadie responde. Estoy harta, siempre igual. Yo no sé por qué, pero todos pasan de mi cara. Creo que me voy a salir y que les zurzan.

Pasa un rato, y aparecen varios mensajes en el grupo, del estilo: “Perdonad, que estaba en el trabajo. Ahora que me he desliado, aprovecho. ¡Me parece perfecto, contad conmigo!”

Por qué se crean las ISEI

Básicamente, porque el emisor asume como verdades cosas que muchas veces son mentiras. Veamos algunas:

Todos usan el sistema igual que yo

El emisor de una comunicación electrónica puede suponer que el receptor da el mismo uso que él a dicho medio de comunicación.

Es decir, alguien que se pasa el día enganchado a la red social X, deduce que el resto de gente también lo está, y que si no responden a sus mensajes o publicaciones es porque deliberadamente están ignorándolo.

La realidad puede distar mucho de su deducción. Por ejemplo, el receptor puede tener dicho programa configurado para no recibir notificaciones, o puede que lo utilice solo en lugares donde tenga acceso a Wifi, o puede que tenga una cuenta residual que apenas use.

También puede que el receptor reciba tal cantidad de notificaciones que acabe por ignorarlos sistemáticamente salvo que sean de vida o muerte, lo cual es un uso perfectamente aceptable de estos medios de comunicación.

El sistema es infalible

El emisor podría pensar: “Si he enviado el correo, es que ha llegado. Si ha llegado es que lo ha leído. Si lo ha leído, es que debería haber respondido. Si no ha respondido, es que me tiene manía.”

Puede olvidar que el correo de Mail Delivery Subsystem que borró hace unos minutos pensando que era un virus, tal vez le decía que el correo no se había podido enviar. Puede olvidar que se hartó de esos correos y los marcó como SPAM, con lo que nunca se enterará de que su correo falló. Puede olvidar que tal vez tenga un virus en su ordenador y su correo le haya entrado como SPAM al receptor, o que tal vez el receptor no lo ha visto aún, o que tal vez lo ha visto pero no ha tenido tiempo de leerlo, o que tal vez lo ha leído pero no pudo responder todavía porque está ocupado viviendo en el Mundo Real™.

En cualquier caso, eso abarcaría meros problemas de configuración, pero no olvidemos que los medios de comunicación están desarrollados por personas imperfectas, ergo tienen imperfecciones y caídas del sistema o de la red.

Este medio de comunicación sustituye a la tradicional

Este es, quizá, la más grave de las mentiras que puede asumir el emisor. Los nuevos medios de comunicación complementan a la comunicación tradicional, no la sustituyen.

Para un emisor afectado por esta mentira, alguien que no está en su red social favorita para él es como si no existiera, o no mereciera su trato.

Por ejemplo, si X no tiene Facebook y yo acostumbro a quedar con mis amigos usando eventos de Facebook, nunca quedaré con X.

Otro ejemplo: si quiero saber qué tal le va la vida a un amigo que no veo hace tiempo, le mando un WhatsApp diciendo “ola k ase”.

O quizá, si necesito urgentemente cierta cosa, la pido mandando un WhatsApp. Si no se me responde con la urgencia que exijo, me enfado con esa persona por no estar atento.

El emisor olvida que estos medios de comunicación nunca podrán sustituir a otros más tradicionales, como hacer una llamada, quedar con el receptor a tomar un café y hablar cara a cara.

Cómo evitarlas

Supongo que la única opción viable es informar a los emisores habituados a crearlas de lo que están haciendo en realidad (tal vez un enlace a este artículo te sirva…), de lo que esto revela acerca de ellos, y establecerles unas barreras claras.

La otra opción sería unirte a las hordas de emisores zombi de nuevas redes sociales, pero personalmente por ahí no pienso pasar. Fácilmente te convertirías en un creador de nuevas ISEI.

La última solución, más drástica, sería cambiar de amigos.

Me encantaría saber la opinión de los lectores, si es que hay alguno. Tranquilos, no pensaré mal si no opináis.

Proceso System consumiendo mucha CPU en un Windows virtualizado con VMWare

Me he tirado muchísimo tiempo tratando de identificar la fuente de un error que tenía en una máquina que trabaja con Windows 2008 Server R2 virtualizada en un VMWare ESXi.

Problema

El proceso System (el núcleo del sistema) estaba consumiendo tanta CPU que no dejaba prácticamente nada para los usuarios, y estos experimentaban interminables ralentizaciones.

Causa

Me mareó mucho la información sobre desactivar el módulo intelppm (los controladores de la CPU) que encontré en muchos sitios de Internet, pero todo eso no sirvió para nada más que para perder el tiempo.

Finalmente, la causa (al menos en mi caso) era que el archivo de paginación (el equivalente en Windows a las particiones swap) iba demasiado ahogado.

Solución

Ampliar el tamaño del disco duro desde VMWare (tuve que eliminar todas las snapshots para que me dejase), y después ampliar la partición desde Windows.

Cuidado con los “megas”

¡Contrata hoy el ADSL de 20 megas con un 15% de descuento!

Cuidado con esos megas.

En el habla cotidiana, la palabra megas es una abreviatura incorrecta e inexacta, de lo que las operadoras de telefonía se aprovechan para crear confusión y darte gato por liebre.

Vamos a diferenciar las 4 unidades de medida que se pueden entender por mega:

  1. Megabyte (MB): 1.000.000 bytes (recordemos que cada byte son 8 bits).
  2. Mebibyte (MiB): 1.048.576 (1024 x 1024) bytes.
  3. Megabit (Mb): 1.000.000 de bits (la octava parte de 1 MB).
  4. Mebibit (Mib): 1.048.576 bits (la octava parte de 1 MiB).

Es decir, que cuando la gente habla cotidianamente de megas, piensa que habla de megabytes, aunque en realidad esté hablando de mibibytes.

Sin embargo, cuando una compañía te vende conexiones de datos, siempre te está hablando en Mbps (Megabits por segundo), que es aproximadamente una octava parte de lo que tú crees que te están vendiendo (porque 1 byte son 8 bits).

Es decir, que el titular superior podríamos leerlo como:

¡Contrata hoy el ADSL de 2,5 MB/s con un 15% de descuento!

O, para ser más exactos:

¡Contrata hoy el ADSL de 2,384 MiB/s con un 15% de descuento!

Ahora ya nos entendemos…

Cómo transformar videos con GStreamer

Situación

Tienes unos cuantos vídeos en tu ordenador procedentes de diversas fuentes (cámara, móvil, Internet, etc.) con diversos formatos (.mp4, .mov, etc.) y quieres unificarlos en un formato libre (aunque no necesariamente, pero sí es recomendable) que ocupe menos espacio en tu disco duro (más información sobre los formatos de vídeo).

Solución fácil, pero uno por uno

Si no te importa ir archivo por archivo, lo más sencillo es usar Transmageddon, una aplicación que viene empaquetada en casi todas las distribuciones Linux, y que resulta muy fácil de utilizar.

Solución difícil, pero todos de una vez

Usaremos directamente GStreamer 1.0, que es la herramienta que usan entre bastidores casi todas las herramientas gráficas de audio en GNOME.

Crea un script llamado ~/.local/bin/gst-video-compress con este contenido:

#!/bin/bash

# Transform to Ogg (VP8 + Opus)
function transcode {
    gst-launch-1.0 \
        filesrc "location=$(readlink -f $1)" ! \
        decodebin name=demux ! \
            queue ! \
                progressreport "name=Encoding video for $1" ! \
                vp8enc ! \
                oggmux name=mux ! \
                filesink "location=$(readlink -f ${1%.*}).ogg" \
            demux. ! queue ! \
                progressreport "name=Encoding audio for $1" ! \
                audioconvert ! \
                audioresample ! \
                opusenc ! \
        mux. \
    && [ "$RM" == "y" ] && rm "$n"
}

# Fork it to make use of all processors
for f in $*; do
    while [ $(jobs | wc -l) -ge $(nproc) ]; do
        sleep 5
    done

    transcode $f &
done

# Don't exit until everything is finished
for j in $(jobs -p); do
    wait $j
done

Esto coge cualquier vídeo y lo transforma a Ogg (VP8 + Opus) con el mismo nombre de fichero que el anterior, y además transcodifica simultáneamente tantos videos como procesadores tengas. Si quieres entender lo que hace, consulta la explicación que ya di sobre qué son las tuberías de GStreamer y esta respuesta de Stack Overflow. También puedes usar el comando gst-inspect-1.0 con cada plugin (filesrc, decodebin, queue, etc.) para ver qué hace cada cual.

Ahora puedes invocar ese script de la siguiente manera:

$ gst-video-compress *.mp4 *.mov

Y si quieres que automáticamente vaya borrando los ficheros conforme vaya transcodificándolos sin errores:

$ RM=y gst-video-compress *.mp4 *.mov

Cómo compartir los accesos directos de la barra de inicio entre sesiones de Windows

Situación

Como todos conocemos y asumimos (sorprendentemente), Windows es un sistema que se guarrea automáticamente con el tiempo.

Para evitarlo, hemos decidido virtualizar un escritorio Windows 2008 Server R2 (con la idea equivocada de que por ser Server será más estable) e instalarlo en modo amnésico, o no persistente (es decir, cada vez que apagas y enciendes la máquina virtual, los cambios desaparecen), programado para olvidar todo cada semana, pero trabajamos en un entorno con muchos usuarios que quieren guardar sus configuraciones para trabajar cómodamente.

Para conseguirlo, utilizamos una directiva de grupo GPO en la que configuramos la redirección de directorios (Folder Redirection) y perfiles móviles (Roaming Profile Path) para que todas las configuraciones de usuario se guarden en discos duros de red que se encuentran fuera de esta máquina.

Problema

Cuando un usuario ancla un acceso directo a la barra de inicio, todo funciona hasta que el servidor ejecuta su amnesia, tras lo cual desaparece misteriosamente de ahí.

Nos ponemos a investigar, y resulta que en la ruta %AppData%\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\ encontramos todos los accesos directos que el usuario ha anclado (de hecho, puede que hasta encuentres duplicados de alguno), así que… ¿por qué no le aparecen?

Motivo

El problema radica en que, para que los accesos directos aparezcan en la barra de inicio, no solo hace falta tenerlos en la carpeta que hemos comentado antes, sino que además hacen falta las configuraciones que encontramos en la ruta HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband del registro de Windows (que podemos abrir ejecutando regedit.exe), las cuales son olvidadas cada semana junto con el resto de cambios en el registro.

Solución

Lo que vamos a hacer es crear dos scripts que se encarguen de respaldar y restaurar esas claves del registro cada vez que el usuario inicia o cierra la sesión. Ambos los colocaremos en una ruta en que todos los usuarios tengan permisos de lectura y ejecución.

Creamos un fichero de texto llamado taskbar-save.bat que contenga esto:

reg export HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband %AppData%\taskband.reg

A este otro lo llamaremos taskbar-load.bat:

reg import %AppData%\taskband.reg

Ahora vamos a asignar esos scripts a donde les corresponde. Para ello, abrimos el Administrador de directivas de grupo > buscamos nuestro GPO > botón derecho > Editar > Configuración de usuario > Directivas > Configuración de Windows > Scripts (inicio de sesión o cierre de sesión), y encontraremos dos opciones.

Haz doble click en Iniciar sesión > Agregar > Selecciona el script taskbar-load.bat > Aceptar.

Hacemos lo mismo en Cerrar sesión, pero seleccionamos taskbar-save.bat.

Ahora, cada vez que un usuario cierre su sesión, se guardará su configuración de aplicaciones ancladas en %AppData%\taskband.reg, y cuando la vuelva a abrir, se cargará de ahí mismo.

Cómo evitar la advertencia de seguridad en los accesos directos ubicados en la red

Problema

Si tienes la maldición desgracia necesidad de tener que administrar un servidor Windows en un dominio, y de tener que configurar redirección de carpetas (Folder Redirection) para que el perfil del usuario se halle en la red en lugar de en la máquina local, es posible que te des contra este simpático cartelito de error cada vez que intentas lanzar un acceso directo desde el escritorio o la barra de tareas:

Advertencia de seguridad de Abrir Archivo: No podemos verificar quién creó este archivo. ¿Está seguro de que desea abrirlo?
Advertencia de seguridad de Abrir Archivo: No podemos verificar quién creó este archivo. ¿Está seguro de que desea abrirlo?

Solución

Para un solo usuario

La solución está en añadir el sitio de red a la lista de sitios locales. Claro, puedes hacerlo desde Opciones de Internet > Seguridad > Red local > Sitios > Añadir, pero eso solo funcionaría para un usuario, y hablamos de un dominio con muchos usuarios.

Si lo haces, recuerda añadir el sitio sin protocolo de red. Es decir, si tu servidor se llama RECALLSTACK, no lo añadas como \\RECALLSTACK ni como file://RECALLSTACK ni smb://RECALLSTACK. Añádelo como RECALLSTACK a secas.

Para todo el dominio

Entra en el administrador de directivas de grupo, crea un GPO para tus usuarios (si no lo tienes ya), púlsalo con el boton derecho > Editar.

Ve a Configuración del equipo > Plantillas administrativas > Componentes de Windows > Internet Explorer > Panel de Control de Internet > Página de seguridad. Aquí deberás habilitar las siguientes directivas:

  • Lista de asignación de sitio a zona.
    • Habilítala.
    • Pulsa en Mostrar.
    • Añade una fila con los valores:
      • Nombre de valor: Aquí el nombre de tu servidor, por ejemplo RECALLSTACK.
      • Valor: 1
  • Activar detección automática de intranet.

Reflexiones finales

¿Y por qué hace falta activar la detección automática de intranet si ya le estoy diciendo explícitamente en la otra directiva que RECALLSTACK pertenece a dicha zona? ¿Y qué pasa si dentro de RECALLSTACK tienes una carpeta que sí es de fiar, pero otras que no? Ni idea, pero si no nunca te librarás de ese dichoso cartelito.

Cómo singularizar una máquina virtual Windows en un dominio

Problema

Tienes una máquina virtual Windows añadida a un dominio. La clonas, y al encender ese clon Windows se queja:

The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain

Ambas máquinas dejan de funcionar bien con el dominio.

Causa

Cada ordenador con Windows que está en un dominio tiene un SID (Security ID) que debe ser diferente. Si es el mismo, pasa esto.

Solución

Si tienes el ordenador en el dominio, sácalo de ahí y reinicia. Luego, como dicen en VMWare, hay que usar el programita Sysprep. Ejecuta en la línea de comandos:

C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /reboot 

Si no encuentras el programa en esa ruta, consulta la lista de ubicaciones de Sysprep.

Tras reiniciar, vuelve a agregar la máquina al dominio y reinicia de nuevo.

Web descentralizada para todos

Ya estuvimos hablando de la descentralización de la mensajería instantánea con XMPP. Hoy me alegro de poder decir que cada vez es más fácil tener tu propio rincón privado de Internet. Os presento 3 distribuciones a tener en cuenta:

FreedomBox

Un subproyecto de Debian, el más antiguo de todos, y curiosamente el que más lentamente está avanzando.

Buenas intenciones, aunque lamentablemente aún no hay mucho que usar.

arkOS

Es el que más está llamando la atención últimamente. Derivado de Arch, respaldado por The CitizenWeb Project, y diseñado para instalar en Raspberry Pi.

Genesis, la interfaz de administración de arkOS
Genesis, la interfaz de administración de arkOS

YunoHost

Mi favorita, y a día de hoy la más usable.

Explicación del nombre de YunoHost
Explicación del nombre de YunoHost

Está basada en Debian, así que lo puedes instalar prácticamente donde quieras: Máquina virtual, VPS, Cubieboard, Raspberry Pi, Docker, etc.

En lugar de poner una foto de la impecable interfaz, te invito a que pruebes la demo que hay en su web.

Fish Shell

Si bien siempre me ha encantado Bash, hay que reconocer que Fish es increíble:

No te tienes que complicar configurando absolutamente nada, por defecto ya viene coloreando tu terminal, auto completando tus comandos y permitiendo llevar todo esto de las configuraciones de manera muy simple e intuitiva mediante una interfaz web (local, claro está) en donde tendrás al alcance absolutamente todo lo que quieras modificar; desde el historial de comandos, hasta las funciones a ejecutarse por defecto, colores, autocompletado inteligente y/o personalizado, ¿Ya les dije que el auto completado es inteligente y simplemente aprende tus comandos? ¡No tienes que decirle que haga nada, él solito aprende!

Nano, Desde Linux.

Instalación

# yum install fish
$ chsh --shell $(which fish)

Y ahora reinicia la sesión.

Extras

Se llaman Oh My Fish. Instalación:

$ curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish

Compatible con Bash

Recuerda que, si usas el shebang correcto (#!/usr/bin/bash o #!/usr/bin/fish) al principio de cada script, no habrá problemas de compatibilidad entre shells.