Connect to a remote Xvfb server using VNC and a SSH tunnel

Xvfb is an in-memory display server commonly used to execute programs that require a UI in a server which does not have a screen output. Using Xvfb is very convenient when your automated tests are executed in a remote server and orchestrated by a Continuous Integration system.

While having a VNC server running in production instances is not always a great idea due to the potential security flaws, opening port 5900 on this server to allow external connections sounds even worse. This post will guide you through the steps required to access a remote VNC server via an SSH tunnel, without opening any additional ports.

Assuming that Xvfb is already running in your server and the display has been exported to :99, the next step is to install x11vnc:

sudo yum install -y x11vnc

IMPORTANT: Connections to remote x11vnc servers are not password protected by default which leaves your server accessible to potential attackers. Make sure x11vcn is always started with the argument ‘-rfbauth ‘.

We will now establish the tunnel to access the x11vnc server through SSH. This needs to be done in your workstation:

ssh -i [SSH key] -l [username] -L 5900:localhost:5900 [server hostname] ‘x11vnc -display :99 -localhost -rfbauth [VNC server password file]’

You are now ready to access your remote server screen by using a VNC client in your workstation and connecting to localhost:5900

Install LineageOS on top of CyanogenMod ROM

lineageos

This post will guide you through the installation of LineageOS on top of CyanogenMod. While data could be preserved during the upgrade using the EXPERIMENTAL releases, this did not work for my OnePlus One so I had to go for the full upgrade and then use the Google Backup to restore my data.

DISCLAIMER: This is an experimental process and might damage your phone or affect the integrity of your data. It is always a good idea to use backups.

Required downloads

Installing TWRP

The instructions below work on Windows.

1. Open a command line and navigate to the directory where you have downloaded the SDK Platform Tools.

2. Disable the CM Recovery protection in Settings > Developer Options > CM Recovery option.

3. Put your device into bootlader mode – If this isthe first time you are using the SDK, you will probably need to accept the connection in your phone:

    adb reboot bootloader

4. Unlock the boot – this will wipe all your data!

    fastboot oem unlock

5. When the welcome screen appears, reboot your devide and enter into bootloader mode by pressing volume down + power buttons for 10 seconds. Once the recovery menu appears select the option to boot from bootloader.

6. Flash the TWRP image:

    fastboot flash recovery twrp-3.0.x.x-xxx.img

5. Wait until the flash process is completed and then reboot your device:

    fastboot reboot

Flashing LineageOS release

6. Shut down your device and boot it in TWRP recovery by pressing the volume down + power buttons until the logo appears.

7. Copy the LineageOS images to your phone.

8. Select ‘Install’ in your phone and select the LineageOS image.

9. Swipe to confirm Flash.

Install Gapps

10. Copy the Gapps package to your phone.

11. Select ‘Install’ in your phone and select the Gapps package.

12. Enable the checkbox to reboot your device after the installation is complete.

13. Swipe to confirm Flash.

That should be it. If you have any question, feel free to ask on the comments.

Install CentOS in your HP MediaSmart EX470

hp mediamart ex470I have been using the HP MediaSmart EX470 home server for few years and it was quite a nice experience. Unfortunately HP decided to stop supporting these devices which means not getting any updates or fixes. I then decided it may be a good time to park the built-in Windows Home Server and switch to CentOS. I have chosen this Linux distribution because this is the one I’m most used to (it’s extensively used in corporate environments). Ubuntu could also serve this purpose but I still preferred CentOS since it comes with the minimum basic packages and allows you to keep growing it per your needs instead of shipping lot of features you don’t really need.

You will need:

  • VGA cable for the MediaSmart devices. These servers do not come with a built-in video port, so you will need to install one (you can either build it yourself or buy it from eBay).
  • Physical keyboard.
  • USB storage device.

The installation is pretty simple, although there are few tricky steps to take into account:

  1. Backup all the data you want to keep from the installed hard disks (the process will delete it!)
  2. Shut down your server.
  3. Connect the USB storage device where you have copied the CentOS installation files to the BOTTOM USB IN THE REAR PART. This is the only USB port that will work when booting up from an external disk.
  4. Connect the keyboard to any other USB port.
  5. Turn on the server.
  6. Press the DEL key to enter the BIOS and disable the option to suppress the boot selection. It’s located under the Advanced BIOS settings.
  7. Save the BIOS settings and when system boots up again press F12 to select the boot device.
  8. Chose the option ‘USB-CDROM’.
  9. Install CentOS normally.

Bonus pack, if you want to have a GUI. You will need to install the VGA drivers manually:

Enable the Ethernet connection (remember CentOS has it disabled by default):

ifup eth

You probably want to also have your ethernet connection enabled automatically when booting up:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

Change the line:

ONBOOT=no

to

ONBOOT=yes

You can skip the 2 next steps if you are using an HP MediaSmart EX470, but I have listed them in case they help people with other systems.

Install pciutils in order to have the lspci command and list which VGA driver you need:

yum -y install pciutils

Check your VGA device:

lspci | grep VGA

Install the VESA drivers for XORG:

 yum -y install xorg-x11-drv-vesa

Install the evdev drivers for the mouse and keyboard to work properly with XORG:

yum -y install xorg-x11-drv-evdev

You are ready to go. Just type ‘startx’ on the command line and you should be able to enjoy the GUI.

 

Migrating users and posts from Drupal to WordPress

Few weeks ago I decided it was time to change the look and feel of Santako.com and also take the opportunity to start using a content management system that simplifies the administration. It didn’t take us very long to chose WordPress due to its versatility, high quantity of plugins available and the little maintenance required.

One of the first challenges has been to migrate the users and articles from the current version, which uses Drupal. I haven’t found any plugin that executes the migration automatically so I decided to export the data in CSV tolater import it in WordPress. The steps I’m explaining bellow were executed with Drupal 7 and WordPress 3.6. In my case, I just needed to import some basic elements from the posts, so many fields such as the author, dates and tags were not migrated.

Users

  • Access the Drupal installation database from phpMyadmin.
  • Select the ‘users’ table.
  • Click on ‘Export’ and select ‘CSV’ as file format.
  • Once the file is generated, edit it and add the following headers in the first line, linking these to the columns (you can delete the rest of columns):
    • user_login
    • user_pass
    • user_email
  • Install this plugin in WordPress and enable it:  http://wordpress.org/plugins/import-users-from-csv/
  • Access the ‘Users’ menu and select ‘Import from CSV’.
  • Click on ‘Import’.

Posts

  • Access the Drupal installation database from phpMyadmin.
  • Click on the ‘SQL’ tab.
  • Paste the following query and click on Go’:
 SELECT *
 FROM node
 INNER JOIN field_revision_body
 ON node.nid=field_revision_body.entity_id;
  • Install this plugin in WordPress and enable it: http://wordpress.org/plugins/wp-all-import/
  • Access the plugin from the administration sidebar.
  • Select ‘Upload File From Your Computer’  and click on ‘Next’.
  • In the following steps you will be asked to drag and drop the imported data to the fielsd they belong to and confirm some default options.

Once the import is complete, I recommend using the plugin Broken Link Checker  to make sure everything worked properly and there are no broken links.

Dos meses sin Internet gracias a Yacom

router yacomSolicité el alta del servicio de ADSL con Yacom el día 12 de junio y a día de  hoy todavía no tenemos conexión (sí, hace ya más de 2 meses). Desde entonces un gran cúmulo de despropositos han ido sucediendose en lo que yo calificaría como el peor servicio de atención al cliente de este pais. Y todos sabemos que hay una notable competencia; de mal servicio y poco respeto a los derechos del consumidor, no de proveedores de Internet.

Desde el primer día, el técnico de Movistar nos dijo tanto al técnico de Yacom como a mi, que en la central no llega señal de Yacom, pero esa no ha sido suficiente explicación para que nos hagan perder el tiempo y la paciencia de manera reiterada una y otra vez.

  • Nos han citado en 7 ocasiones para revisar la instalación del domicilio (aun sabiendo que la señal no llega a la central). De estas citaciones, para “pruebas conjuntas”, en 4 ocasiones el técnico no ha aparecido por casa (supongo que aprovechó para irse a desayunar) y en algunas de ellas ha comunicado en la incidencia que me nos había notificado que no iba a venir (mentira!!!).
  • He intentado abrir una reclamación decenas de veces. Algunos agentes me han asegurado que me han abierto la reclamación y al volver a llamar otros me indican que no hay ninguna reclamación. Otros agentes simplemente me han indicado que me pasaban con el departamento de reclamaciones y me desvían al soporte técnico.
  • He enviado tres correos a acceso@ya.com con mi reclamación, que nunca han respondido, aunque en mi incidencia indican que sí lo han hecho.
  • He hablado con todos los departamentos que se mencionan al iniciar la llamada y decenas de veces me han indicado cosas como que: mi situación es una vergüenza y es inadmisible y que ahora mismo el agente se levantaba de su sitio para comunicarlo en persona a sus superiores, y que me iban a llamar en unas horas para explicarme el motivo de tal caos. Nunca me han llamado (y la primera promesa ya fue hace tres semanas).
  • Todos los agentes se niegan a pasarme con un coordinador del área.

Llevo ya unas poquitas incidencias y otras cuantas revisiones de mil tonterias, mientras que Yacom se niega a ir a la central a revisar el problema y Movistar se lava las manos. Supongo que el tema va de que las empresas subcontratadas que tienen cobran por cada visita realizada o simplemente los trabajadores están tan poco satisfechos con su trabajo que lo hacen todo lo mal que pueden.

La única solución que me ha dado Yacom es invitarnos a darnos de baja sin que nos pongan ninguna pega (¡wow! todo un lujo…), dado el mal servicio que estamos recibiendo. Así que después de dos meses sin Internet, hemos decidido hacerles caso. En esta ocasión he enviado una denuncia a la Agencia Catalana de Consumo de la Generalitat. A diferencia de la reclamación, que es el instrumento que suelo utilizar para pedir compensación o subsanación de daños, la denuncia sirve para poner en conocimiento de la Administración hechos que puedan constituir infracciones administrativas y defender los derechos generales.

Lo peor de todo esto no es que existe una avería que no se soluciona desde hace tanto tiempo, sino que un cliente pueda tener una incidencia abierta durante mas de 2 meses por corte de servicio y en Yacom nadie sepa ni cuál es el estado de la incidencia, ni si alguien se está haciendo cargo ni qué es lo que sucede exactamente. Intento imaginarme los motivos de esta situación y lo único que me viene a la cabeza es una serie de departamentos sin ganas de trabajar pasándose la pelota y unos responsables de área tremendamente saturados por estas situaciones o siempre pasivos sin ganas de actuar.

Y como toda buena historia, ahí van mis 3 lecciones aprendidas que comparto con vosotros a modo de sugerencias:

  • Si te atiende un operador que no escucha tu problema, no es resolutivo o simplemente te miente, no pierdas el tiempo, cuelga la llamada educadamente y vuelve a llamar para hablar con otro operador. Cuando recibas la llamada para valorar la calidad de la atención recibida, expresa tu opinión valorando la experiencia.
  • Si consideras que se vulneran tus derechos, reclama. Quejarte en un foro o contándoselo a un amigo no cambia las cosas. Haz uso de los mecánismos oficiales y si necesitas información empieza por acudir a la Oficina Municipal de Información al Ciudadano.
  • Nunca contratéis ningún servicio con Yacom.

Los blogs ya no son interesantes

Quizás solo ha cambiado mi percepción del cúmulo de información que nos ofrece Internet, o quizás los blogs ya no son interesantes. Hace ya bastante tiempo que he dejado de visitar blogs y únicamente estoy suscrito a través de RSS a aquellos que habitualmente muestran un contenido interesante. Leamos interesante como una percepción personal y que no tiene por qué coincidir con la opinión del resto de mortales. Pero es que incluso dentro de estos medios a los que estoy suscrito, he notado que últimamente destilo el 90% de la información que publican.

Estaba reflexionando sobre los diferentes motivos que han hecho cambiar mi percepción sobre estos blogs y se me ocurren un buen puñado de razones, que básicamente tienen que ver por la motivación que lleva a muchas personas a escribir en un blog. Pocas o ninguna tiene que ver con el objetivo inicial de los “diarios de red”: compartir información.

Objetivos negativos de los blogs:

  • Incrementar visitas.
  • Ganar dinero.
  • Indexarse en Google.
  • Estar en “el mundillo” de la red y especialmente en los viveros de startups.
  • Hacer la pelota a gente con cierta reputación.
  • Mostrar una hipocresía continua venerando a competidores directos.
  • Plagiar información de otros blogs.
  • Vender humo.
  • Desviar la atención hacia otros temas.
  • Hacer criticas incendiarias contra todo.
  • Ser el primero en comentar cualquier entrada.
  • Egocentrismo. Mi blog es el mejor.
  • Crear vínculos de favoritismo.
  • Confundir la reputación con la calidad de contenidos.
  • Seguir modelos de negocios en lugar de modelos sociales.
  • Busca el reconocimiento del autor en lugar de ofrecer conocimiento a la comunidad.
  • Web 2.0
  • Manipulación e imagen poco fiel a la realidad.
  • Practicar la réplica de contenidos en varios blogs de una misma red.
  • Escribir una entrada al día, sea buena o sea humo.

Continue reading

Blogging y microblogging

En primer lugar, es curioso percatarse
de que Google ha ido adquiriendo muchas de aquellas startups que han
introducido servicios exitosos: Youtube, Feedburner, Jaiku y muchos
otros. Así pues, Google no siempre marca tendencias, y aunque a menudo
lo hace, últimamente dedica gran parte de sus esfuerzos en adquirir
cuotas de mercado.

Lo interesante de la compra de Jaiku por parte de Google, a mi parecer, es la sinergia en que
estamos sumidos actualmente. Dedicamos menos tiempo a las relaciones
sociales con las personas cercanas, y por otro lado, explotamos al
máximo las relaciones entre semejantes -tecnológicamente hablando, por
supuesto- exprimiendo al máximo el número e importancia de los
contactos.

Desde luego, el blogging ha sido el fenómeno estrella que ha
acercado Internet a la población; la convergencia entre la tecnología,
la sociedad, y más concretamente, las personas. Jaiku y Twitter són la
expresión minimalista de los blogs, pero también se encuentran más
cerca de la delgada línea que separa la privacidad y las relaciones
sociales.

¡Ojo! No digo que deban tratarse como dos herramientas diferentes,
pero a veces hacen falta más de cinco palabras para decir las cosas. No
es lo mismo escribir en tu blog personal “Estoy en la cárcel estudiando
el comportamiento de los reclusos frente a las nuevas tecnologias”, que
publicar en Twitter “Estoy en la cárcel” o incluso “Estoy en la cárcel
estudiando”. ¿Se trara únicamente de una cuestión de longitud de texto?
No. La gente necesita expresarse, contar cosas.

Desde mi punto de vista, sobre este particular (microblogging), no
metería en el mismo saco a Twitter y Jaiku. El primero únicamente
permite hacer saber a nuestros contactos qué estamos haciendo en un
momento concreto, mientras que el segundo nos permite reunir
suscripciones de nuestras publicaciones en la red, y de este modo,
aunar nuestra “presencia”.

Continue reading