ace (antarctic circumnavigation expedition) 2016 it

255
Dando la vuelta a la Antártida con software libre Universidad Nacional de Cañete, 2017. Carles Pina y Jen Thomas

Upload: carles-pina-estany

Post on 29-Jan-2018

200 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Dando la vuelta a la Antártida con software libre

Universidad Nacional de Cañete, 2017. Carles Pina y Jen Thomas

Page 2: ACE (Antarctic Circumnavigation Expedition) 2016 IT

ContenidoQuiénes somos¿Qué es ACE?Gestión de datosDjango en la expediciónSistema informático y telecomunicacionesSistema de emailOtros:

backupsGPSFerryboxprofundidadCTDpaquetesinstalar LibreOffice sin el instalador...

2 / 162

Page 3: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Quiénes somos?

3 / 162

Page 4: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Carles Pina i EstanyNací en Manresa, cerca de Barcelona (España)Desde 2009 trabajo en Mendeley (departamento de Mendeley Desktop) trabajando enC++/QtNormalmente vivo en Londres (Reino Unido) pero nos tomamos un año sabático paraviajarMe gusta el software libre (uso Debian desde Debian Potato en el 2000)Algunos proyectos que hago/ayudo...

4 / 162

Page 5: ACE (Antarctic Circumnavigation Expedition) 2016 IT

(en Debian/Ubuntu)

5 / 162

Page 6: ACE (Antarctic Circumnavigation Expedition) 2016 IT

(lo usamos mucho en la Antártida)

6 / 162

Page 7: ACE (Antarctic Circumnavigation Expedition) 2016 IT

(lo usamos mucho en la Antártida)

(xnetload no está mantenido, después del viaje hice qnetload)https://github.com/cpina/qnetload

6 / 162

Page 8: ACE (Antarctic Circumnavigation Expedition) 2016 IT

7 / 162

Page 9: ACE (Antarctic Circumnavigation Expedition) 2016 IT

8 / 162

Page 10: ACE (Antarctic Circumnavigation Expedition) 2016 IT

9 / 162

Page 11: ACE (Antarctic Circumnavigation Expedition) 2016 IT

10 / 162

Page 12: ACE (Antarctic Circumnavigation Expedition) 2016 IT

11 / 162

Page 13: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras cosas(pequeñas, viejas o no mantenidas)

Catux-USB (2004)Django (después de la expedición)Pidgin (notificaciones)geeqie (copiar path)Pydance (soporte multilingue)Amarokgnokii...

12 / 162

Page 14: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Jen Thomas

13 / 162

Page 15: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Images: Polar Data Centre, British Antarctic Survey

14 / 162

Page 16: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Copyright Adam Bradley 15 / 162

Page 17: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mapas de dispersión de aves usando Leaflet y Open Street Map

16 / 162

Page 18: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Introducción

17 / 162

Page 19: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Qué es ACE?

18 / 162

Page 20: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Copyright: Swiss Polar Institute 19 / 162

Page 21: ACE (Antarctic Circumnavigation Expedition) 2016 IT

R/V Akademik Tryoshnikov

20 / 162

Page 22: ACE (Antarctic Circumnavigation Expedition) 2016 IT

21 / 162

Page 23: ACE (Antarctic Circumnavigation Expedition) 2016 IT

22 / 162

Page 24: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La ciencia

23 / 162

Page 25: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Copyright Swiss Polar Institute 24 / 162

Page 26: ACE (Antarctic Circumnavigation Expedition) 2016 IT

25 / 162

Page 27: ACE (Antarctic Circumnavigation Expedition) 2016 IT

26 / 162

Page 28: ACE (Antarctic Circumnavigation Expedition) 2016 IT

27 / 162

Page 29: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La gestión de datos

28 / 162

Page 30: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Qué es y qué hicimos?

29 / 162

Page 31: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Por qué?

30 / 162

Page 32: ACE (Antarctic Circumnavigation Expedition) 2016 IT

31 / 162

Page 33: ACE (Antarctic Circumnavigation Expedition) 2016 IT

32 / 162

Page 34: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Resumen de nuestro trabajoGuardar datosUna base de datos (actividades, metadatos, etc.)Interfaz de la base de datosIntranet para acceder a los datos, ver informaciónMapa de la rutaComunicaciones - email, internetAyuda con dispositivos, portátiles, software....Aconsejar a los científicos en la gestión de datos

33 / 162

Page 35: ACE (Antarctic Circumnavigation Expedition) 2016 IT

34 / 162

Page 36: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Dónde guardar los datos?A principios de diciembre Jen preguntó a los 22 investigadores principales cuantos GBnecesitarán para almacenar sus datosEstimamos en total unos 60 TB

35 / 162

Page 37: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Dónde guardar los datos?A principios de diciembre Jen preguntó a los 22 investigadores principales cuantos GBnecesitarán para almacenar sus datosEstimamos en total unos 60 TB

Preguntamos al barco qué almacenamiento tienen

35 / 162

Page 38: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Dónde guardar los datos?A principios de diciembre Jen preguntó a los 22 investigadores principales cuantos GBnecesitarán para almacenar sus datosEstimamos en total unos 60 TB

Preguntamos al barco qué almacenamiento tienen

Nos dicen que 500 GB (0.5 TB)

35 / 162

Page 39: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Datos, datos, datos...Preguntamos, miramos, comparamos y al final compramos:

15 discos duros 8 TB Western Digital15 discos duros 8 TB Seagate2 NAS Synology DS-1815+2 Gigabit switches2 SAI APC...

36 / 162

Page 40: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Datos, datos, datos...Preguntamos, miramos, comparamos y al final compramos:

15 discos duros 8 TB Western Digital15 discos duros 8 TB Seagate2 NAS Synology DS-1815+2 Gigabit switches2 SAI APC...

¡todo esto llegó a Sudáfrica 2 días antes de salir!

36 / 162

Page 41: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Datos, datos, datos...¡Lo pusimos a punto!

Incluyó bajarse 300 MB para los Synologys: corrí a una cafeteria y después al hotel parabajarme los ficheros necesarios.

37 / 162

Page 42: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Material de repuestoEn un barco se necesitan piezas de recambio para casi todo.

Compramos material sobrante (discos, switches, etc.) ¡Durante un mes no teníamos acceso aninguna tienda!

38 / 162

Page 43: ACE (Antarctic Circumnavigation Expedition) 2016 IT

39 / 162

Page 44: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La web intranet

40 / 162

Page 45: ACE (Antarctic Circumnavigation Expedition) 2016 IT

DjangoNo sabíamos Django antes de empezarTiene muy buena documentación off-lineYo tenía mucho código Python en mi ~/git (código mío, de proyectos libres). Sirve aveces más que libros, manuales, etc.

41 / 162

Page 46: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Por qué Django nos era muycómodo?

Escribiendo un modelo genera formularios y base de datosCambiando el modelo hace las migraciones en la base de datosSistema autenticación de usuariosSistema de permisos de usuariosSistema de plantillas integrado con los modelosMuy fácil de extender como programadorLa interfaz de usuario (parte admin) cómoda sin esfuerzo

42 / 162

Page 47: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Modelos en DjangoEjemplo de model en Django:

class StorageCrate(models.Model): name = models.CharField(max_length=255, unique=True) location = models.CharField(max_length=255) description = models.CharField(max_length=255, null=True, blank=True) comment = models.TextField(null=True, blank=True)

43 / 162

Page 48: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Modelos en DjangoEjemplo de model en Django:

class StorageCrate(models.Model): name = models.CharField(max_length=255, unique=True) location = models.CharField(max_length=255) description = models.CharField(max_length=255, null=True, blank=True) comment = models.TextField(null=True, blank=True)

Genera los formulariosGenera la tabla en la base de datos si no existíaGenera migraciones si el modelo existía y era diferente

43 / 162

Page 49: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La base de datosTeníamos que crear una base de datos para que los científicos introdujeran informaciónde sus actividades - sus metadatosYo conocía Flask, Mysql, SQLAlchemyPero ¿cómo hacer los formularios para entrar todos los datos? (a mano con Flask tardarímucho, con C++/Qt aún peor!)Estaba una noche en casa un amigo en Londres y le pregunté como lo haría él

44 / 162

Page 50: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La base de datosTeníamos que crear una base de datos para que los científicos introdujeran informaciónde sus actividades - sus metadatosYo conocía Flask, Mysql, SQLAlchemyPero ¿cómo hacer los formularios para entrar todos los datos? (a mano con Flask tardarímucho, con C++/Qt aún peor!)Estaba una noche en casa un amigo en Londres y le pregunté como lo haría élDijo: ¡con Django! (yo pensaba que no quería Django, que era demasiado grande)

44 / 162

Page 51: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La base de datosTeníamos que crear una base de datos para que los científicos introdujeran informaciónde sus actividades - sus metadatosYo conocía Flask, Mysql, SQLAlchemyPero ¿cómo hacer los formularios para entrar todos los datos? (a mano con Flask tardarímucho, con C++/Qt aún peor!)Estaba una noche en casa un amigo en Londres y le pregunté como lo haría élDijo: ¡con Django! (yo pensaba que no quería Django, que era demasiado grande)Y hicimos un proyecto pequeño en Django de ejemplo para que viera como funciona

44 / 162

Page 52: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¡Gracias Fran y Django!

45 / 162

Page 53: ACE (Antarctic Circumnavigation Expedition) 2016 IT

science-cruise-data-managementhttp://github.com/cpina/science-cruise-data-management

Empecé a programar toda la semana... ¡la documentación de Django está muy bien! (ydisponible offline)Visité a Fran para preguntarle más cosasJen y yo hicimos toda la Intranet con Django

46 / 162

Page 54: ACE (Antarctic Circumnavigation Expedition) 2016 IT

47 / 162

Page 55: ACE (Antarctic Circumnavigation Expedition) 2016 IT

48 / 162

Page 56: ACE (Antarctic Circumnavigation Expedition) 2016 IT

49 / 162

Page 57: ACE (Antarctic Circumnavigation Expedition) 2016 IT

MapaYo había usado la librería Leaflet (sobretodo para Benches)

50 / 162

Page 58: ACE (Antarctic Circumnavigation Expedition) 2016 IT

MapaYo había usado la librería Leaflet (sobretodo para Benches)Queríamos hacer un mapa de la expedición:

¿Dónde estábamos?¿Dónde han pasado los eventos?

50 / 162

Page 59: ACE (Antarctic Circumnavigation Expedition) 2016 IT

MapaYo había usado la librería Leaflet (sobretodo para Benches)Queríamos hacer un mapa de la expedición:

¿Dónde estábamos?¿Dónde han pasado los eventos?

Pero la proyección del mapa no es la estándard

50 / 162

Page 60: ACE (Antarctic Circumnavigation Expedition) 2016 IT

51 / 162

Page 61: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Proyección del mapaLeaflet tiene soporte para diferentes proyecciones (con un plugin)La Antártida normalmente se visualiza con proyección EPSG:3031 (el usadonormalmente es Mercator)No hay tiles (imágenes PNG como las de openstreetmap.org) renderizadas con laproyección EPSG:3031En lugar de tiles usé shapefiles (*.shp): describen el contorno de la AntártidaPasé los shapefiles del formato original (shp) a geojson (para que Leaflet lo cargara)

52 / 162

Page 62: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Proyección del mapaLeaflet tiene soporte para diferentes proyecciones (con un plugin)La Antártida normalmente se visualiza con proyección EPSG:3031 (el usadonormalmente es Mercator)No hay tiles (imágenes PNG como las de openstreetmap.org) renderizadas con laproyección EPSG:3031En lugar de tiles usé shapefiles (*.shp): describen el contorno de la AntártidaPasé los shapefiles del formato original (shp) a geojson (para que Leaflet lo cargara)

ogr2ogr -f GeoJSON -simplify 1000 -t_srs EPSG:3031 \Coastline_high_res_polygon.geojson Coastline_high_res_polygon.shp

52 / 162

Page 63: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Resumen DjangoSin Django hubieramos tardado muchísimo másSi es necesario Django permite fácilmente acceder a la base de datos directamente (y aúncrear los objetos de los modelos)Los "commands" (parte de la aplicación de Django pero se usan desde la línea decomandos, no desde el navegador) son muy cómodos de escribirEstamos muy contentos con Django (aunque primero pensé que no sería tan útil)

53 / 162

Page 64: ACE (Antarctic Circumnavigation Expedition) 2016 IT

54 / 162

Page 65: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Sistema informático expediciónen el barco

55 / 162

Page 66: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Servidores hardwareUn portátil viejo: Ubuntu 16.10 (se calentaba, etc.). Fué cómodo porqué lo llevamos yasemi configurado de casa(segundo mes hasta el final): Añadimos un portátil nuevo con Ubuntu 16.10

56 / 162

Page 67: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Tareas de los servidoresSistema DjangoSistema de email (ver más adelante)Subir/bajar ficheros internet (ver más adelante)DNS (Bind) (para http://ace-intranet.lan, http://ace-mail.lan)DHCP Server (ISC DHCP)Servidor git interno (no podíamos depender de nada de Internet)Importar datos GPS (ver más adelante)Copias de seguridad de diferentes ordenadores (ver más adelante)Copias de seguridad entre NAS1 y NAS2 (rsync)Muchas otras tareas pequeñas (p. ej. reiniciar un router a medianoche)

57 / 162

Page 68: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet en el barco

58 / 162

Page 69: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IntroducciónTeníamos 2 sistemas IridiumInicialmente un sistema para llamadas, otro para InternetEsto son, 128 kbits para oficialmente 80 personas

59 / 162

Page 70: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IntroducciónTeníamos 2 sistemas IridiumInicialmente un sistema para llamadas, otro para InternetEsto son, 128 kbits para oficialmente 80 personasLas conexiones via Iridium son MUY inestables

L. Wood, SaVi: satellite constellation visualization, First Annual CCSR Research Symposium(CRS 2011), Centre for Communication Systems Research, 30 June 2011.http://arxiv.org/abs/1204.3265

59 / 162

Page 71: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativos

60 / 162

Page 72: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de Iridium

60 / 162

Page 73: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemas

60 / 162

Page 74: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemasHay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satélite

60 / 162

Page 75: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemasHay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satéliteLos satélites están a unos 780 Km de la tierra (GPS a unos 20.000 Km)

60 / 162

Page 76: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemasHay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satéliteLos satélites están a unos 780 Km de la tierra (GPS a unos 20.000 Km)Por la noche a veces se pueden ver (como estrellas fugaces)

60 / 162

Page 77: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemasHay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satéliteLos satélites están a unos 780 Km de la tierra (GPS a unos 20.000 Km)Por la noche a veces se pueden ver (como estrellas fugaces)Estan lanzando satélites de nueva generación

60 / 162

Page 78: ACE (Antarctic Circumnavigation Expedition) 2016 IT

IridiumLa constelación tiene 66 satélites operativosNombre Iridium porqué originalmente había 77 satélites: el número atómico de IridiumTienen satélites sin usar: los activan y ponen en el plano cuando hay problemasHay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satéliteLos satélites están a unos 780 Km de la tierra (GPS a unos 20.000 Km)Por la noche a veces se pueden ver (como estrellas fugaces)Estan lanzando satélites de nueva generación¡Hay cobertura en el polo norte y sur! Pero MUY lento y inestable: se conecta ydesconecta porqué no son geostacionarios y hay cambios de satélite

60 / 162

Page 79: ACE (Antarctic Circumnavigation Expedition) 2016 IT

61 / 162

Page 80: ACE (Antarctic Circumnavigation Expedition) 2016 IT

62 / 162

Page 81: ACE (Antarctic Circumnavigation Expedition) 2016 IT

63 / 162

Page 82: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Reproducir vídeo:

iridium-apt-get-update.ogv

64 / 162

Page 83: ACE (Antarctic Circumnavigation Expedition) 2016 IT

VSATNo usamos VSAT durante la expediciónCuando lo pude probar (hemisferio norte, por el contrato que el barco tiene): ¡unos 10Mbps estables!La antena apunta siempre (con motores) al satélite geostacionarioA unos 35.900 Km de la tierra (geoestacionario)

65 / 162

Page 84: ACE (Antarctic Circumnavigation Expedition) 2016 IT

66 / 162

Page 85: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Necesidades de comunicacionesLos científicos necesitaban:

Bajar imagenes de satélite de hieloBajar modelos meteorológicos

Los periodistas necesitaban:Subir fotos¡Subir vídeos!

Todos necesitaban/querían:Comunicarse con sus equipos (resolver problemas)Comunicarse con su família, amigos

67 / 162

Page 86: ACE (Antarctic Circumnavigation Expedition) 2016 IT

68 / 162

Page 87: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 1

69 / 162

Page 88: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 1

Setup de las redes de comunicación

70 / 162

Page 89: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Setup parte 1Un router TP-Link (gama de hogar, no profesional) conectado al IridiumDos cables con ancho de banda "ilimitado"Sistema WiFi del router como red de invitados (guest network) limitando la velocidad(50% o 70% del total) y menos prioridad

71 / 162

Page 90: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 1

Medios de comunicación

72 / 162

Page 91: ACE (Antarctic Circumnavigation Expedition) 2016 IT

EmailRecomandamos usar Thunderbird en cada portátil y usar la conexión cableFué bastante mal:

Windows tiene time-outs cortos (e.g. para DNS)Thunderbird tiene problemas con conexiones inestables (y mala información para elusuario)Tuvimos que configurar muchos Thunderbirds para diferentes proveedores(universidades, empresas, etc.)Nunca sabíamos si había un error de configuración (servidores IMAP, SSL,usuario/contraseña) o bien de conexiónConfiguramos Thunderbird para bajar sólo emails recientes, sólo si son máspequeños de 50 KB, etc.Me dolía ver gente esperando para enviar un email delante de las pantallas. No erafiable y era muy estresante

73 / 162

Page 92: ACE (Antarctic Circumnavigation Expedition) 2016 IT

WhatsAppEn el WiFi red invitados mucha gente usaba WhatsApp.

En iPhone no se puede escribir si WhatsApp piensa que no hay conexiónEn Android los mensajes salían y llegaban pero a veces tardaba horasLa gente dejaba teléfonos en la oficina que también saturaban la conexión (con updates,etc.).No siempre funcionaba

74 / 162

Page 93: ACE (Antarctic Circumnavigation Expedition) 2016 IT

WhatsAppEn el WiFi red invitados mucha gente usaba WhatsApp.

En iPhone no se puede escribir si WhatsApp piensa que no hay conexiónEn Android los mensajes salían y llegaban pero a veces tardaba horasLa gente dejaba teléfonos en la oficina que también saturaban la conexión (con updates,etc.).No siempre funcionabaAnécdota: científicos escribieron un mensaje en un fichero de texto y lo querían mandarpor WhatsApp... (y tenían iPhone)

74 / 162

Page 94: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 1

Bajando datos

75 / 162

Page 95: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Bajar datos científicosCon un rsync bajábamos datos científicos de noche (90 minutos para 15 MB más omenos, con las desconexiones, pero muy variable)

76 / 162

Page 96: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Bajar datos científicosCon un rsync bajábamos datos científicos de noche (90 minutos para 15 MB más omenos, con las desconexiones, pero muy variable)

until rsync -e "ssh -o ConnectTimeout=120 -o ServerAliveInterval=120" \ -vtaz --progress --inplace --timeout=120 --bwlimit=10kdo datedone

76 / 162

Page 97: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Bajar datos científicosCon un rsync bajábamos datos científicos de noche (90 minutos para 15 MB más omenos, con las desconexiones, pero muy variable)

until rsync -e "ssh -o ConnectTimeout=120 -o ServerAliveInterval=120" \ -vtaz --progress --inplace --timeout=120 --bwlimit=10kdo datedone

El código es un reflejo de como es el programador

76 / 162

Page 98: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Bajar datos científicosCon un rsync bajábamos datos científicos de noche (90 minutos para 15 MB más omenos, con las desconexiones, pero muy variable)

until rsync -e "ssh -o ConnectTimeout=120 -o ServerAliveInterval=120" \ -vtaz --progress --inplace --timeout=120 --bwlimit=10kdo datedone

El código es un reflejo de como es el programador

¡Bien persistente! (y con paciencia)

76 / 162

Page 99: ACE (Antarctic Circumnavigation Expedition) 2016 IT

rsync --progressDel "man rsync":

--progress This option tells rsync to print information showing the progress of the transfer. This gives a bored user something to watch. With a modern rsync this is the same as specifying

77 / 162

Page 100: ACE (Antarctic Circumnavigation Expedition) 2016 IT

rsync -e "ssh -oConnectTimeout=120"rsync usa ssh para conectar, reducimos los timeouts para que se reconectara más rápido.

--inplaceSi rsync se cancelaba dejaba el fichero incompleto: así seguía después. Por defecto hace unfichero temporal que se borra

78 / 162

Page 101: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Resumen comunicaciones parte 1Mucha frustración: gente que no podía enviar mails o recibir durante díasEn un entorno de estrés: tormentas, problemas técnicos, gente que su doctorado dependede la expedición, etc.Periodistas esperandome a las 7 de la mañana diciendo "¡¡¡Me levanté a las 4 y no hepodido enviar ningún WhatsApp!!!"Gente furiosa golpeando los portátilesA mí me funcionaba bien con:

fetchmailpostfixmutt

79 / 162

Page 102: ACE (Antarctic Circumnavigation Expedition) 2016 IT

80 / 162

Page 103: ACE (Antarctic Circumnavigation Expedition) 2016 IT

81 / 162

Page 104: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

82 / 162

Page 105: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Configuración de email

83 / 162

Page 106: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Sistema de emailCuando llegamos a Austrália:

Compré (para 3 meses) un servidor VPSConfiguré Postfix (SMTP) i Dovecot (IMAP)Configuré un servidor (un portátil) en el barco con Roundcube (Webmail), fetchmail(cliente IMAP) y Postfix.Con Django hicimos un sistema para crear usuarios en el servidor del barco y en elservidor de InternetUsé fetchmail, postfix, etc. que me había funcionado bien para mí, para los 80expedicionarios

84 / 162

Page 107: ACE (Antarctic Circumnavigation Expedition) 2016 IT

85 / 162

Page 108: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Crear los usuariosComo tenía poco tiempo el script de Django sencillamente imprimía por pantalla loscomandos y los copié-pegué en el servidor local o remoto:

Local

useradd --create-home carles.pinaestanyecho carles.pinaestany:ahf5ze | chpasswduseradd --create-home jen.thomasecho jen.thomas:ahf5ze | chpasswd

86 / 162

Page 109: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Remoto(también generado por el script de Django):

useradd --shell /bin/false --create-home carles.pinaestanyecho carles.pinaestany:Aib3gah0oTh5ii1pai0t | chpasswdecho carles.pinaestany | saslpasswd2 -u ace-expedition.net Aib3gah0oTh5ii1pai0t#####useradd --shell /bin/false --create-home jen.thomasecho jen.thomas:Bae5hahgho1iephuu5qu | chpasswdecho jen.thomas | saslpasswd2 -u ace-expedition.net Bae5hahgho1iephuu5qu

87 / 162

Page 110: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Envío de emailsLimité el tamaño máximo de mail a 50 KB (en Roundcube y en Postfix)

88 / 162

Page 111: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Envío de emailsLimité el tamaño máximo de mail a 50 KB (en Roundcube y en Postfix)(despuésincrementamos el tamaño a 200 KB)

88 / 162

Page 112: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Envío de emailsLimité el tamaño máximo de mail a 50 KB (en Roundcube y en Postfix)(despuésincrementamos el tamaño a 200 KB)Limité el número de conexiones del Postfix del barco al Postfix de Internet a máximo 2para evitar saturar la conexión

88 / 162

Page 113: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Servidor de Internet

Apache2 (servir ficheros)Dovecot (servir emails en IMAP), PostfixPython3, wget, etc. para bajar datosssh, rsync, etc. para servir datos al barco

89 / 162

Page 114: ACE (Antarctic Circumnavigation Expedition) 2016 IT

90 / 162

Page 115: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Recepción de emails

91 / 162

Page 116: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Recepción de emails (sistema 1)Con Django generé un .fetchmailrc que bajaba todos los emails de todos los usuarios(máximo de 50 KB).Resultado:

Si no había emails fetchmail tardaba unas 4 horas para comprobar que no habíaemails (se conectaba como cada usuario) (el protocolo IMAP tiene bastantescomunicaciones de ida y vuelta, penalizan mucho en comunicaciones con latenciasaltas)Si la conexión no funcionaba: fetchmail "ignoraba" este usuario hasta la próximapasadaLos emails podían tardar 8 horas a ser recibidos! (y sólo si eran del tamañodecidido)

fetchmail es ideal:time outs altos por defectobuena opción -v (con el protocolo IMAP paso a paso)buenos exit codes

92 / 162

Page 117: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Recepción de emails (sistema 2)Con Django generé un .fetchmailrc de sólo los usuarios de la parte 2 del viaje (se redujoel tiempo de espera de 4 horas a unas 2 horas)

93 / 162

Page 118: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Recepción de emails (sistema 3,definitivo)Pensé que quería sólo recoger los emails de los usuarios que tenían emails. Y en orden derecepción de los emails.

Miré como organiza Dovecot los emails y a ver si podía saber fácilmente qué usuarios teníanemails en el servidor de Internet que deberían ser bajados.

94 / 162

Page 119: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Recepción de emails (sistema 3,definitivo)Pensé que quería sólo recoger los emails de los usuarios que tenían emails. Y en orden derecepción de los emails.

Miré como organiza Dovecot los emails y a ver si podía saber fácilmente qué usuarios teníanemails en el servidor de Internet que deberían ser bajados. Dovecot deja los emails nuevos en/home/$USERNAME/Maildir/new

Además el nombre del fichero contiene el timestamp de recepción! P. ej:1498094976.24034_1.servidor64

94 / 162

Page 120: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Más de sistema 3 de los emails

95 / 162

Page 121: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Escoger qué usuarios tenían mails a bajar

Script en el servidor de Internet

Un script en Python escaneaba todos los /home/* y imprimía en la salida estándard:

/home/carles.pinaestany/Maildir/new/1498094976.24034_1.servidor64/home/john.doe/Maildir/new/1375352537.24034_1.servidor64

Script: https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/utilities/messages_to_download.py

96 / 162

Page 122: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Script en el servidor del barco

cmd = "ssh -o ConnectTimeout=120 -o ServerAliveInterval=120 root@{} \./messages_to_download.py > '{}'".format(settings.IMAP_SERVER, output_file_path)

Entonces en el fichero "output_file_path" hay la salida del script del servidor. El script localdecide qué usuarios bajar primero (los usuarios con los mails más viejos).

97 / 162

Page 123: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Script en el servidor del barco

cmd = "ssh -o ConnectTimeout=120 -o ServerAliveInterval=120 root@{} \./messages_to_download.py > '{}'".format(settings.IMAP_SERVER, output_file_path)

Entonces en el fichero "output_file_path" hay la salida del script del servidor. El script localdecide qué usuarios bajar primero (los usuarios con los mails más viejos).

El script de Python entonces genera un "fetchmailrc" para este usuario y ejecuta:

fetchmail --timeout 120 --fetchmailrc {} --pidfile {}".format(file_name, pidfile)

¡En un "while" hasta que funcione!

Script: https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/main/management/commands/downloademailsbyage.py

(también imprime estadísticas)

97 / 162

Page 124: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Sistema 3 de emails

Emails grandes

98 / 162

Page 125: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Emails demasiado grandesDurante unos días la gente no sabía si habían recibido emails demasiado grandesHice un notificador de emails grandes. Usé Python con imaplib (imaplib para conectarsey ver qué emails son grandes) (inspirado con el código de "notificaciones olfativas")

Script: https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/main/management/commands/warningoversizeemail.py

99 / 162

Page 126: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Emails demasiado grandesEn todos los scripts es muy importante pensar que la conexión es inestable. El oversize emailnotifier empezó a funcionar consistentemente cuando hice en su código:

import socket

socket.setdefaulttimeout(30)

while True: try: print("Checking: {} {}/{}".format(email_account.email_address, index+1, len(emails_active_leg))) self.check_user(email_account.email_address) break except ConnectionResetError: print("Connection Reset Error for user: {}. Trying again".format(email_account)) except socket.timeout: print("Connection timeout Error for user: {}. Trying again".format(email_account)) except OSError: print("Probably 'Network is unreachable' error for user {}. Trying again".format(email_account))

100 / 162

Page 127: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Emails demasiado grandeswarningoversizeemail.py hacia:

Enviar un email para notificar al receptor que un email era demasiado grandeContenía el tamaño, subject, remitente y UID

Guardaba el email UID y otra información en una tabla (así sólo se notificaba una vezque había un email grande)

El mail de notificación decía "si este email es muy importante reenvia la notificación alequipo de data management"

101 / 162

Page 128: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Cómo bajamos los emailsgrandes?

Una idea sería usar fetchmail sin el límite de maximo email. Pero la conexión era MUYinestable, bajarse algo de más de 500 KB seguido era casi imposible

102 / 162

Page 129: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Cómo bajamos los emailsgrandes?

Una idea sería usar fetchmail sin el límite de maximo email. Pero la conexión era MUYinestable, bajarse algo de más de 500 KB seguido era casi imposibleDivide and conquer

102 / 162

Page 130: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Cómo bajamos los emailsgrandes?

Una idea sería usar fetchmail sin el límite de maximo email. Pero la conexión era MUYinestable, bajarse algo de más de 500 KB seguido era casi imposibleDivide and conquer

¡rsync!

102 / 162

Page 131: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Cómo bajamos los emailsgrandes?

Una idea sería usar fetchmail sin el límite de maximo email. Pero la conexión era MUYinestable, bajarse algo de más de 500 KB seguido era casi imposibleDivide and conquer

¡rsync!¡Usar rsync para bajar emails!

102 / 162

Page 132: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UID

103 / 162

Page 133: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

103 / 162

Page 134: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

carles@servidor64:~/Maildir$ cat dovecot-uidlist 3 V1336238204 N87624 Gd445dd1a9d8c8e51350f0000d09efc5087623 W1257 S1224 :1499969465.29226_1.servidor6487624 :1499969500.29282_1.servidor64

103 / 162

Page 135: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

carles@servidor64:~/Maildir$ cat dovecot-uidlist 3 V1336238204 N87624 Gd445dd1a9d8c8e51350f0000d09efc5087623 W1257 S1224 :1499969465.29226_1.servidor6487624 :1499969500.29282_1.servidor64

Parsea el dovecot-uidlist para encontrar el filename de un $UID

103 / 162

Page 136: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

carles@servidor64:~/Maildir$ cat dovecot-uidlist 3 V1336238204 N87624 Gd445dd1a9d8c8e51350f0000d09efc5087623 W1257 S1224 :1499969465.29226_1.servidor6487624 :1499969500.29282_1.servidor64

Parsea el dovecot-uidlist para encontrar el filename de un $UIDBaja (rsync) el fichero que contiene el mail: p. ej.$USERNAME/Maildir/new/1499969500.29282_1.servidor64. Puede tener quereintentar, etc.

103 / 162

Page 137: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

carles@servidor64:~/Maildir$ cat dovecot-uidlist 3 V1336238204 N87624 Gd445dd1a9d8c8e51350f0000d09efc5087623 W1257 S1224 :1499969465.29226_1.servidor6487624 :1499969500.29282_1.servidor64

Parsea el dovecot-uidlist para encontrar el filename de un $UIDBaja (rsync) el fichero que contiene el mail: p. ej.$USERNAME/Maildir/new/1499969500.29282_1.servidor64. Puede tener quereintentar, etc.Guarda el fichero bajado en el servidor local en$USERNAME/Maildir/.DownloadedEmails

103 / 162

Page 138: ACE (Antarctic Circumnavigation Expedition) 2016 IT

downloademail.py./downloademail.py $USERNAME $UIDBaja el fichero $USERNAME/Maildir/dovecot-uidlist . Contiene:

carles@servidor64:~/Maildir$ cat dovecot-uidlist 3 V1336238204 N87624 Gd445dd1a9d8c8e51350f0000d09efc5087623 W1257 S1224 :1499969465.29226_1.servidor6487624 :1499969500.29282_1.servidor64

Parsea el dovecot-uidlist para encontrar el filename de un $UIDBaja (rsync) el fichero que contiene el mail: p. ej.$USERNAME/Maildir/new/1499969500.29282_1.servidor64. Puede tener quereintentar, etc.Guarda el fichero bajado en el servidor local en$USERNAME/Maildir/.DownloadedEmailsActualiza (si es necesario) el fichero local $USERNAME/Maildir/subscriptions

103 / 162

Page 139: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿Cómo enviar emails grandes?Los usuarios venían y nos llevaban ficheros grandes (más de la capacidad del mailmáxima) en una memória USB, carpeta compartida, etc.A veces los subíamos con un script (until rsync - sigue probando) al servidor de Interneten /var/www/uploaded/misc/nombre_fichero.zipOtras veces los poníamos en una cola durante la noche

104 / 162

Page 140: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Siguiendo con emails y otros ficherosgrandes

105 / 162

Page 141: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Subir/bajar ficheros durante lanoche(esto fué la parte 2 y 3, la 1 era caos)

Los periodistas tenían una carpeta compartida y copiaban ficheros alláLos ficheros y directorios se subían a http://ace-expedition.net/files/FECHA/ (con unmáximo de 30 MB al día)Se bajaban datos para científicosSe subía "la cola" (hasta las 8 de la mañana)

106 / 162

Page 142: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La cola: rsync_queue.pyVer: https://github.com/cpina/rsync-queue

Un script que subía ficheros de un directorio en orden alfabético.

Los ficheros que nos pasaban los copiabamos con orden de preferencia:

010-john-photos_of_fish.zip020-jen-data.zip030-james-test_files.zip

107 / 162

Page 143: ACE (Antarctic Circumnavigation Expedition) 2016 IT

La cola: rsync_queue.pyCuando un fichero era subido: se mandaba un mail a nosotros con el enlace y se movía elfichero a uploadedA las 8: killall rsync_queue.py (y este manda un mail a nosotros con el progreso delfichero que se está subiendo)Internamente usa rsync con la opción --progress y así puede informar via email o puedegenerar un fichero de log con la salida. Va analizando la salida de rsync

Ver: https://github.com/cpina/rsync-queue/blob/master/rsync_queue.py#L96

108 / 162

Page 144: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Internet parte 2

Bajando más datos

109 / 162

Page 145: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otros datos científicosEn algunos casos, datos necesarios estaban en Internet sólo con protocolos FTP o HTTP(no con rsync que era lo ideal)

110 / 162

Page 146: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otros datos científicosEn algunos casos, datos necesarios estaban en Internet sólo con protocolos FTP o HTTP(no con rsync que era lo ideal)Teníamos scripts en el servidor de Internet (para bajarlos fiablemente) y después scriptscon rsync para bajarlos al barco

110 / 162

Page 147: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Usando los dos Iridiums paradatos

Conecté el Iridium de teléfono a la red de datos para subir ficheros cuando no habíallamadasEn el servidor de internet: redirigí el puerto 2222 al puerto 22En el servidor del barco: tenía un default gw (Iridium1). Pero paquetes que iban al puerto2222 los marcaba para ir a un gw diferente: Iridium2Tenía dos rsync_queue.py: uno que usaba el puerto 22 y el otro el puerto 2222. Coniptables, etc. conseguí enrutarlo a gateways diferentes.

111 / 162

Page 148: ACE (Antarctic Circumnavigation Expedition) 2016 IT

112 / 162

Page 149: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Backups

113 / 162

Page 150: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¿De qué queríamos hacer copiasde seguridad?

De recursos compartidos de WindowsDe discos durosDe zona "staging"De otro servidor Linux (usamos rsync)

114 / 162

Page 151: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Backups de recursos compartidosFuímos a cada ordenador que recogía datos en el barco (muchos con Windows)Compartimos la carpeta (en sólo lectura)Asignamos una IP estáticaTeníamos un modelo en Django que contenía:

IPUsuarioContraseñaVolumenDestino

115 / 162

Page 152: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Evitamos cambiar configuraciones de losordenadores de científicos

Muchos ordenadores Windows estaban conectados a otros dispositivos via conexiónLAN

116 / 162

Page 153: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Evitamos cambiar configuraciones de losordenadores de científicos

Muchos ordenadores Windows estaban conectados a otros dispositivos via conexiónLANAñadimos un nuevo puerto LAN via conexiones USB

116 / 162

Page 154: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Evitamos cambiar configuraciones de losordenadores de científicos

Muchos ordenadores Windows estaban conectados a otros dispositivos via conexiónLANAñadimos un nuevo puerto LAN via conexiones USBEra la manera de minimizar cambios de configuración en los ordenadores Windowsdurante la expedición

116 / 162

Page 155: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Backups recursos compartidosTeníamos un mail con el resultado del último backupY una tabla en la base de datos con los últimos resultados

117 / 162

Page 156: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Backups recursos compartidosTeníamos un mail con el resultado del último backupY una tabla en la base de datos con los últimos resultados

La idea es un script en Python que usa rsync y este hace los mount/rsync/umount basado en losdatos que hay en el model (tabla)

117 / 162

Page 157: ACE (Antarctic Circumnavigation Expedition) 2016 IT

118 / 162

Page 158: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS

119 / 162

Page 159: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS IntroducciónEra importante que tuviéramos todos los datos de los GPS guardadosPara saber "¿Dónde estábamos en la fecha+hora D?"En el barco NO había ningún sistema que ya lo guardara en una base de datos, tampocoen ningún fichero de texto, etc.

120 / 162

Page 160: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS TrimbleUn ordenador con Windows de la expedición ya tenía acceso a un GPS (por puerto serie)para el echo sounder

121 / 162

Page 161: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS TrimbleUn ordenador con Windows de la expedición ya tenía acceso a un GPS (por puerto serie)para el echo sounderEste Windows ya tenía instalado el software Serial Port Splitter(https://www.eltima.com/products/serialsplitter/)

121 / 162

Page 162: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS TrimbleUn ordenador con Windows de la expedición ya tenía acceso a un GPS (por puerto serie)para el echo sounderEste Windows ya tenía instalado el software Serial Port Splitter(https://www.eltima.com/products/serialsplitter/)Bajé, instalé y configuré "GPS NMEA Router"(http://arundale.com/docs/ais/nmearouter.html)

121 / 162

Page 163: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS TrimbleUn ordenador con Windows de la expedición ya tenía acceso a un GPS (por puerto serie)para el echo sounderEste Windows ya tenía instalado el software Serial Port Splitter(https://www.eltima.com/products/serialsplitter/)Bajé, instalé y configuré "GPS NMEA Router"(http://arundale.com/docs/ais/nmearouter.html)Compartí el directorio donde se guardaban los logs

121 / 162

Page 164: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS TrimbleUn ordenador con Windows de la expedición ya tenía acceso a un GPS (por puerto serie)para el echo sounderEste Windows ya tenía instalado el software Serial Port Splitter(https://www.eltima.com/products/serialsplitter/)Bajé, instalé y configuré "GPS NMEA Router"(http://arundale.com/docs/ais/nmearouter.html)Compartí el directorio donde se guardaban los logsEscribí un parser de NMEA leyendo los ficheros en tiempo real (con rotación deficheros): lo insertaba a la base de datos (https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/ship_data/management/commands/nmea_file2db.py

(el parser NMEA es bastante interesante por la clase TailDirectory: lee continuamente delfichero, usa un callback para líneas enteras, comprueba nuevos ficheros en el directorio, etc.)

121 / 162

Page 165: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Strings NMEA$GPDTM,W84,,,,,,W84*66$PORZD,A,009.4*31$GPZDA,000000,31,12,2016,00,00*4C$PORZX,000,0,,,0000,A*0E$GPRMC,000001,A,4610.2061,S,05205.1274,E,06.4,224.191,311216,,,D*54$GPGGA,000001,4610.2061,S,05205.1274,E,1,12,0.9,37.4,M,,,,*33$GPVTG,224.2,T,,M,06.43,N,11.91,K,D*07$GPHDT,232.39,T*0C$GPROT,-000.16,A*2B$PRDCU,111,232.39,00.19,00.54,00.37,R,02.56,00.30,L,A*08$GPGSA,A,3,15,13,20,10,12,18,24,71,72,73,74,,,,,,,,,,,,,,1.8,0.9,1.5*3B

122 / 162

Page 166: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

123 / 162

Page 167: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

Subí corriendo y... la ¡tripulación lo había apagado!

123 / 162

Page 168: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

Subí corriendo y... la ¡tripulación lo había apagado!Preguntamos para un segundo GPS en el barco: encontramos el del puente decomandamiento

123 / 162

Page 169: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

Subí corriendo y... la ¡tripulación lo había apagado!Preguntamos para un segundo GPS en el barco: encontramos el del puente decomandamientoLa tripulación usó Franson GpsGate y "envió" los datos del GPS a nuestra IP via UDP

123 / 162

Page 170: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

Subí corriendo y... la ¡tripulación lo había apagado!Preguntamos para un segundo GPS en el barco: encontramos el del puente decomandamientoLa tripulación usó Franson GpsGate y "envió" los datos del GPS a nuestra IP via UDP(la tripulación añadió una nueva IP de una nueva red a su tarjeta de red a su switch, yoañadí un nuevo dispositivo USB para la nueva red)

123 / 162

Page 171: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(1/2)En la primera isla descubrí que el GPS no funcionaba (¿o la red? ¿o el Windows? ¿o la basede datos? ¿o el visualizador?)

Subí corriendo y... la ¡tripulación lo había apagado!Preguntamos para un segundo GPS en el barco: encontramos el del puente decomandamientoLa tripulación usó Franson GpsGate y "envió" los datos del GPS a nuestra IP via UDP(la tripulación añadió una nueva IP de una nueva red a su tarjeta de red a su switch, yoañadí un nuevo dispositivo USB para la nueva red)Con ngrep (y tcpdump) ví que sí, llegaban los datos... ¡pero no sabía como guardarlos!

123 / 162

Page 172: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(2/2)

Bajé y compilé kplex (http://www.stripydog.com/kplex/index.html y lo configuré: recibedesde un puerto UDP, lo guarda en un fichero, lo sirve via TCP (útil para tenerlo en otrosordenadores en tiempo real en la red de la expedición)

124 / 162

Page 173: ACE (Antarctic Circumnavigation Expedition) 2016 IT

GPS Puente de comandamiento(2/2)

Bajé y compilé kplex (http://www.stripydog.com/kplex/index.html y lo configuré: recibedesde un puerto UDP, lo guarda en un fichero, lo sirve via TCP (útil para tenerlo en otrosordenadores en tiempo real en la red de la expedición)Pero kplex no tiene soporte para "un fichero diferente cada día"... hice un script quemodificaba el fichero de configuración y reiniciaba kplex cada día a media noche

(después de la expedición me dí cuenta que con logrotate no hubiera necesitado el script paracambiar el fichero de configuración ni reiniciar kplex)

124 / 162

Page 174: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Datos GPS3 tablas para diferentes datos recibidos de los GPS (posición, velocidad, fecha y hora)Cada tabla unos 16 miliones de registrosLos científicos ponían la hora de sus actividades (fácil) y el sistema ponía la posiciónSe usaba para generar la ruta en el mapaLos científicos también ponían la hora en una Web para saber la posición (para susnotas)

125 / 162

Page 175: ACE (Antarctic Circumnavigation Expedition) 2016 IT

126 / 162

Page 176: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox

127 / 162

Page 177: ACE (Antarctic Circumnavigation Expedition) 2016 IT

FerryboxUn Ferrybox lee continuamente datos de las propriadades de una fuente de agua.Normalmente temperatura, salinidad, cantidad de oxígeno y fluorescencia.

128 / 162

Page 178: ACE (Antarctic Circumnavigation Expedition) 2016 IT

FerryboxUn Ferrybox lee continuamente datos de las propriadades de una fuente de agua.Normalmente temperatura, salinidad, cantidad de oxígeno y fluorescencia.Fue muy útil para los científicos ver cuándo cambiaron las propriedades del mar paracambiar sus pruebas y entender sus datos.

128 / 162

Page 179: ACE (Antarctic Circumnavigation Expedition) 2016 IT

129 / 162

Page 180: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: problemaLa Ferrybox del barco tenía un problema: sólo guardaba los datos cuando se llegaba a unpuerto (los científicos lo querían en tiempo real).

130 / 162

Page 181: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: problemaLa Ferrybox del barco tenía un problema: sólo guardaba los datos cuando se llegaba a unpuerto (los científicos lo querían en tiempo real).La Ferrybox era una Debian Etch.

130 / 162

Page 182: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: problemaLa Ferrybox del barco tenía un problema: sólo guardaba los datos cuando se llegaba a unpuerto (los científicos lo querían en tiempo real).La Ferrybox era una Debian Etch.Para escribir en ficheros: mount -o rw,remount /

130 / 162

Page 183: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: problemaLa Ferrybox del barco tenía un problema: sólo guardaba los datos cuando se llegaba a unpuerto (los científicos lo querían en tiempo real).La Ferrybox era una Debian Etch.Para escribir en ficheros: mount -o rw,remount /Cambié la configuración de red para unirlo a la red de la expedición.

130 / 162

Page 184: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado entiempo real

El processo "ferrycon" lee de /dev/ttyS[0,1,2,3] que son los dispositivos

131 / 162

Page 185: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado entiempo real

El processo "ferrycon" lee de /dev/ttyS[0,1,2,3] que son los dispositivosHice unos scripts en Python (Python 2.5!) para leer de /dev/ttyS0 y escribir en ficheros(información sin calibrar pero lo podían recalibrar)

131 / 162

Page 186: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado entiempo real

El processo "ferrycon" lee de /dev/ttyS[0,1,2,3] que son los dispositivosHice unos scripts en Python (Python 2.5!) para leer de /dev/ttyS0 y escribir en ficheros(información sin calibrar pero lo podían recalibrar)Nos dimos cuenta que había muchos errores: a veces en los ficheros generados conPython, a veces en los ficheros generados con "ferrycon"

131 / 162

Page 187: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado entiempo real

El processo "ferrycon" lee de /dev/ttyS[0,1,2,3] que son los dispositivosHice unos scripts en Python (Python 2.5!) para leer de /dev/ttyS0 y escribir en ficheros(información sin calibrar pero lo podían recalibrar)Nos dimos cuenta que había muchos errores: a veces en los ficheros generados conPython, a veces en los ficheros generados con "ferrycon"En Linux dos procesos pueden leer del puerto serie pero entonces hay "interferencias"(se consumen los bytes, paridad, etc.)

131 / 162

Page 188: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado entiempo real

El processo "ferrycon" lee de /dev/ttyS[0,1,2,3] que son los dispositivosHice unos scripts en Python (Python 2.5!) para leer de /dev/ttyS0 y escribir en ficheros(información sin calibrar pero lo podían recalibrar)Nos dimos cuenta que había muchos errores: a veces en los ficheros generados conPython, a veces en los ficheros generados con "ferrycon"En Linux dos procesos pueden leer del puerto serie pero entonces hay "interferencias"(se consumen los bytes, paridad, etc.)Desactivé los procesos en Python que leían del puerto serie...

131 / 162

Page 189: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado al díaNos dijeron que "/ferrybox/bin/ferrycon audit -R" mostraba todos los datos

132 / 162

Page 190: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado al díaNos dijeron que "/ferrybox/bin/ferrycon audit -R" mostraba todos los datosHice un script que cada noche hacía "ferrycon audit -R" y guardaba los datos del díaanterior en un fichero (parseando la salida de "ferrycon audit -R" y guardando los datosdel día anterior)

132 / 162

Page 191: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado al díaNos dijeron que "/ferrybox/bin/ferrycon audit -R" mostraba todos los datosHice un script que cada noche hacía "ferrycon audit -R" y guardaba los datos del díaanterior en un fichero (parseando la salida de "ferrycon audit -R" y guardando los datosdel día anterior)Copié el binario de rsync de Debian Etch a ~/bin/rsync , desde otro ordenador copiabalos ficheros usando "rsync --rsync-path=/home/ferrybox/bin/[email protected]:/var/ferrybox/data ."

132 / 162

Page 192: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener un volcado al díaNos dijeron que "/ferrybox/bin/ferrycon audit -R" mostraba todos los datosHice un script que cada noche hacía "ferrycon audit -R" y guardaba los datos del díaanterior en un fichero (parseando la salida de "ferrycon audit -R" y guardando los datosdel día anterior)Copié el binario de rsync de Debian Etch a ~/bin/rsync , desde otro ordenador copiabalos ficheros usando "rsync --rsync-path=/home/ferrybox/bin/[email protected]:/var/ferrybox/data ."Y cada día teníamos el fichero del día anterior!

132 / 162

Page 193: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener información atiempo real

Nos dijeron (soporte Ferrybox) que "/ferrybox/bin/ferrycon audit -R -p -f testpointer.ack"mostraba los datos y escribía donde se había acabado de escribir (y la próxima vez sólomostraba lo nuevo)

133 / 162

Page 194: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener información atiempo real

Nos dijeron (soporte Ferrybox) que "/ferrybox/bin/ferrycon audit -R -p -f testpointer.ack"mostraba los datos y escribía donde se había acabado de escribir (y la próxima vez sólomostraba lo nuevo)

No funcionaba:

"No "FerryLogData" service found on node <1>"

133 / 162

Page 195: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener información atiempo real

Nos dijeron (soporte Ferrybox) que "/ferrybox/bin/ferrycon audit -R -p -f testpointer.ack"mostraba los datos y escribía donde se había acabado de escribir (y la próxima vez sólomostraba lo nuevo)

No funcionaba:

"No "FerryLogData" service found on node <1>"

Usé "strace" para ver qué pasaba... y ferrycon intentaba hacer el fichero en un directorioque no existia:

open("/var/ferrybox/log/testpointer.ack.ack", O_RDWR|O_CREAT|O_TRUNC,0666) = -1 EACCES (Permission denied)

133 / 162

Page 196: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: tener información atiempo real

Nos dijeron (soporte Ferrybox) que "/ferrybox/bin/ferrycon audit -R -p -f testpointer.ack"mostraba los datos y escribía donde se había acabado de escribir (y la próxima vez sólomostraba lo nuevo)

No funcionaba:

"No "FerryLogData" service found on node <1>"

Usé "strace" para ver qué pasaba... y ferrycon intentaba hacer el fichero en un directorioque no existia:

open("/var/ferrybox/log/testpointer.ack.ack", O_RDWR|O_CREAT|O_TRUNC,0666) = -1 EACCES (Permission denied)

Creé el directorio, puse los permisos y ya se pudo generar el fichero adecuado paraejecutar "ferrycon audit -R -p -f testpointer.ack"

133 / 162

Page 197: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: enseñar la informacióna tiempo real

En el servidor hice un script en Python para ejecutar:

ssh [email protected] /home/fbuser/bin/output_last_information.sh

Cada 5 minutos, desde un script en Python que captura el stdout, lo parsea y lo pone en unabase de datos (https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/ship_data/management/commands/getferryboxdata.py

134 / 162

Page 198: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Ferrybox: enseñar la informacióna tiempo real

En el servidor hice un script en Python para ejecutar:

ssh [email protected] /home/fbuser/bin/output_last_information.sh

Cada 5 minutos, desde un script en Python que captura el stdout, lo parsea y lo pone en unabase de datos (https://github.com/cpina/science-cruise-data-management/blob/master/ScienceCruiseDataManagement/ship_data/management/commands/getferryboxdata.py

Usando Django, una vista, template y Chart.js hice una visualización de Ferrybox

134 / 162

Page 199: ACE (Antarctic Circumnavigation Expedition) 2016 IT

135 / 162

Page 200: ACE (Antarctic Circumnavigation Expedition) 2016 IT

136 / 162

Page 201: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Missing files

137 / 162

Page 202: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Cambios de nombre de ficherosCada hora se hacía una copia de los ficheros de ordenadores usando rsync

138 / 162

Page 203: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Cambios de nombre de ficherosCada hora se hacía una copia de los ficheros de ordenadores usando rsyncAlgunos científicos cambiaban los nombres de los ficheros: algunos ficheros estaban condos nombres

138 / 162

Page 204: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Cambios de nombre de ficherosCada hora se hacía una copia de los ficheros de ordenadores usando rsyncAlgunos científicos cambiaban los nombres de los ficheros: algunos ficheros estaban condos nombresQueríamos ver si había ficheros en un directorio que no estaban en otro directorio (eneste caso sólo el nombre de los ficheros, no por contenido).

Así nació: http://github.com/cpina/missing-files

138 / 162

Page 205: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Cambios de nombre de ficherosCada hora se hacía una copia de los ficheros de ordenadores usando rsyncAlgunos científicos cambiaban los nombres de los ficheros: algunos ficheros estaban condos nombresQueríamos ver si había ficheros en un directorio que no estaban en otro directorio (eneste caso sólo el nombre de los ficheros, no por contenido).

Así nació: http://github.com/cpina/missing-files

Había hecho uno parecido (para mis fotos) mirando el contenido de ficheros

138 / 162

Page 206: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareas

139 / 162

Page 207: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Profundidad del océano en laIntranet

Profundidad ¿Por qué?Equipo de bentos: estudiaron los animales del fondo del marQuerían saber la profundidad para saber de dónde vinieron y entonces entendermejor las comunidadesTienen un dispositivo a la proa del barco que baja unos 700 metros y recogemuestrasA veces pusieron una GoPro para ver que pasó con la red y cómo era el fondo delmar (rocoso, de arena etc)

140 / 162

Page 208: ACE (Antarctic Circumnavigation Expedition) 2016 IT

141 / 162

Page 209: ACE (Antarctic Circumnavigation Expedition) 2016 IT

142 / 162

Page 210: ACE (Antarctic Circumnavigation Expedition) 2016 IT

143 / 162

Page 211: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Usando el resonador

144 / 162

Page 212: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

145 / 162

Page 213: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

Pregunté a un amigo y me pasó el link de un software para Windows que hace unscreenshot cada minuto y lo guarda en un directorio

145 / 162

Page 214: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

Pregunté a un amigo y me pasó el link de un software para Windows que hace unscreenshot cada minuto y lo guarda en un directorioPensé en compartir este directorio y desde el servidor coger la última imagen y ponerlaen la intranet

145 / 162

Page 215: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

Pregunté a un amigo y me pasó el link de un software para Windows que hace unscreenshot cada minuto y lo guarda en un directorioPensé en compartir este directorio y desde el servidor coger la última imagen y ponerlaen la intranetPero no podíamos instalar nada en este ordenador Windows (problemas políticos)

145 / 162

Page 216: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

Pregunté a un amigo y me pasó el link de un software para Windows que hace unscreenshot cada minuto y lo guarda en un directorioPensé en compartir este directorio y desde el servidor coger la última imagen y ponerlaen la intranetPero no podíamos instalar nada en este ordenador Windows (problemas políticos)Nota: en sistemas GNU/Linux se puede usar el comando "import" para hacer screenshotsfácilmente

145 / 162

Page 217: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Mostrar la pantalla de unWindows en la Intranet

Pregunté a un amigo y me pasó el link de un software para Windows que hace unscreenshot cada minuto y lo guarda en un directorioPensé en compartir este directorio y desde el servidor coger la última imagen y ponerlaen la intranetPero no podíamos instalar nada en este ordenador Windows (problemas políticos)Nota: en sistemas GNU/Linux se puede usar el comando "import" para hacer screenshotsfácilmenteSi el ordenador Windows tuviera VNC: podría haber usado el paquete "vncsnapshot"

145 / 162

Page 218: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEA

146 / 162

Page 219: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEAManda un string con la profundiad en metro, pies y fantoms (!)

146 / 162

Page 220: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEAManda un string con la profundiad en metro, pies y fantoms (!)Con kplex lo guardaba en un fichero (igual que el GPS "puente de comandamiento")

146 / 162

Page 221: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEAManda un string con la profundiad en metro, pies y fantoms (!)Con kplex lo guardaba en un fichero (igual que el GPS "puente de comandamiento")Con un script nuevo lo insertaba a la base de datos a tiempo real

146 / 162

Page 222: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEAManda un string con la profundiad en metro, pies y fantoms (!)Con kplex lo guardaba en un fichero (igual que el GPS "puente de comandamiento")Con un script nuevo lo insertaba a la base de datos a tiempo realEn la página principal de la Intranet mostraba el valor para el equipo bentos

146 / 162

Page 223: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Echoview y NMEA stringsEl software Echoview puede enviar la profundidad a puertos UDP en formato NMEAManda un string con la profundiad en metro, pies y fantoms (!)Con kplex lo guardaba en un fichero (igual que el GPS "puente de comandamiento")Con un script nuevo lo insertaba a la base de datos a tiempo realEn la página principal de la Intranet mostraba el valor para el equipo bentosLo tenía en la base de datos para consultar fácil por cuando lo pedían

146 / 162

Page 224: ACE (Antarctic Circumnavigation Expedition) 2016 IT

147 / 162

Page 225: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD Winch

148 / 162

Page 226: ACE (Antarctic Circumnavigation Expedition) 2016 IT

149 / 162

Page 227: ACE (Antarctic Circumnavigation Expedition) 2016 IT

150 / 162

Page 228: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: el problemaUn día me dijeron que la tripulación no podía cambiar parámetros del CTD (no aparecíael teclado en pantalla)

151 / 162

Page 229: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: el problemaUn día me dijeron que la tripulación no podía cambiar parámetros del CTD (no aparecíael teclado en pantalla)Encontramos que el CTD Winch tenía un cable de red y que la pantalla mostraba una IPcuando se iniciaba

151 / 162

Page 230: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: el problemaUn día me dijeron que la tripulación no podía cambiar parámetros del CTD (no aparecíael teclado en pantalla)Encontramos que el CTD Winch tenía un cable de red y que la pantalla mostraba una IPcuando se iniciabaConecté el portátil al cable de red, puse una IP, un nmap... y tenía un servidor de VNC(era un Windows CE)

151 / 162

Page 231: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: el problemaUn día me dijeron que la tripulación no podía cambiar parámetros del CTD (no aparecíael teclado en pantalla)Encontramos que el CTD Winch tenía un cable de red y que la pantalla mostraba una IPcuando se iniciabaConecté el portátil al cable de red, puse una IP, un nmap... y tenía un servidor de VNC(era un Windows CE)Me conecté con VNC (xtightvnc, krdc, etc.) y pude escribir en el campo donde noaparecía el teclado

151 / 162

Page 232: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: el problemaUn día me dijeron que la tripulación no podía cambiar parámetros del CTD (no aparecíael teclado en pantalla)Encontramos que el CTD Winch tenía un cable de red y que la pantalla mostraba una IPcuando se iniciabaConecté el portátil al cable de red, puse una IP, un nmap... y tenía un servidor de VNC(era un Windows CE)Me conecté con VNC (xtightvnc, krdc, etc.) y pude escribir en el campo donde noaparecía el teclado¡Pero no aceptó el valor!

151 / 162

Page 233: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: soluciónTuvimos muchos emails, llamadas, etc. con la empresa que instaló el CTD (AdrianWinch)

152 / 162

Page 234: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: soluciónTuvimos muchos emails, llamadas, etc. con la empresa que instaló el CTD (AdrianWinch)Pasamos fotos del problema, comparamos notas, etc. hasta que nos dieron el softwarepara reinstalar (lo bajé en Austrália, eran unos 500 MB)

152 / 162

Page 235: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: soluciónTuvimos muchos emails, llamadas, etc. con la empresa que instaló el CTD (AdrianWinch)Pasamos fotos del problema, comparamos notas, etc. hasta que nos dieron el softwarepara reinstalar (lo bajé en Austrália, eran unos 500 MB)Con GNU/Linux formateé un pendrive con FAT12 (!) pero cuando cargó el nuevo sistemano funcionó (pánico)

152 / 162

Page 236: ACE (Antarctic Circumnavigation Expedition) 2016 IT

CTD: soluciónTuvimos muchos emails, llamadas, etc. con la empresa que instaló el CTD (AdrianWinch)Pasamos fotos del problema, comparamos notas, etc. hasta que nos dieron el softwarepara reinstalar (lo bajé en Austrália, eran unos 500 MB)Con GNU/Linux formateé un pendrive con FAT12 (!) pero cuando cargó el nuevo sistemano funcionó (pánico)Dentro de sus ficheros encontré otra imagen que sí que funcionó... al menos unos díasporqué más problemas pasaron

152 / 162

Page 237: ACE (Antarctic Circumnavigation Expedition) 2016 IT

153 / 162

Page 238: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Instalar paquetes Debian en otrosordenadores

154 / 162

Page 239: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Instalar paquetes Debian en otrosordenadores

Gente con Ubuntu que necesitaban paquetes que no tenían

155 / 162

Page 240: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Instalar paquetes Debian en otrosordenadores

Gente con Ubuntu que necesitaban paquetes que no teníanUsé:

tar -T /tmp/files.txt -cvf /tmp/gnuplot-data.tar

Para generar un fichero .tar con todos los ficheros de un paquete. Sólo tenía quedescomprimir en el otro ordenador:

cd /tar -xvf /media/user/USB/gnuplot-data.tar

(no ejecuta los scripts de post instalación, ni lo añade en el registro de paquetesinstalados, ni añade usuarios de sistema, etc. pero funcionó para todo!)

155 / 162

Page 241: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Microsoft Office (en un Mac) nofuncionaba (problema con

licencias)

156 / 162

Page 242: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Sustituirlo por LibreOfficePero en el primer mes no tenía el fichero .dmg de LibreOffice :-(Cuando ví a otra persona con Mac y LibreOffice hice un tar del/Applications/LibreOffice.orgDescomprimí el tar en el ordenador del otro usuario

157 / 162

Page 243: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Sustituirlo por LibreOfficePero en el primer mes no tenía el fichero .dmg de LibreOffice :-(Cuando ví a otra persona con Mac y LibreOffice hice un tar del/Applications/LibreOffice.orgDescomprimí el tar en el ordenador del otro usuario Pero el primer usuario... ¡lo tenía enfrancés! (y no se podía cambiar)

157 / 162

Page 244: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)

158 / 162

Page 245: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsApp

158 / 162

Page 246: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFi

158 / 162

Page 247: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFiDispositivo requería Access Point que no llegó al barco

158 / 162

Page 248: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFiDispositivo requería Access Point que no llegó al barcoDisco duro que no se podía montar en Windows

158 / 162

Page 249: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFiDispositivo requería Access Point que no llegó al barcoDisco duro que no se podía montar en WindowsUn dispositivo Bluetooth que no se conectaba al ordenador (imán)

158 / 162

Page 250: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFiDispositivo requería Access Point que no llegó al barcoDisco duro que no se podía montar en WindowsUn dispositivo Bluetooth que no se conectaba al ordenador (imán)Configurar access points para acceso en diferentes partes del barco

158 / 162

Page 251: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Otras tareasCrear una base de datos de unas 30.000 muestras (importando desde hojas de cálculo)Alguien escribió un texto en un fichero de texto y quería pasarlo via WhatsAppUn dispositivo con una RaspberryPi no se conectaba al WiFiDispositivo requería Access Point que no llegó al barcoDisco duro que no se podía montar en WindowsUn dispositivo Bluetooth que no se conectaba al ordenador (imán)Configurar access points para acceso en diferentes partes del barcoConfigurar ordenador como router para dar acceso a equipo ROPOS desde punte decomandamiento a sus euqiposY un sin fin más!

158 / 162

Page 252: ACE (Antarctic Circumnavigation Expedition) 2016 IT

Recomendaciones para unaexpedición similar

Internet:Configurar un sistema de mail específicorsync para todo (subir/bajar ficheros, emails, etc.)Usar el navegador en modo texto "links"Bajar documentaciónTener Wikipedia offline?

Otros problemas:Pensar que todo es solucionable (aunque sea con workarounds)Proponer alternativas en el barco, o que alguien de su equipo busque y enviedocumentos, soluciones, etc.

Nota: usé casi todo lo que sé (de hackdays, de cuando era pequeño y jugaba con el puertoparalelo, universidad, trabajos anteriores, etc.)

159 / 162

Page 253: ACE (Antarctic Circumnavigation Expedition) 2016 IT

¡Muchas gracias!¿Preguntas?

160 / 162

Page 254: ACE (Antarctic Circumnavigation Expedition) 2016 IT

161 / 162

Page 255: ACE (Antarctic Circumnavigation Expedition) 2016 IT

ContactosJen Thomas ([email protected])Carles Pina i Estany ([email protected])

Licencia

Esta obra está bajo Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.

DiapositivasLas diapositivas han sido escritas usando Markdown y renderizadas usando remarkjs(https://remarkjs.com) (¡es muy cómodo!)

Para el apng de la página del título: apngasm (paquete Debian)

Diapositivas: https://github.com/cpina/ace-it-presentation

162 / 162