OpenGL en remoto (ssh) y Nvidia

Para el rendering OpenGL en un ordenador remoto se recurre (por defecto) a “indirect rendering” (los comandos Open GL pasan por el protocolo GLX). El “direct rendering” permite acceder directamente a la GPU del ordenador donde se ejecuta la aplicación. Este es el modo que usa por defecto el controlador nativo de Nvidia, que de hecho por defecto rechaza el uso del “indirect rendering” (se puede rehabilitar con la opción “AllowIndirectGLX” de la sección “ServerFlags” de xorg.con).

Así pues, ejecutando la instalación por defecto del driver nativo de Nvidia, se sustituye la biblioteca del sistema libGL. Con lo cual, se pierde el “indirect rendering” y las aplicaciones OpenGL dejan de funcionar en remoto (X11 sobre SSH)

Por otro lado, la biblioteca libGL que Nvidia instala puede ser necesaria para otras aplicaciones (por ejemplo, CUDA)

Una posibilidad es rescatar la biblioteca libGL original (del paquete libgl1-mesa-glx, o equivalente) y recurrir a ella para uso remoto, anteponiendo LD_PRELOAD=/ruta/a/libGLoriginal.so al programa a utilizar.

Si MESA recurre a swrast_dri.so para hacer el rendering (render por software), es probable que haya conflictos con bibliotecas como libstdc++.so.6 o libgcc_s.so (como suele suceder con UCSF Chimera, que tiene sus propias copias de esas bibliotecas en su directorio lib). En este caso se puede usar el mismo “truco” de LD_PRELOAD, pero con esas bibliotecas:

LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so:/usr/lib/x86_64-linux-gnu/libstdc++.so.6 chimera

Tablets 2016

Modelo Precio (EUR) Pantalla (ppp) Almacenamiento (GB) OS CPU (cores,GHz) RAM Peso (g)
Kindle Fire HD 8 8″ 1200×800 (180) 16 +microSD Fire OS GB
Xiaomi MiPad 170-250 8″ 2050×1500 (326) 16 +microSD Android (4c 2.2) 2 GB
Lenovo Tab 2A 1070 170 10″ 1920×1200 (226) 16 Android 4.4 (4c, 1’5) 2GB 500
BQ Aquaris M8 170 8″ 1280×800 (190) HDMI 16 Android 6 (4c, 1’3) 2GB 350
BQ Aquaris M10 260 10″ 1920×1200 (226), uHDMI 16 + microSD Android 6 (8c 1’5) 2GB 470
Apple iPad Mini 2 290 8″ 2050×1530 (326) 32 iOS 10 A7 (4c) 1GB
Apple iPad Air 2 430 10″ 2048×1536 (264) 32 iOS 10 A8 (4c) 1GB 470
Apple iPad Pro 680 10″ 2048×1536 (264) 32 iOS 10 A9X (4c) 1GB 470
Fire HDX 8.9 380 9″ 2560×1600 (340) 16 FireOS (4c, 2’5) 2GB 375
Nexus 9 390 9″ 2048×1536 (284) 16 Android 5 K1 (2c, 2’3) 2GB 425
Google Pixel C 500 10″ 2560×1800 (300) 32 Android 7 X1 () 3GB 500
Samsung Galaxy Tab A S Pen (2016) 360 10″ 1920×1200 (226) 16 Android 6 (8c) 3GB 525
Samsung Galaxy Tab A (2016) 200-240 10″ 1920×1200 (226) 16 + microSD Android 6 (8c 1.6) 2GB 540

Puedes comparar estos modelos con los de el listado de tablets en 2015

Instalación de Ubuntu personalizada sin red

  • Descargar la ISO de la versión a instalar. Hacer un pendrive arrancable con la herramienta “Startup Disk Creator” (que basicamente copia la ISO al pendrive y configura el arranque EFI)
  • Preparar un repositorio local de paquetes.
    • Descargar los paquetes de interés con apt-get install -d
    • Copiarlos al pendrive
    • Generar el índice de paquetes con “dpkg-scanpackages . | gzip > Packages.gz”. La herramienta dpkg-scanpackages viene en el paquete dpkg-dev
    • Preparar un sources.list alternativo: “deb file:/media/…/deb/ ./”
  • Copiar el resto de programas y scripts al pendrive

Una vez el pendrive esté listo, se puede usar para arrancar la instalación de Ubuntu. Despúes, basta con sustituir el /etc/apt/sources.list por el alternativo, ejecutar apt-get update y proceder a la instalación de los paquetes desde el pendrive.

Plan de estudios de informática para el siglo XXI

La informática ha crecido lo suficiente como para abarcar infinidad de contenidos y asignaturas. A pesar de los loables esfuerzos de algunas facultades por mejorar sus programas, a veces se sigue dedicando el tiempo en asuntos que no compensan.

John Washam tiene publicado en su GitHub “Google interview University“, una especie de “plan de estudios de informática” orientado a conseguir un puesto de trabajo en Google. En muchos sentidos, Google parece un estupendo destino laboral para informáticos con inquietudes (no necesariamente con un título de Ingeniero). Aunque su plan esté orientado a Google, cubre bastantes de las cosas que tiene sentido conocer y que gozan de mayor probabilidad de ser utilizadas en la vida profesional dentro de cualquier empresa del sector.

El plan de Washam me parece un buen punto de partida para diseñar un plan de estudios de informática moderno y que se adapte a las necesidades no sólo del mercado (que a veces son peregrinas…) si no de la realidad.

Como curiosidad, el planteamiento de Washam de dedicarse a conseguir un trabajo en Google me recuerda al clásico empeño de “prepararse una oposición”. Empeño que, para algunas plazas, supone años de dedicación completa. Teniendo en cuenta que buena parte de los estudiantes no disponen de ingresos… ¿tendrá sentido dedicar los años de Universidad a conseguirse un trabajo en una corporación como Google? (en el caso de las oposiciones, la preparación parte de disponer de un título universitario, con lo cual no se puede atajar por ahí…)

Algunos campos interesantes en estas fechas:

  • procesamiento de imagen (“computational imaging”): fotografía en smartphones (“fotoinformática”)
  • seguridad informática
  • desarrollo de aplicaciones: servicios en línea y apps para móviles
  • bioinformática
  • inteligencia arficial (por fin…)