A veces no es tan fácil jugar

Intro 1

En este post les había comentado de este HW que yo usado para montar una nube en casa, no sólo para mi servicio de sincronización de archivos, sino también para generar CDPedias.

Bueno, hace un año o más o menos, se rompió. Empecé a notar que a veces la máquina estaba colgada, y la reiniciaba. Luego me pasó que a veces no levantaba del reset, cada tanto. Y más seguido. Y llegó un punto en que no booteó más :(.

A la hora de intentar arreglarlo me enfrenté con la triste realidad que los componentes no eran estándar para nada. Entonces, ¿cómo sabía qué se había roto? Seguro era la CPU, la mother, o la memoria... pero para ver qué era lo roto tenía que empezar a comprar componentes, quizás en falso. No podía probar componentes de otra computadora que sí sabía que andaban.

Entre una cosa y la otra, un amigo me recomendó poner una "mini PC", que no es más que una computadora PC normal pero pensada para que ocupe poco espacio, y que consuma poco, incluso sacrificando rendimiento, para no tener un ventilador en la CPU y generar menos ruido. Pero todo con componentes "normales" (especialmente la memoria, que es algo que se jode a veces y es trivial encontrar otra y probar). Me terminé comprando esto:

La Biostar A68N-5100

Intro 2

En otro orden de cosas, con Felu hace rato que estamos jugando aventuras gráficas. Él se enganchó con Thimbleweed Park y desde ahí no paramos: las tres Monkey Island, Indiana Jones, Gabriel Knight, Sam y Max, Día del Tentáculo...

...y se nos empezaron a acabar los que corrían más o menos fácil en ScummVM o Dosbox. Se me ocurrió jugar al Myst.

El problema es que el Myst es un juego "de Windows", y conseguir software viejo en Windows es siempre un quilombo. Yo había comprado el juego, unos ¿20? años atrás, pero claro, andá a saber donde están esos discos, posiblemente en el CEAMSE.

¿Entonces?

El siguiente es el relato de cómo armé un setup para jugar al Myst desde la compu que uso normalmente (la de escritorio, que corre KDE Neon sobre Ubuntu Bionic).

Vamos con la aventura de jugar al Myst

Primera imagen (súper representativa) del Myst

Localmente

Lo primero era conseguir un Windows corriendo. Así que bajé el último Virtualbox y lo instalé, luego bajé un Windows legal pensado para armar VMs, y armé una VM con eso (Virtualbox te permite "importar" las definiciones que eso mismo que bajás trae, es casi demasiado fácil).

¡Paréntesis! En todo este artículo uso mucho la sigla "VM": significa Virtual Machine, "máquina virtual" en castellano, simplemente la posibilidad de simular una computadora completa por software (miren Wikipedia para más info). Cierro paréntesis.

Levanté la VM, instalé Steam, donde compré Myst a $78 (Masterpiece edition, que es el original con algunos detalles, no confundir con uno super remasterizado 3D, que no me interesaba, porque quería el original)... sí, 78 pesos.

Lo ejecuté, y aunque funcionaba, se escuchaba muy mal. No con ruido, sino como entrecortado. Estuve revisando y buceando la internechi hasta que encontré que parece que es un problema con la versión de Virtualbox que estoy usando, que es la 5.2. Lo comprobé metiendo un mp3 en la VM y reproduciéndolo ahí: se escuchaba igual de entrecortado, con lo cual descarté que el problema fuese de Steam o Myst.

Por lo que leí parece que es un problema de buffer circular en la simulación de la placa de sonido, donde el guest escribe y el host lee, y hay un mismatch de velocidad de lectura/escritura y todo bien mientras los punteros están en lugares distintos, pero cuando se cruzan, se entrecorta.

En fin, era una porquería.

También encontré que todos decían que la última versión de Virtualbox donde había funcionado bien era la 5.0.40. Fui a bajar esa, pero sólo la sacaron hasta Ubuntu Xenial. O sea, no hay Virtualbox 5.0.40 para la versión de mi sistema operativo, que es más nuevo.

Ahí se me prendió la lamparita: yo tengo un server con Xenial. ¿Se podrá instalar Virtualbox en un servidor, correr un Windows adentro, con Steam, y usarlo desde mi escritorio?

Descubriendo un mundo de posibilidades

Remotamente

Bajé el Virtualbox 5.0.40 y su paquete de extensión y los llevé al server, e instalé:

sudo dpkg -i virtualbox-5.0_5.0.40-115130~Ubuntu~xenial_amd64.deb
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.40-115130.vbox-extpack

Luego armé la VM con Windows, y la levanté:

VBoxManage import IE11\ -\ Win7.ovf
VBoxHeadless --startvm "IE11 - Win7"

Para configurarle cosas en general tiene que estar apagada. Pueden simular "apretar el botón de apagado" o directamente "desenchufarla a lo bruto", con los siguientes comandos:

VBoxManage controlvm "IE11 - Win7" acpipowerbutton
VBoxManage controlvm "IE11 - Win7" poweroff

Para usar visualmente la VM, la idea era conectarme remotamente desde mi computadora de escritorio. Para eso hay que habilitar el "escritorio virtual remoto", y agregarle una autenticación por usuario/clave:

VBoxManage modifyvm "IE11 - Win7" --vrde on
VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"
VBoxManage modifyvm "IE11 - Win7" --vrdeauthtype external
VBoxManage internalcommands passwordhash LA-CLAVE-QUE-QUIERAN
VBoxManage setextradata "IE11 - Win7" "VBoxAuthSimple/users/EL-USUARIO-QUE-QUIERAN" EL-HASH-QUE-DIO-EL-COMANDO-ANTERIOR

Para que me ande el audio tuve que anularle la deshabilitación por default:

VBoxManage modifyvm "IE11 - Win7" --vrdeproperty Client/DisableAudio=

La comunicación del portapapeles no la pude hacer andar, pero sí el que monte un directorio compartido (instalando primero los agregados en el guest):

VBoxManage storageattach "IE11 - Win7" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /usr/share/virtualbox/VBoxGuestAdditions.iso
VBoxManage sharedfolder add "IE11 - Win7" --name shared --hostpath /home/facundo/vbox/shared --automount

No voy a contar el detalle de todos lo que probé y no me anduvo, pero les dejo un par de tips:

  • en algunos casos estos comandos de "cambiar cosas de la VM" dan errores super raros: probá apagando la VM y mandando el mismo comando con la VM apagada (tiene sentido, pero el error original no tiene nada que ver y confunde)

  • estos comandos son piolas para ver las VMs todas, las que tenés corriendo, e info puntual de alguna:

    VBoxManage listvm
    VBoxManage list runningvms
    VBoxManage showvminfo "IE11 - Win7"
    
  • toda la info sobre virtualbox remoto acá.

Fantástico. Ahora puedo levantar el krdc en mi máquina de escritorio, me conecto al Virtualbox de mi server, y tengo una ventana/pantalla con Windows andando. Llevé un mp3, lo reproduje, y escuchaba el audio perfectamente, sin problema alguno.

¡Buenísimo! Instalé Steam, perfecto. Instalé Myst (al loguearme con mi misma cuenta, ya lo tenía comprado).

Ejecuté Myst. Crasheó. Estuve probando algunas cosas (como agregarle aceleración de video 2D, seguía crasheando, o agregarle aceleración 3D, que no me dejaba porque no tenía sistema gráfico asociado).

Tristeza não tem fim.

Todo mal, loco

¿Y ahora? ¿Qué alternativas tenía?

Ahí me cayó la ficha que "mi server en la nube" está realmente a un metro de distancia, y que si le enchufaba un teclado y un mouse podría probar esto mismo pero pseudolocalmente.

Local, pero en la nube (?)

Busqué un cable HDMI (que conecté al mismo monitor que uso con la compu de escritorio, que está conectada por DVI), un mouse viejo, y le robé el teclado a la raspi que tengo para jugar. Enchufé todo, entré, pero tenía todas terminales como sólo texto, no tenía una interfaz gráfica. ¡Claro! Nunca había instalado un escritorio, ya que era una máquina servidora pura. Ergo:

sudo apt install ubuntu-desktop
sudo systemctl enable lightdm
sudo reboot

Ahora sí: inicié sesión en el Ubuntu, abrí Virtualbox, todo de forma gráfica. Entré en Steam. Corrí Myst. Crasheó. :(

Ví que podía hacer en la configuración. Probé lo más fácil: subirle la memoria a la placa de video, y agregarle aceleración 3D (ahora sí estaba en un entorno gráfico, je).

Levanté todo. Probé Myst. ¡Anduvo! Claro, sin sonido porque la máquina server no tiene parlantes enchufados.

Pero volví a la computadora de escritorio (que es decirle al monitor que use la otra entrada), levanté el krdc de nuevo, me conecté al server, donde obviamente ya tenía levantado todo, y finalmente pudimos jugar al Myst.

Funciona un poco lento, porque la computadorita server no es gran cosa (está más pensada para que consuma poco que para que uno corra juegos), y encima tiene al Virtualbox simulando una máquina para que corra Windows, para poder ejecutar Steam donde adentro corre el juego en sí.

Adentro de adentro de adentro de adentro de adentro de

Pero podemos jugar al Myst :D

Feliz año.

Comentarios Imprimir

Pasó la PyCon Argentina 2018

¡La décima! Todo un hito. Tuvimos 1080 asistentes, lo cual es más de lo que esperábamos, :)

El evento en si salió muy bien, todes les organizadores estamos muy contentes (y muy cansades). Pero valió la pena.

Arranqué más o menos prolijo......terminé bastante roto :p

Le pusimos mucho amor y creo que se notó. Increíble el equipo que se formó de trabajo, el laburazo que se pegaron es indescriptible. Estoy seguro que ese tipo de compromiso no se logra pagándoles. Creo que fue todo mucho mejor que si se los hubiese contratado para que trabajen (onda "organizadores profesionales de conferencias").

Sí, lleva mucho laburo, pero nos gusta más así: una conferencia hecha por todes nosotres, con nuestra impronta, no por un organizador de eventos con saco y corbata.

De la comunidad, para la comunidad.

Organizadores, ayudantes de sala, ayudantes de registración, etc...

La conferencia se sucedió durante tres días. El jueves fueron los talleres: tres tracks en paralelo de talleres de tres horas, más un cuarto track con el Django Girls, el único taller que tenía registración previa (y cupo, tuvimos que cortar en los 100 asistentes).

Todo el equipo del taller de Django Girls con asistentes y todo

Viernes y sábado fue el formato de conferencias clásicas: tres tracks de charlas en paralelo, la mayoría de 25 minutos, algunas de 50. También tuvimos espacios abiertos, speed interviews, lightning talks, e incluso un Panel de Diversidad y Género.

Y dos invitados internacionales: Carol Willing, core developer de Jupyter y ex directora de la PSF, y Brandon Rhodes, programador Python en Dropbox y organizador de la PyCon USA en Portland 2016 y 2017.

El que suscribe, con Brandon y Carol luego de darles regalitos

Incluso tuvimos un evento puramente social al aire libre, el domingo: un Pycnic totalmente abierto al que quisiera venir.

Pero más allá del desglose de actividades, quiero resaltar que logramos armar una conferencia de nivel internacional, sin nada que envidiarles a las que se hacen en otros países, pero completamente libre y gratuita. Zaffaroni dijo una vez que "El cambio social profundo, inclusivo, la revolución del siglo XXI, se hace apoderándose del conocimiento... conocimiento que la elite se empeña en monopolizar". Y en verdad, en este momento macrista donde nuestro país ya no tiene ni Ministerio de Ciencia y Tecnología, distribuir información gratis es más valioso que nunca.

Vino mucha gente: un venue más chico no nos hubiese alcanzado

De la misma manera, en este momento con tanta xenofobia, homofobia y "diversofobia", tenemos que ser más inclusivos que nunca. Y ser explícitos en darle la bienvenida a todo el mundo.

Por eso armamos este maravilloso texto sobre Diversidad, del cual incluimos un resumen en el librito de la conferencia.

Un panel de lujo, una charla super interesante

Durante el cierre tiré un par de anuncios para el año que viene. El primero es que tenemos el PyCamp 2019 confirmado, se va a hacer en San Rafael, Mendoza, del 2 al 5 de Marzo (estamos esperando que nos pasen un par de datos para confirmar el precio y salir a juntar el dinero).

El otro anuncio es que la PyCon 2019 se va a hacer también en Buenos Aires... la idea es empezar a hacer dos conferencias por cada sede (2018 y 2019 en Buenos Aires, 2020 y 2021 en otro lugar, etc), porque de esta manera se baja muchísimo el costo para los organizadores de hacer el evento. Sí, el primer año es un quilombo, pero el segundo año se repiten tantas cosas que es mucho más fácil.

La grupal (socavada notablemente por el partido "importante" :/ )
Comentarios Imprimir

Décima Edición de la Conferencia Nacional de Python Argentina

Suena fuerte, ¡diez ediciones! Cuánta agua abajo del puente pasó desde que organicé la PyCon 2009, también en la Ciudad de Buenos Aires. Desde ese arranque gracias a otres organizadores pudimos disfrutar el evento en Córdoba, Junín, Quilmes, Rosario, Rafaela, Mendoza, Bahía Blanca, nuevamente Córdoba.

Y ahora volvemos al origen. Cerramos un círculo, pero no para terminar, sino para subir la apuesta y salir con más ímpetu a una nueva ronda. No sólo tener una conferencia con invitades internacionales, talleres y charlas relámpagos, sino también otras actividades como espacios abiertos, coaching para la preparación de charlas, entrevistas rápidas, y profundizar acciones sobre un tema que tratamos desde hace años en la comunidad: nuestra diversidad.

Claro, los tiempos no son los mismos. Incluso Python, como lenguaje, cambió notablemente. En esa época Python 3 era un futuro difuso, ahora Python 2 está en sus últimos estertores. Y no hay especialidad profesional relacionado con la programación que no use Python.

La situación del lenguaje en el país también cambió muchísimo. En esa época la problemática era encontrar trabajos relacionados con Python, hoy en día el desafío es encontrar suficientes trabajadores en nuestro querido lenguaje para poder satisfacer las necesidades de empresas, cooperativas y el Estado mismo.

Considerando que difundir el lenguaje era un objetivo del grupo de Python Argentina, entendemos que también esta comunidad haya cambiado, siendo un hito notable la creación de la Asociación Civil hace ya un par de años.

Y es con la ayuda de la Asociación Civil que pudimos hacer las últimas conferencias, incluyendo esta por supuesto. Y también con la colaboración y soporte del Centro Cultural General San Martín, de los sponsors que pueden visitar durante la conferencia y conocer en este mismo libro, y especialmente de todes aquelles que colaboraron en la organización, es que logramos hacer una nueva conferencia de calidad internacional, totalmente gratuita e inclusiva.

Una nueva PyCon Argentina. De la comunidad, para la comunidad. Que la disfruten.

Comentarios Imprimir