La caída

Cada vez que Aztlán no responde comienzan a llegarme mensajes de usuarios que creen que esto ocurrió sin que yo lo notara. Cuando la caída del sistema es tan prolongada como la que acaba de ocurrir, no me extrañaría que algún lector creyera que me secuestraron o algo por el estilo.

Lamentablemente, no fue nada tan dramático; y, técnicamente, no fue nada que tuviera que ver con Aztlán: la máquina funcionó estos días sin ningún contratiempo.

No, el problema es que cortaron la red en la Facultad de Ciencias para hacer un mantenimiento que creo se venía debiendo desde hace como veinte años. Varios esperábamos que el corte se levantara durante las vacaciones, pero evidentemente ese no fue el caso.

Así que, en resumen: Aztlán está bien, de hecho nunca estuvo caída. Nada más cortaron la red en la Facultad efectivamente durante todas las vacaciones de Semana Santa.

Ahora regresaremos a nuestra programación estándar habitual.

Imprimir entrada Imprimir entrada

El subwoofer remotamente encendible

Hace unos días platicaba de cómo reviví mi viejo subwoofer Harman⧸Kardon SUB TS15, al comprarle una barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos.

Me ha sorprendido mucho el desempeño de la barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos; a pesar de que mi subwoofer murió cuando la resistencia R146 reventó en la placa original, me imagino que el o los componentes que se habían ido degradando en la misma, y que fueron los responsables de que reverantara la resistencia R146, habían estado disminuyendo poco a poco el desempeño de mi subwoofer durante los últimos años. No debió ayudar que, como ya he mencionado muchas veces, no me considero un snob del sonido (al parecer, audiophile no tiene traducción al español aceptada por la RAE).

Como sea, suena genial el subwoofer; dudo mucho que suene mejor que cuando era nuevo, (sinceramente no recuerdo: fue hace más de una década que lo estrené), pero sin duda suena mejor de lo que sonaba antes de que se muriera: todo tiene unos bajos profundos y en general suaves que no se distorsionan, pero que hacen que las ventanas vibren como si mi nuevo departamento fuera a derrumbarse.

Agarré un rectángulo de triplay de 3 milímetros (envuelto en vinilo negro autoadherible, para que no se viera tan fuera de lugar), y ahí monté todos los componentes que estaba usando: la barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos; un conector de barril para el eliminador de doce voltios que utilizo para alimentar dicha placa; un conector jack de 3.5 milímetros para recibir la salida del AVR; el potenciómetro de la placa chafa que sirve para encender y controlar el volumen del subwoofer; y un convertidor de corriente para poder bajar los doce voltios del eliminador a 3 voltios, que es lo que necesita el LED original de mi subwoofer para anunciar al mundo que está prendido.

El rectángulo de triplay lo corté y redondeé sus esquinas para que fuera de las mismas dimensiones que la placa original del subwoofer; además le hice hoyos en los lugares correspondientes a los tornillos que se utilizan para montarlo al subwoofer. Esto está padre; la placa original venía con una caja que la aislaba al 100% del interior del subwoofer, usando nada más un par de cables para comunicarse con el altavoz y el LED. Pude reutilizar dicha caja con mi rectángulo de triplay envuelto en vinilo, entonces todo queda acomodado de forma bastante limpia dentro del subwoofer. No se ve hermoso; pero se ve decente y además está detrás del subwoofer, entonces nadie lo ve normalmente.

Bueno, todo está bien excepto por un pequeño detalle… tenía que levantarme de mi sofá para prender y apagar el subwoofer, además de que hacerlo por definición modificaba el volumen que ya le había elegido. Supongo que podrán imaginar, queridos lectores, a dónde va esta historia.

Hace un par de años relaté cómo hice un control remoto para el subwoofer usando un Raspberry Pi y la capacidad de la placa original de entrar y salir de stand-by dependiendo de si recibía o no una señal de 12 voltios. La misma solución funciona ahora; la barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos necesita 12 voltios, entonces nada más puenteé el eliminador de doce voltios al Raspberry Pi y conecté la salida a la entrada de la barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos; nada más necesité un nuevo cable para ello.

Con esto ya no necesitaba levantarme de mi sofá para prender y apagar el subwoofer, como un plebeyo, entonces podría haberlo dejado así. Sin embargo, decidí mejorar el diseño; la verdad es que es matar moscas a cañonazos utilizar un Raspberry Pi para esto (aunque ciertamente fue muy fácil de armar), así que esta vez utilicé un Raspberry Pi Pico.

El Pico no es una computadorcita chiquita; es un microcontrolador, está pensado para alambrarle una aplicación sencilla, no como una computadora de uso general que necesita un sistema operativo completo. Así que usé el Pico, básicamente reemplazando lo que hace el Raspberry Pi; resultó ser muy sencillo, porque hay una aplicación de ejemplo para el microcontrolador que se encarga de recibir la señal de un control remoto; y para poder controlar un relé nada más es necesario usar uno de los pines GPIO del Pico.

Además, el Pico es muy chiquito, entonces fácilmente lo pude montar dentro del subwoofer y ya no tengo necesidad de usar una caja completa como era el caso para el Raspberry Pi. También utilicé dos convertidores de corriente: uno para bajar los 12 voltios de entrada a los 5 voltios que necesita el Pico; y otro para bajarlos a 3 voltios para el LED del subswoofer.

El sensor infrarojo VS1838b lo conecté al final de un cable USB; en el otro extremo puse un conector USB-C macho; y en mi rectángulo de triplay envuelto en vinilo hice un gújero para poner un conector USB-C hembra. El sensor además lo monté en la pared.

Cualquier persona que más o menos sepa de electrónica que viera cómo me quedó todo probablemente se reiría de mí, entendiblemente; pero yo me doy de santos de que funciona, que no se ve tan mal, y que no destruí nada, o al menos nada que me haya dado cuenta hasta ahora.

También me alegra liberar mi Raspberry Pi y el hecho de que ya no lo voy a tener prendido 24/7; el Pico gasta mucha menos energía y me gustó programarlo: la aplicacioncita que detecta el botón del control remoto y que corta o conecta el poder a la barata (y admisiblemente chafa) placa de amplificación digital de menos de 250 pesos salió en 50 líneas de C (que así se programan este tipo de microcontroladores), entonces es por definición terriblemente simple.

Lo que sí es que espero no tener que volver a tocar esto al menos durante un par de años.

Imprimir entrada Imprimir entrada

Hecho en México

Hace casi veinte años me compré una televisión Samsung de 46 pulgadas que usé alegremente durante cerca de una década. Y a partir de 2015, más o menos, resultó que comencé a comprar televisiones más seguido de lo que una persona normal lo hace, supongo.

No es que las coleccionara; mi mamá o mi papá o alguna tía me decían que querían una tele nueva, y yo procedía de inmediato a comprarla en Amazon. Me parece que todas las televisiones que compré así fueron Samsung; una vez acompañé a mi mamá en Morelos a comprar una televisión de emergencia (larga historia), y en esa ocasión fue LG; pero normalmente yo compraba televisores Samsung, y generalmente de 55 pulgadas (sólo esa primera televisión fue de 46 pulgadas).

Hasta que un día se me descompuso una tele Samsung más o menos vieja, y al llevarla a reparar y comentarle al reparador que normalmente yo compraba televisores Samsung de 55 pulgadas, el mismo me recomendó que ya no lo hiciera, porque algo había pasado con sus nuevos modelos que al parecer ya no convenía.

Así que hace año y medio que decidí comprar una nueva televisión en Amazon para mi recámara, me puse a ver alternativas. Rápidamente me quedó claro que en términos de precio y especificaciones, las televisiones HiSense sonaban como que una buena idea, así que pedí una HiSense de 43 pulgadas. La televisión llegó al otro día o algo por el estilo, la colgué de la pared en mi recámara (siempre cuelgo mis televisores, a menos que una ventana o algo así me lo impida), y la he venido usando desde entonces.

Siendo como soy, dejé la caja en la sala de mi viejo departamento acumulando polvo unas semanas, hasta que por fin procedí a tirarla. Y cuál sería mi sorpresa al tomar la caja y ver un pequeño sello en un lugar que poco llamaba la atención:

“Hecho en México.”

Resulta que la planta más grande (fuera de China) que tiene HiSense está en Nuevo León, y probablemente eso explique por qué son tan baratas aquí en México. No recuerdo cuándo había sido la última vez que vi una tele moderna (LED o similar) hecha en México.

Ahora que me mudé a mi nuevo departamento, colgué la última televisión Samsung que compré, de 55 pulgadas como era mi costumbre, en la pared que elegí para poner la tele. Y para mi sorpresa se veía diminuta; en mi viejo departamento la televisión estaba básicamente en el único lugar donde podía estar, y se veía confinada por el relativamente bajo techo y la cercanía de la puerta de entrada. En mi nuevo departamento tengo una padersota para colgar mi televisión, lo que hace que mi tele de 55 pulgadas se vea, comparativamente, pequeña.

Entonces hice lo único que alguien como yo podía hacer: procedí a comprar una televisión de 65 pulgadas, la primera vez que hago eso en mi vida. Y por supuesto la compré de marca HiSense; no sólo salió relativamente barata (de hecho doscientos pesos más barata que lo que me costó la Samsung de 55 pulgadas hace dos años), sino que sí me ha gustado la calidad y pues está padre comprar algo que armaron trabajadores mexicanos.

(Podría elaborar por qué esto es posible gracias a la Transformación; pero para este punto del partido o entienden o no entienden por qué apoyamos a este gobierno y por qué obviamente hay múltiples cosas que evidentemente está haciendo bien, así que mejor se los dejo de tarea).

Está muy padre la tele, y me alegra no tener que usar otra cuenta para el ecosistema de Samsung; las teles de HiSense sencillamente utilizan mi cuenta de Google. Lamentablemente, como en general ha sido con todas mis televisiones, no utilizo casi ninguna de sus características “inteligentes”, porque para eso suelo utilizar mis PlayStations.

Pero la tele se ve hermosa; es QLED, es por supuesto 4K y soporta HDR… que la verdad yo no veo gran diferencia, pero pues eso tiene.

Y no se ve diminuta.

Cada vez que cuelgo una tele a alguna pared, que para este punto he hecho un montón de veces, no puedo dejar de pesar en las inmortales palabras de Mark Renton:

Choose Life.
Choose a job.
Choose a career.
Choose a family.
Choose a fucking big television

Y pues eso hice. Hecha en México.

Imprimir entrada Imprimir entrada

El SUB TS15

Hace once años, queridos lectores, relataba cómo me compré un AVR, de la marca Harman⧸Kardon. Hace tres años, queridos lectores, relataba cómo me compré un nuevo AVR, de la marca Denon, para subsanar las desventajas de mi viejo y fiel AVR Harman⧸Kardon: básicamente falta de soporte para 4K y que no tenía Bluetooth.

Ahora que me mudé a mi nuevo departamento, tuve que hacer la serie de malabares que yo denomino “configurar la infraestructura”, y que básicamente consiste en acomodar, conectar y configurar la bola de pendejadas electrónicas que tengo, porque si algo he acumulado en mi vida son justamente pendejadas electrónicas.

No me he terminado de acomodar, pero la espina dorsal de mi infraestructura está arriba: tengo múltiples PlayStations en mi sala conectados a mi televisión y a mi AVR; tengo un par de PlayStations en mi recámara conectados a mi otra televisión; y tengo mi computadora de escritorio funcionando.

Además, que no es poco, la red funciona en todas partes y todo está conectado a interné.

Estaba viendo Elevation, porque la rentaron en mi cuenta de Prime y pues ya qué, cuando me di cuenta de que si mi PlayStation 5 (donde generalmente veo streaming) estaba configurado como 5.1, entonces no se oían las voces de los actores. Debo notar que había estado jugando videojuegos y viendo YouTube sin ningún problema.

Me llevó como una hora darme cuenta de que había conectado mal el canal central y los altavoces traseros, pero como había estado jugando juegos muy simples y viendo YouTube, había estado utilizando únicamente la señal estéreo (los canales delanteros) y pues no me había dado cuenta. Resulta que YouTube no utiliza 5.1 en el PlayStation 5 (y el 4, el 3, Linux con Google Chrome; y en general en casi cualquier ambiente que no controle Google al 100%, como un Chromecast), no importa cómo haya uno configurado el sistema; y esto ya lo sabía, pero es conocimiento que adquiero y vuelvo a olvidar cada cierto número de años.

Corregido eso, procedí a reproducir en mi media center (que sí reproduce en 5.1) un video de prueba de 5.1 que ando cargando desde hace como una década, y entonces me percaté de algo preocupante y ominoso: mi subwoofer no estaba funcionando.

Les recuerdo, queridos lectores, que cuando cambié del AVR Harman⧸Kardon a la mejora de Denon, no cambié las bocinas ni el subwoofer. Las bocinas nunca me han dado ningún problema; y el subwoofer nada más había que echarle limpiador de contactos al potenciómetro del volumen cada cierto número de años.

Pero ahora estaba completamente morido, entonces lo abrí y le eché un ojo a la circuitería. Les recuerdo que tengo un doctorado en Ciencias de la Computación, y por lo tanto no tengo ni puta idea de electrónica excepto las cosas más básicas: me doy palmaditas en la espalda cuando mido correctamente un voltaje al utilizar mi multímetro.

Sin embargo el problema era obvio (o al menos así me pareció): una resistencia estaba reventada. La R146 (330Ω, 2W), si acaso tenían duda, que consultando el manual de mantenimiento del subwoofer (modelo SUB TS15; por suerte dicho manual está en línea) pude ver que entre la bola de pendejadas electrónicas que tengo, tenía repuestos.

Procedí a desoldar la resistencia reventada y a soldar el repuesto, cerré el subwoofer y con algo de sorpresa y muchas palmaditas en mi espalda, verifiqué que funcionaba una vez más. Terminé de ver Elevation y me fui a dormir.

En la madrugada me despertó un retumbo electrónico, y yendo a mi sala vi que era el SUB TS15, quejándose amargamente de su existencia. Lo desconecté de la corriente eléctrica, lo que lo calló, y me fui a dormir.

Al otro día lo volví a abrir, y no van a creerlo: la nueva resistencia estaba reventada. La volví a cambiar, revisé el circuito, y me pareció ver que una resistencia hermana (la R149, si tenían curiosidad) no se veía 100% intacta, así que también la cambié. Todo volvió a funcionar y continué usando el subwoofer, nada más desconectándolo de la corriente eléctrica cuando no lo usaba, por si las dudas.

Supongo que sabrán para dónde va la historia: a los pocos días, nada más conectar el subwoofer se volvió a morir, y al abrirlo una vez más la estúpida resistencia R146 estaba reventada, por tercera vez.

Evidentemente un componente en ese circuito está jodido y causa que la resistencia reviente; pero mis conocimientos de electrónica no me alcanzan para poder determinar cuál, mucho menos cómo arreglarlo. El manual de mantenimiento tiene toda la información necesaria para literalmente reconstruir todo el circuito del SUB TS15 (si todos los componentes se pueden encontrar), pero de nuevo: mis conocimientos de electrónica (y mis herramientas) no creo que me alcancen, incluso si mandara a imprimir las placas en PCBway, por ejemplo.

Un poco harto, vi si había un repuesto de toda la placa del SUB TS15; y no muy sorprendentemente sí hay. Y ni siquiera está tan cara; un subwoofer equivalente a mi SUB TS15 está en más de 6,000 pesos, y la placa de repuesto está en más o menos 1,800 pesos… pidiéndola a China, con un envío de casi 2,000 pesos.

No descarto que en algún momento la pida, pero ahorita sí me lo pienso. Mudarse sale caro, como todo mundo probablemente sepa.

Entonces me puse a ver alternativas, y rápidamente descubrí que podía sustituir toda la placa de mi SUB TS15, por una alternativa moderna llamada placa de amplificación digital que cuesta, literalmente, menos de 250 pesos (precio a inicios de febrero de 2025). Lo único es que mi SUB TS15, que es activo, se volvería pasivo.

En la liga que puse al mero inicio, queridos lectores, comentaba que me decidí comprar todo mi sistema Harman⧸Kardon, porque el vendedor me convenció al mencionar que el subwoofer incluido era activo, no pasivo. Lo que nunca mencioné, es que jamás utilicé mi subwoofer de manera activa.

El manual del AVR decía que sí se podía usar el SUB TS15 de forma activa, pero requería más cables, para que se hubieran visto bien habría necesitado conectores de banana (que yo hace más de una década ni siquiera sabía qué eran), y cuando lo conecté pasivamente pues el 5.1 se oía, utilizando el térmico técnico, chingón y el subwoofer vibraba que hagan de cuenta mi departamento se iba a derrumbar.

No sentí que me estuviera perdiendo de nada, por lo que todos estos años lo usé pasivamente.

Por lo tanto procedí a comprar esa placa de amplificación digital por menos de 250 pesos; la conecté a la corriente con un eliminador de 12 voltios (uno de 24 hace que chille el subwoofer como si lo estuvieran torturando en el infierno), hice un cable Frankenstein RCA a jack de 3.5mm (porque la salida para el subwoofer de mi AVR es RCA; y la entrada de la placa es jack de 3.5mm), y conecté los dos cables de salida al altavoz de mi subwoofer; que dicho sea de paso, se ve como si estuviera nuevo: como apunta al piso, ni siquiera tiene polvo.

Y una vez más suena que hagan de cuenta que mi nuevo departamento se va a derrumbar.

Estoy 114% seguro de que los componentes electrónicos originales de Harman⧸Kardon son de mucha mejor calidad que esta placa chafa de menos de 250 pesos; pero les juro que yo no noto la diferencia. Probablemente esto esté acentuado porque nunca usé el subwoofer de manera activa; pero como ya he mencionado muchas veces, nunca he sido snob del sonido: yo sólo quiero que se escuche harto bien ferte.

En este momento la placa de amplificación digital está literalmente encima del SUB TS15 con cables colgando por todos lados; voy a reemplazar el panel donde se montaba la circuitería original con uno hecho por mí acomodando todo de forma que se vea bien, y además reutilizando cosas como el LED del subwoofer para que se prenda cuando se encienda la placa de amplificación. Pero eso será después.

Por ahora, voy a seguir usando mi subwoofer SUB TS15 como lo he usado desde que lo compré hace más de una década: haciendo que se sienta como si mi departamento estuviera a punto de derrumbarse.

Imprimir entrada Imprimir entrada

La minería de datos

Como he comentado en muchas ocasiones, juego videojuegos en mis múltiples PlayStations en gran medida por el placer que siento al obtener los trofeos que se otorgan al cumplir ciertos requisitos; y especialmente cuando obtengo el 100% de los mismos, generalmente alcanzando ese 100% cuando consigo el trofeo de platino de algún juego en particular.

Desde hace años (poco menos de una década) tengo una aplicación de escritorio escrita en Gtk que me permite no nada más ver los trofeos que he obtenido; también me permite visualizar múltiples estadísticas y gráficas, así como ayudarme a decidir qué voy a jugar en lo inmediato, señalándome qué juegos tengo disponibles con trofeos fáciles o de los juegos que he jugado qué trofeos son los más sencillos en obtener.

PlayStation Network Trophies

PlayStation Network Trophies

Después de que excomulgaron mi cuenta original, mi aplicación es todavía más importante para mí, porque es la que me permite mezclar mis dos cuentas en una cuenta virtual y así llevar el seguimiento de mis trofeos en mi cuenta original excomulgada y mi cuenta actual en activo.

PlayStation Network Trophies

PlayStation Network Trophies

Ahora, la aplicación está escrita en Vala con Gtk, pero un componente importante está escrito en PHP porque no quería estar descargando de la fuente original toda la información en las múltiples computadoras que uso, especialmente las imágenes de los juegos y los iconos de los trofeos (que ocupan poco más de 4 gigabytes para los juegos que he registrado hasta el momento), así que hice una API REST y realmente todo eso está en mi servidor (así como la base de datos maestra) y mi aplicación Gtk sólo se sincroniza con él.

Sin embargo, nada de esto explica de dónde sale toda esa información: no únicamente los nombres e imágenes de videojuegos y trofeos, así como sus descripciones y las fechas en que los obtuve, sino cosas más complicadas como qué determina que un trofeo sea o no fácil o difícil de obtener.

Y la respuesta es muy sencilla: originalmente todo venía de PSNProfiles.

El sitio tiene décadas (bueno, quince años) llevando la información de millones de ususarios de la PlayStation Network (aunque no todos). Uno puede usar el sitio gratuitamente con anuncios, pero pagando una módica cantidad (una única vez), los anuncios desaparecen.

Yo pagué; dos veces, una por cada cuenta.

Como sea, lo que comencé a hacer fue sencillamente minar las páginas de PSNProfiles con un programita que yo escribí; inicialmente analizando el HTML a mano buscando cadenas crudas como un troglodita y eventualmente evolucionando al pasar mi programita minero (que está escrito en Python) a que usara BeautifulSoup.

No fui el primero (ni el último) en hacer algo de este estilo; existen varias bibliotecas que hacen exactamente lo mismo.

En su cénit, mi sistema era bastante avanzado: usando mi cliente Gtk yo solicitaba que se minara un nuevo juego (u ocurría automáticamente si ganaba algún trofeo de un juego que no huviera minado anteriormente), lo cual disparaba un método REST que mi servidor recibía y que causaba que se ejecutara mi minero (también en el servidor, pero de forma independiente), incluyendo descargar todas las imágenes correspondientes, y mi cliente Gtk podía sondear (poll) cómo iba este proceso; al terminar el cliente solicitaba la actualización de la base de datos junto con las imágenes correspondientes (que se guardaban en una copia local, por supuesto). La idea era tener que molestar a PSNProfiles lo menos posible; por eso mi servidor en medio.

Funcionaba bastante bien. Demasiado bien; no sé si fuimos todos los que minábamos al pobre sitio de PSNProfiles, o yo en particular (yo minaba juegos que no hubiera jugado, pero que tenía el disco o digitalmente, para justo poder determinar qué juegos iba a jugar más adelante), pero eventualmente se hartaron de nosotros/mí, e implementaron prevención de falsificación de solicitudes entre sitios, también conocida como CSRF por sus siglas en inglés (Cross-Site Request Forgery prevention).

Esto me llevó como cinco minutos darle la vuelta, porque no es terriblemente complicado; básicamente hay que registrar algunos encabezados de HTTP y retransmitirlos. Entonces seguí usando mi sistema.

Acto seguido PSNProfiles contrató Cloudflare, que es un servicio de red de distribución de contenidos o CDN (Content Distribution Network), que además de tratar de detectar cuándo alguien está minando un sitio, ofrece protección contra ataques DDoS y cosas por el estilo. Que, quiero enérgicamente enfatizar, yo no estaba haciendo nada particularmente dañino; además de que nunca miné de múltiples computadoras el sitio (para eso justamente usaba mi servidor), no es como si hubiera tratado de descargar todo el sitio, yo sólo quería la información de mis trofeos y de los potenciales juegos que en el futuro pudiera jugar.

El uso del sitio por mi programa era comparable al que hubiera resultado de que yo usara el sitio normalmente; y de hecho generaba menos tráfico porque una vez minadas las imágenes, yo ya no volvía a hacer solicitudes a PSNProfiles. Y no es como que perdieran dinero por la publicidad que yo no veía; como mencioné, yo pagué por quitar anuncios, así que de por sí no los veo.

Como sea, sí miné un chingo de juegos; desde que tengo PlayStation Plus Premium, tengo disponibles cerca de 1,500 videojuegos, pero los mismos siguen siendo una fracción de los más de 30,000 juegos que tienen trofeos para la PlayStation Network. Por no mencionar que nunca miné la información de algún otro de los millones de usuarios del sitio: ¿para qué haría eso?

Como sea, Cloudfare es básicamente imposible de brincar, porque encima de todo cada cierto tiempo (desesperantemente cada par de horas, al parecer), pide que uno resuelva un captcha, que aunque hay prototipos de cómo superarlos automáticamente, los mismos suelen ser rotos cada quince minutos, porque es un juego del gato y el ratón entre Cloudfare y múltiples monos que quieren poder minar información en la red; Cloudfare es usado por miles de sitios en internet.

Eventualmente terminé escribiendo algunos scripts de Tampermonkey, que usando JavaScript inyectan básicamente lo que uno quiera de un sitio en la red en el navegador. Entonces manualmente tenía que minar mi cuenta o un juego desde mi navegador, mi script me hacía un lindo Zip ya con todo el HTML que necesitara de PSNProfiles, y yo le pasaba esa información a mi servidor para que hacer todo lo demás funcionara automáticamente. Más engorroso que si todo fuera 100% en automático, pero manejable.

Hasta este momento, varios de ustedes, queridos lectores, se han de estar preguntando por qué no sencillamente minaba la información de Sony directamente. La respuesta es muy sencilla: uno, era muy engorroso; y dos, la información recibida estaba incompleta. O al menos así era cuando lo investigué la década pasada.

Para poder minar la información de Sony varios monos en la red se pusieron a olfatear la comunicación entre los PlayStations o las aplicaciones móviles de PlayStation con la nave nodriza, y usando diúrex y salivita armaron una API que era medio engorrosa, pero usable. La API necesitaba varios datos que requerían que uno se conectara vía un navegador con una cuenta válida de PlayStation, ejecutara en la consola JavaScript varios comandos y sacara del resultado esos datos para el sistema que quisiera usar la API: esta era la parte engorrosa.

La parte de que la información fuera incompleta radicaba en el hecho de que, desde sus inicios, los trofeos de PlayStation tienen la capacidad de ser secretos; para que un jugador que esté checando la lista de trofeos no se le vaya a arruinar una sorpresa (spoilers!) al leerlos. En su infinita sabiduría, los de Sony decidieron que la información de trofeos secretos no se transmitiría a las aplicaciones que los solicitaran, excepto obviamente el hecho de que existían y eran secretos. Además, uno nada más podía consultar información de los trofeos en juegos que su usuario autenticado hubiera jugado.

Este era el estado de las cosas la década pasada; y yo no había tenido la necesidad de verificar si las cosas seguían igual o no, porque mi sistema que minaba PSNProfiles sencillamente funcionaba. Incluso cuando implementaron CSFR y después al pasarse a Cloudfare, yo conseguí que mi sistema siguiera funcionando, aunque fuera evadiendo obstáculos.

Hasta hace unas semanas.

Hace menos de un mes, descubrí que PSNProfiles ya no permite ni siquiera bajar páginas usando un script de Tampermonkey; casualmente lo descubrí mientras estaba minando todavía más juegos: como resulta que puedo ver mi biblioteca de juegos disponibles en la PlayStation Network a través del navegador, y existe un userscript que permite exportar esto a JSON, pues me puse a ligar en su totalidad todos los juegos que tenía minados en mi sistema con los juegos en mi biblioteca… y para eso debía minarlos primero.

Mis scripts de Tampermonkey lo que hacían era guardar la página minada (generalmente mi perfil) junto con las páginas ligadas dentro de la página minada (generalmente los juegos individuales de mi cuenta). Bueno, PSNProfiles ya no permite descargar una página que sea ligada de otra página en el sitio: cuando uno carga una página, las misma es mínima, teniendo únicamente algo de JavaScript que genera un URL con un párametro GET con una dispersión (hash) que sirve como desafío para que PSNProfiles verifique que es un ser humano el que siguió la liga. El JavaScript después cambia la ubicación del navegador al URL.

Ahora, esto es superable; tendría que hacerle trutrú al HTML recibido para interpretar el código JavaScript que genera la dispersión (se genera en el cliente; no tendría sentido si nada más lo enviara planamente el servidor), o en el peor de los casos literalmente levantar una máquina virtual de JavaScript para que lo hiciera por mí… pero se estaba poniendo ridículo el asunto. Y encima ahora PSNProfiles ya ni siquiera me permite crear un script para guardar el HTML que ya está en mi navegador y de hecho nada que esté con el tipo de contenido HTML (Content-Type, es un encabezado del protocolo HTTP(S)), aunque sigue funcionando salvar una página manualmente, porque me parece que es básicamente imposible que eviten que eso se pueda hacer.

En general todo este tejemaneje es medio absurdo, porque todo funciona para mí incluso si tengo que salvar las páginas de los juegos manualmente; en general sólo es necesario hacerlo una vez, porque lo peor que ocurre es que ciertas estadísticas (por ejemplo, el porcentaje de jugadores que obtienen un trofeo) se vuelven ligeramente desfasadas, lo cual no es muy grave dado que casi nunca juego juegos que acaben de salir: las estadísticas por definición se van estabilizando a lo largo de la vida de un juego y eventualmente casi no cambian, excepto por algunas centécimas de puntos porcentuales.

Sin embargo, en la página que uno guarda con la información de un juego sólo vienen ligas a las imágenes de los trofeos en resoluciones “pequeña” y “mediana”, que es la terminología que PSNProfiles se inventó: la liga a la imagen del trofeo en resolución “grande” está en la página del trofeo mismo. Y sí estoy dispuesto a guardar las páginas de mis juegos; incluso si son 1,500, lo puedo hacer de manera paulatina porque, como ya expliqué, sólo necesito hacerlo una vez. Lo que no estoy dispuesto a hacer es guardar las páginas de las decenas de miles de trofeos que me interesa tener.

Medio harto, decidí ver alternativas: hay múltiples sitios que hacen más o menos los mismo que PSNProfiles; lamentablemente me parece que ninguno lo hace tan bien, además de que mi sistema está bastante amarrado a PSNProfiles. Por ejemplo, el identificador único para cada juego es el mismo en mi sistema que en el sitio, y aunque podría cambiarlo, la tarea sería pesada, vamos a decir.

Estaba a punto de mandar todo al carajo cuando me dije a mí mismo: “mí mismo, vamos a ver si han habido avances en la API para conectarse con Sony directamente”. Y sorpresivamente, resulta que sí ha habido avances, al parecer impulsados entre otras cosas por la introducción del PlayStation 5 y que ahora algunos trofeos pueden reportar el avance que lleva el usuario para obtenerlos. Esto obligó a Sony a actualizar su protocolo de comunicación, y el mismo es mucho más sencillo.

Sigue siendo todavía algo engorroso, pero mucho menos: uno sólo necesita una cookie del navegador para que todo funcione, y la misma parece tardar mucho en expirar. Además hay que generar una ficha (token) que expira más o menos cada 10 horas; pero es trivial automatizar el cómo obtener una nueva. O bueno, a mí me resultó muy fácil automatizarlo.

Y mejor aún, el problema de que no estuviera completa la información, para motivos prácticos, ha desaparecido: no sólo se puede obtener toda la información de un trofeo (incluyendo el hecho de si es o no secreto); además, me llevó un par de horas descubrir que puedo minar todos los juegos de Sony. Incluyendo imágenes de juegos y trofeos en alta resolución, equivalente a las de PSNProfiles. Lo que es más; puedo minar mi perfil con toda la información que necesito; y también la de cualquier usuario en la PlayStation Network (si la tiene pública). La única restricción es que, en promedio, uno no debe hacer más de una consulta cada 3 segundos.

El único problema es saber el identificador del juego que uno quiere descargar. En la misma biblioteca de Sony (la que uso el userscript para descargarla del sitio de Sony) aparecen identificadores, normalmente de la forma CUSA, como CUSA01623 para la versión remasterizada de God of War 3 para el PlayStation 4; o de la forma PPSA, como PPSA08329 para la versión de God of War Ragnarök para el PlayStation 5. Sin embargo, los identificadores que la API necesita para sacar información de juegos, trofeos y progreso de un jugador, están en un formato NPWR; por ejemplo, para la versión de God of War Ragnarök del PlayStation 5, el identificador es NPWR22392.

Hay una manera de obtener el identificador NPWR si uno tiene el identificador CUSA; lamentablemente, sólo sirve si se tienen registrados trofeos de ese juego (lo que la hace inútil: si los tengo registrados, usando la nueva API puedo obtener la lista de mis juegos ya con el NPWR incluido). Hay listas en internet con múltiples identificadores NPWR, además de otros sitios que permiten consultar algunos identificadores; pero no todos: por definición todos estos sitios siempre tendrán información incompleta.

Estaba ponderando cómo hacer esto sin usar fuerza bruta, cuando de repente me dije a mí mismo: “mí mismo, ¿por qué no usamos fuerza bruta?”. Los identificadores NPWR tienen todos 5 dígitos decimales, y al parecer todavía no aparece ningún título en el rango de 50000… entonces sólo tenía que ir haciendo peticiones a la API desde NPWR00000 hasta NPWR49999; si el API me daba la información, ya ganaba; si me decía que no existe; también ganaba porque ese dato también lo registraba.

Así que procedí a hacer eso: nunca miné todo PSNProfiles, por respeto al sitio; pero que se pudran los de Sony, pueden lidiar con el tráfico, además de que como dije la API tiene límite de peticiones. Pero pues para alguien como yo el hacer un script que descargue todos los juegos de PlayStation a un promedio de uno cada 3 segundos es trivial.

Me llevó algunos días minar todo dejando correr mi script 24×7; según los resultados de mi minado, hay 30,370 conjuntos de trofeos; cada uno no corresponde exactamente a un juego, porque a veces un juego tiene mútliples conjuntos de trofeos, especialmente para distintas regiones en el mundo. No miné todas las imágenes (serían decenas de gigabytes de información); sólo descargué las imágenes de los juegos en mi colección.

Y por supuesto Sony agrega nuevos conjuntos de trofeos cada semana; y desesperantemente no es secuencial el asunto, a veces usan un número de 5 dígitos menor al máximo existente, aunque nunca muchísimo menor: el último que tengo registrado es NPWR48850, pero el último que fue agregado (que me interese) es NPWR47231 para Infinity Nikki, que, no bromeo, me muero de ganas de jugar.

Estoy seriamente pensando en dejar de molestar a PSNProfiles y usar exclusivamente la información de Sony; en general tiene todo lo que necesito, nada más la de PSNProfiles tiene más sentido. PSNProfiles hace una labor de curación en los jugadores a los que rastrea; por ejemplo da de baja a los jugadores que obviamente hacen trampas si las mismas son para poder obtener muchos trofeos de golpe (por ejemplo, al editar juegos salvados de otros jugadores). También para motivos prácticos ignora cuentas que casi no tienen trofeos y que probablemente sean cuentas alternativas de algunos usuarios.

Sony no hace nada de esto, entonces los porcentajes que muestran sus trofeos son más dudosos; en particular, los promedios de obtención de un trofeo suelen no tener el menor sentido: juegos muy fáciles no es raro que reporten trofeos que menos del 1% de los usuarios los han obtenido. Si todos los trofeos son difíciles, entonces ningún trofeo es difícil.

Así que, por ahora, tuve que resolver el obtener información de PSNProfiles, de preferencia sin tener que salvar la página manualmente, porque sí me interesan sus porcentajes de obtención de trofeos. La solución fue relativamente sencilla: PSNProfiles no permite que uno salve con un script una página del sitio; pero no tiene problemas en que uno construya manualmente una cadena y esa cadena se guarde, siempre y cuando el tipo de contenido no sea HTML.

Así que sencillamente traduje mi programa minero a JavaScript y ahora directamente mino del navegador con un userscript, guardando (con nada más picar un botón) un JSON con la información que me interesa. Este estúpido programa minero ya van como siete veces que lo reescribo, y si no me equivoco es el tercer lenguaje de programación que utilizo para hacerlo: la primera versión con Python, la segunda con Vala porque se me ocurrió que tenía sentido (no lo tenía) y ahora JavaScript. Dato interesante: PSNProfiles, para motivos prácticos, no haya actualizado sustancialmente el formato de sus páginas en todos estos años.

A largo plazo (muy largo plazo) creo que sí me mudaré por completo a usar la información de Sony nada más; no sólo así dejaré de molestar a PSNProfiles, sino que pues es eliminar intermediarios. Saber qué juegos son muy fáciles o muy difíciles obtener todos los trofeos sí me interesa, pero me parece que podré encontrar una fuente de información alterna y que no se ponga tanto los moños como PSNProfiles con su CSFR y Cloudfare. Pero pues sí será una reescritura significativa de mi sistema y ahorita no tengo tiempo de hacerla.

He completado al 100% 152 juegos en mis PlayStations; 112 de ellos con trofeo de platino. En total, he obtenido 5,969 trofeos en poco más de 16 años que llevo jugando en PlayStation, lo que me da un promedio de apenas más de un trofeo por día (1.01, según mi programa). Lo cual me parece razonable.

Sony acaba de sacar el PS5Pro y esto probablemente le dé cerca de un quinquenio extra a la quinta generación de la consola; eventualmente saldrá el PS6 y la comunicación que hacen PS3s y PS4s con la nave nodriza se desfasará y entonces Sony probablemente cambie de nuevo el protocolo.

Pero mientras ese día llega, yo ya tengo una manera de poder obtener toda la información de mis trofeos que me interesa para que funcione mi programita; casi toda de Sony, pero una parte todavía de PSNProfiles (aunque estoy buscando fuentes alternas). Vamos a ver cuánto tiempo permanece funcionando.

Imprimir entrada Imprimir entrada

La pasta térmica

En noviembre se cumplen quince años de que mi hermano me regaló mi PlayStation 3; en esa consola he sacado más de 50 platinos y completado casi 100 juegos. Ha habido periodos de mi vida en esos quince años donde ese PS3 estuvo prendido básicamente todo el día todos los días; y también periodos durante los cuales no lo encendía en meses.

Antes de la llegada de Netflix y HBO Max, o de que YouTube se convirtiera en su forma actual, yo usaba mi PS3 como reproductor de DVDs y Blu-rays; era mi manera más común de ver películas.

Unos años después yo compré un PlayStation 3 Super Slim, que es discutiblemente la versión más fea y más chafa del PS3, para poder sacar más fácilmente trofeos en línea. Y todavía unos años después mi hermano me regaló el PS3 que él tenía, porque no lo usaba y le estaba quitando espacio en el mueble de la televisión. Esa es la razón por la que tengo 3 PS3, como en el video, aunque realmente el que uso más es el mío original, que como puede entenderse ya tiene el colmillo largo.

Ahorita por ejemplo estoy avanzando en LEGO Rock Band; y desde hace varios meses notaba que se estaba calentando demasiado, pero en las últimas semanas sí llegó a grados medio ridículos. Leyendo en línea, el diagnóstico más común es sencillamente que la pasta térmica de el procesador Cell y el GPU del PS3 probablemente ya se había secado por completo, y en todos lados recomendaban cambiarla.

He abierto múltiples veces mi PS3; hace unos años el lector de Blu-rays había comenzado a fallar a la hora de expulsar los discos, llegando al punto de que de plano ya no podía sacarlos excepto justamente abriendo la consola y desarmando el lector para liberar el disco.

Compré un disco de repuesto en eBay, de China, que tardó varias semanas en llegar a mi casa, pero que funcionó perfecto, una vez que le puse el PCB del lector original: una cosa diabólica de todos los PlayStations, incluyendo el 4 y el 5 también, es que la placa madre está “casada” con el PCB del lector de Blu-rays, entonces no se puede cambiar toda la unidad, uno tiene que transferir el PCB al lector nuevo, para que todo funcione. Esto causa que errores mecánicos entonces se pueden reparar cambiando la unidad lectora transfiriendo el PCB al nuevo lector; pero si ocurre un error electrónico en el PCB, uno ya se jodió.

Como sea; abrir el PS3 para acceder al lector de Blu-rays es relativamente sencillo. Abrirlo para cambiar la pasta térmica es bastante más complicado: para motivos prácticos hay que desarmar toda la consola.

Siguiendo un video de YouTube no tuve problemas, hasta el momento en que tenía que quitar la placa madre; nada más no quería salir. Rezándole a todos los dioses oscuros en los que nunca tuve fé, hice suficiente fuerza hasta que la placa madre se liberó con un nauseabundo y sonoro crack, que por suerte era justamente la razón por la que desarmé mi consola: la pasta térmica no sólo se había secado; para motivos prácticos se había fosilizado. Estaba dura como una piedra, y era lo que no estaba dejando salir a la placa madre de mi PS3.

Limpié profundamente no sólo la vieja pasta térmica; casi bañé en alcohol isopropílico toda la placa madre, cambié la batería CR2032 de la misma, limpié a fondo todos los rincones de la consola, puse pasta térmica nueva Artic MX-4 en el procesador Cell y el GPU, y volviendo a rezarle a esos dioses oscuros encendí de nuevo mi PlayStation 3 que ya casi tiene edad para votar, una vez que terminé de armarlo.

Todo funcionó perfectamente, y la temperatura es ciertamente mucho mejor.

Como ya he mencionado en otras ocasiones, bajo ninguna definición del término se me puede categorizar como “joven”; a estas alturas del partido, he aceptado y estoy en paz con la idea de que nada es para siempre. Todo por servir se acaba (y por lo tanto acaba por no servir); y mi PlayStation 3, mi primer PlayStation, no es excepción. No importa lo bien que lo siga tratando (evidentemente lo he tratado muy bien, dada su edad), y no importa cuántos servicios de mantenimiento le haga, como cambiarle el lector de Blu-rays o aplicarle de nuevo la pasta térmica, eventualmente algún componente en la placa madre se descompondrá de tal forma que la consola ya no sea reparable.

Con suerte no será mañana o este año; tal vez no ocurrirá en varios años más. Pero eventualmente ocurrirá, con la exacta misma certeza de que en algún momento este flujo de consciencia que por falta de un término mejor denomino “vida” también terminará.

Pero hasta este momento he jugado cientos de horas en mi PlayStation 3 original, dándome en múltiples ocasiones de los momentos de entretenimiento más divertidos que he tenido en mi vida. Y mientras no llegue esa fatídica hora en que yo o mi PS3 expiremos, planeo seguir divirtiéndome con él mientras sea humanamente posible.

Claro que probablemente lo que ocurra primero es que Sony deje de permitir al PlayStation 3 conectarse a la PlayStation Network para sincronizar trofeos, en cuyo caso en ese momento dejaré de usarlo aunque funcione perfectamente, porque si no puedo sacar trofeos que se sincronicen con la PSN, ¿qué chiste tendría todo esto?

Pero ustedes, queridos lectores, entienden la idea.

Imprimir entrada Imprimir entrada

Asuka

Después de varias semanas trabajando en mi figurilla de medio metro de Asuka, consideré la misma terminada cuando la última capa de epoxi que le puse se curó y le pegué unas gomitas debajo de la base para que no se deslizara.

Asuka

Asuka
Asuka

Asuka
Asuka

Asuka
Asuka

Asuka

¿Salió perfecta? Ni de lejos; no es terriblemente difícil encontrarle lo que se podrían considerar como “defectos”. Pero como desde el principio había aceptado el hecho de que, dada mi falta de talento y que era la primera vez que hacía algo de este estilo, era casi imposible que saliera perfecta, estoy bastante en paz con cómo salió. Para es perfecta, dadas las circunstancias de su creación.

Asuka ahora vive en una cómoda en mi recámara, entre un PS4 y un PS3 que casi no uso, explicando pacientemente a quien sea que la mire, ahora y por siempre, porqué son una basura.

Asuka, explicando por qué eres una basura

Asuka, explicando por qué eres una basura

Exceptuando el hecho de que está muy grande y que es más voluptuosa de lo que debería ser, a mí me gusta mucho cómo se ve. Los colores en particular me gustarón mucho cómo salieron; hubiera preferido un acabado menos brillante que el que le da el epoxi, pero la verdad eso hace que los colores resalten más.

¿Voy a hacer más figurillas? Sin duda alguna; tengo varias candidatas en distintos grados de avance, aunque no he impreso nada todavía, sólo me estoy peleando con los modelos 3D. Sin embargo, el siguiente proyecto que tengo pensado realizar con mi impresora 3D no es una figurilla; y no estará terminado pronto; Asuka básicamente usé las vacaciones de semana santa y las de verano para hacer casi todo el trabajo necesario, ahorita no tengo tiempo.

Más que el resultado final (que, repito, me encanta), lo que más disfruté del proyecto fueron todos los pasos que llevaron a que lo terminara; o en otras palabras, disfruté más el trayecto que el destino mismo. Me da gusto saber que ya en mi mediana edad (bajo ninguna definición del término me puedo asumir como “joven”) puedo todavía de repente decidir hacer algo no trivial que nunca había hecho; disfrutarlo; y además quedar satisfecho con el resultado.

En una de esas y a lo mejor en algún momento de mi vida me da por ponerme a hornear pasteles.

Imprimir entrada Imprimir entrada

La pintura

Teniendo pegadas y (más o menos) suavizadas las piezas de Asuka, lo que seguía era pintarlas.

Como ya he dicho múltiples veces, mi talento artístico es más bien nulo, así que pintar, en el sentido artístico, está fuera de mis posiblidades. Sin embargo, sí soy un pintor de brocha gorda competente; porque no es algo que necesite talento artístico, sino que está básicamente en la misma categoría que cambiar focos y fusibles o destapar cañerías.

Mi idea entonces era pintar en su totalidad las piezas, cada una con su correspondiente color, sin preocuparme de los detalles finos que debían ser dibujados, como son los ojos de Asuka, los números en el plugsuit y otras cosas por el estilo. Para eso, tenía un plan, que discutiré más adelante. El pintar en su totalidad cada pieza supuse que sería equivalente a pintar con brocha gorda.

Pude haber usado pinceles, pero sabía que si quería que se viera medianamente bien, debía utilizar pintura atomizada. Esto dejaba dos posibilidades: usar latas de spray; o utilizar un aerógrafo, lo que implicaba comprar uno junto con el correspondiente compresor de aire.

Las latas de spray son, individualmente, más baratas; pero iba a terminar usando muy poquito de varias; es básicamente imposible mezclar colores; y además vivo en un departamento: si me pongo a usar latas de spray aquí, iba a terminar intoxicándome yo solito.

Así que compré un compresor de aire chiquito y un aerógrafo más bien barato; la gente con talento puede usar buenos aerógrafos para pintar innegables obras de arte. Yo no tengo talento, entonces nada más necesitaba un aerógrafo medianamente competente para pintar de manera consistente. Básicamente, sólo necesitaba que si la presión del aire era constante, el aerógrafo no salpicara.

También compré todo un juego de colores para el aerógrafo; salió mucho más caro que latas de spray, pero son casi 20 colores que me van a durar años, que es otra ventaja: siempre y cuando uno cierre bien las botellitas de pintura líquida, no tienen fecha de caducidad. Además, puedo mezclar fácilmente colores para producir los que no vengan en mi juego de colores. También compré una botella grande de primer, que yo no tenía idea se le llamaba imprimación en español.

Lo primero que hice fue imprimar las piezas; sólo fotografié mi escudo de los Pumas y la cabeza y base de Asuka, pero vi que esto tenía futuro. La imprimación se puede lijar estando seca (que si se atomiza correctamente tarda minutos en secarse), con papel de lija muy fino, y volver a imprimar si se considera necesario. Esto ayudó a corregir varios de los problemas que llegué a tener al suavizar las piezas.

Cabeza imprimada

Cabeza imprimada
Base imprimada

Base imprimada

Teniendo todo imprimado, procedí a pintar. Resulta que la experiencia me gustó mucho; no sólo es altamente satisfactorio ver cómo poco a poco las piezas imprimadas iban adquiriendo color: además tiene una cualidad casi terapeútica el estar pintando con aerógrafo, al entrar en un estado meditativo en el cual yo normalmente no me encuentro excepto al programar, y en ese caso suele estar acompañado de un extremadamente alto nivel de concentración que no necesito al estar pintando con mi aerógrafo chafa.

Y la pintura vinílica atomizada por dicho aeorógrafo desprende un sutil aroma medio dulce que yo encuentro muy agradable. No se preocupen, sí usé máscara para pintar.

Teniendo las piezas pintadas yo me emocioné como niño chiquito, porque se veían increíbles. Las fotos, a pesar de que me parece que se ven bien, no le hacen justicia a los colores: se ven mucho más brillantes en persona.

Piezas pintadas

Piezas pintadas

En la cabeza, por cierto, aproveché que puedo mezclar mis pinturas antes de usar el aerógrafo; mi juego de pinturas no tiene un color carne, realmente, así que mezclé durazno (que es como naranja claro), rosa y blanco, y la verdad me gustó mucho cómo quedó la cara de Asuka.

El cabello pintado de naranja

El cabello pintado de naranja
El cuerpo pintado de rojo

El cuerpo pintado de rojo

Después seguían los detalles medianos; muchos de ellos me las ingenié nada más usando cinta de pintor para tapar lo que no quería que se pintara, y dejando al descubierto lo que se debía pintar. La cinta de pintor es muy noble; no daña las partes ya pintadas, no importa cuántas veces uno la pegue y despegue, entonces sólo debía poner trozos de cinta hasta que la parte que iba a pintar se viera de la manera correcta.

Pintando con cinta

Pintando con cinta

Pero eventualmente llegué al problema ineludible: tenía que pintar los detalles finos, como los ojos de Asuka y los números en su plugsuit. La idea de cómo resolver este problema me vino a la mente cuando vi en YouTube cómo le hacen los constructores de modelos de carros; muchos detalles de este estilo, sencillamente utilizan decals, que son como calcomanías que se ponen en agua caliente y se pegan al modelo.

Resulta que eso se puede imprimir en una impresora láser de color; venden el “papel” para esto. Entonces sencillamente dibujé los ojos en Inkscape (usando una imagen de Asuka como guía), y primero lo probé con papel común y corriente. Incluso sin color y la textura más bien fea del papel de impresión, se veía pasable.

Ojos de papel de Asuka

Ojos de papel de Asuka

El mismo diseño de ojos, junto con un montón de cosas que quería ahorrarme el dibujarlas, las imprimí en este “papel” especial, que compré en Amazon.

Detalles de Asuka

Detalles de Asuka

Como pueden ver, tenía la idea loca de usar este método para hacer también múltiples de las líneas negras que tiene el plugsuit de Asuka. Esto al final no funcionó, ahorita explico también.

Teniendo los ojos (y las cejas) los recorté; además pinté de blanco el espacio en la cabeza de Asuka donde irían los ojos (usando el método de la cinta de pintor), porque las calcomanías son transparentes.

Calcomanías de ojos de Asuka

Calcomanías de ojos de Asuka

El resultado me sorprendió lo bien (en mi opinión) que se ve.

Asuka con ojos

Asuka con ojos

También hice lo mismo con los números en el plugsuit.

El número de piloto de Asuka

El número de piloto de Asuka

También usé mi plastilina epóxica-tóxica para unir el pelo de Asuka.

Asuka con el pelo pegado

Asuka con el pelo pegado
Asuka con el pelo pegado

Asuka con el pelo pegado

Y usé la técnica de cinta de pintor para volver a pintar el pelo.

Asuka con el pelo preparado para pintar

Asuka con el pelo preparado para pintar

De nuevo, el resultado me gustó bastante.

Asuka con el pelo pintado

Asuka con el pelo pintado

Lamentablemente, las calcomanías no funcionaron para las líneas negras del plugsuit de Asuka; las calcomanías sólo funcionan o bien si se pegan en una superficie básicamente plana; o si son relativamente pequeñas. Las líneas se despegaban antes de que se secara la calcomanía.

Entonces, ya medio hasta la madre, agarré un marcador negro (sharpie) y a mano hice casi todas las líneas. Mi pulso es de maraquero, entonces no salieron perfectamente rectas; pero me gustó cómo quedaron.

Ese mismo pulso de maraquero usé para corregir ciertos detalles usando un pincel muy muy fino: errores al aplicar el marcador; la pintura blanca que en algunos casos usé como base antes de las calcomanías; y unos muy ligeros chorreos de pintura blanca del paso anterior.

Por último, primero intenté barnizar la figura con una laca transparente en spray; pero no me gustó cómo quedó. La laca debe aplicarse a una distancia casi exacta; muy cerca y se chorrea; muy lejos y se seca antes de pegarse al modelo, lo que hace que adquiera la apariencia de caspa.

Temiendo que se chorreara la laca, terminé aplicándola muy lejos y mi pobre Asuka terminó pareciendo que estaba cubierta de polvo. Así que volvía a sacar la resina epóxica-tóxica y con un pincel ancho con cuidado volví a cubrir toda la figura, nada más que sin preocuparme por las líneas de impresión esta vez (para este, punto ya habían desaparecido casi todas). Entonces fue en general una capa muy fina de resina epoxi.

Esto además ayudó a fijar algunas calcomanías que querían despegarse; en particular el “02” del pecho de Asuka fue un desmadre que se quedara en su sitio, por ser cóncava la superficie donde debe pegarse. También pinté y puse epoxi en la base de Asuka y por fin, después de varias semanas trabajando en mi figurilla, la misma quedó completada.

¿Salió perfecta la pintada? No; pero no tenía que serlo.

La próxima entrada será la última en esta serie; y por fin mostraré cómo quedó mi medio metro de Asuka.

Imprimir entrada Imprimir entrada

Pegando y suavizando

Teniendo impresas (y en algunos casos reparadas) las piezas de asesino serial de mi Asuka, el siguiente paso fue pegar lo necesario antes de intentar suavizar las líneas de impresión de la figurilla, como paso anterior a pintarla.

Había dos tipos de pegaduras que tenía que hacer; en unas sencillamente tenía que fijar las dos piezas juntas, como en los interface headsets en el cabello; o la cabeza (técnicamente cuello) sobre el torso; o (si no me hubiera visto forzado a serrarlo) el cabello sobre la cabeza. En otras palabras; esas partes podía pintarlas de forma separada, pegarlas nada más fijándolas (usando Kola-Loka, por ejemplo) y todo estaría bien; no importaba que se notara la transición de una pieza a otra, porque tendrían colores distintos y son “partes” distintas de la figurilla.

El otro tipo de pegadura no bastaba fijar las piezas juntas; además había que sellar la inevitable línea de separación y probablemente lijar encima, para que no se notara que habían sido piezas distintas. En otras palabras, tenía que resanar esas uniones; que eran las que componen todo el cuerpo (o sea, descontando la cabeza) de Asuka: el torso con los brazos y piernas, y los pies con estas últimas.

Podría haber intentado usar Plasti-Loka para hacer este resane, pero es muy difícil de lijar (aunque se puede), así que decidí buscar un pegamento especializado.

Investigando en la red, me decidí por J-B Weld PlasticWeld, que está pensado justamente para esa tarea. Cuando por fin llegó el pegamento (que es realmente una plastilina epóxica que hay que amasar un rato antes de usarla), el manual de instrucciones me aterró un poco.

Decía que si olía el epoxi, me iba a morir; que si tocaba el epoxi, me iba a morir; que si tragaba el epoxi, me iba a morir; y que si por alguna razón mis ojos tocaban el epoxi, me iba a quedar ciego… y después me iba a morir.

En ningún momento al decidir embarcarme en este proyecto supuse que iba a estar arriesgando mi vida por el mismo.

Total que usé la protección para ojos que utilizo al usar mi taladro o mi sierra eléctrica; reusé las máscaras de Covid; compré guantes quirúrgicos y me puse a resanar el cuerpo ya pegado de Asuka.

La famosa plastilina epóxica me dejó sentimientos encontrados; es muy fácil de usar y moldar, pero es muy incómodo estarlo haciendo protegido como Bruce Willis al inicio de 12 Monkeys. Y es fácil de lijar, pero embota toda lija o lima de inmediato, además de que desprende polvo tóxico de a madres, lo que fuerza a usar de nuevo los lentes y la máscara (se supone ya no hay problema de contacto con la piel).

Como sea, creo que quedó bien.

Asuka pegada, recordándote que eres basura

Asuka pegada, recordándote que eres basura

Lo siguiente era eliminar las líneas de impresión. Para esto, habían múltiples estrategias; una era lijar todas las piezas hasta que las líneas ya no se notaran, pero eso (además de que es un chingo de chamba) cambia su dimensión notablemente; otra era embarrar todas las piezas con la plastilina epóxica y lijarla de nuevo, pero la idea me daba una hueva infinita. La otra era usar otro epoxi, pero ahora en resina, que dejara una capa ya suave encima del plástico impreso, que después pintaría encima.

Habiendo no disfrutado mucho con el famoso J-B Weld, me decidí por lo segundo. Así que compré resina epoxi especializada para ello, Alumilite Amazing Clear Cast, y no van a creer lo que decía el manual de instrucciones.

Decía que si olía el epoxi, me iba a morir; que si tocaba el epoxi, me iba a morir; que si tragaba el epoxi, me iba a morir; y que si por alguna razón mis ojos tocaban el epoxi, me iba a quedar ciego… y después me iba a morir.

Comencé a notar un patrón en estas cosas.

Como sea, me protegí como Bruce Willis al inicio de 12 Monkeys una vez más, y con unos pinceles comencé a poner una capa de epoxi sobre todas las piezas de mi figurilla. El proceso es ligeramente engorroso, porque uno tiene que poner la cantidad exacta de resina; si uno pone muy poco, las líneas de impresión siguen notándose; si uno pone demasiado, la resina se corre y se forman goteos bastante feos.

Siendo, como soy, carente de cualquier talento para estas cosas, en general puse o demasiado poco o demasiado mucho epoxi. De todas formas, no quedó mal.

Las piezas de Asuka con resina

Las piezas de Asuka con resina

El escudo de los Pumas fue un experimento de impresión que hice antes de Asuka y que usé para probar el epoxi. El cuerpo tampoco quedó mal, pero ahí tuve muchos más goteos.

El cuerpo de Asuka con resina

El cuerpo de Asuka con resina

Cuando el epoxi se curó por completo (toma unas 24 horas) todavía le di una repasada a algunas partes, o de plano corté corridas de goteos en varias otras, con un cutter literalmente, dejándolo curar una vez más. Al terminar, en algunos casos volví a limar varias partes donde puse demasiada resina. Ya no le tomé una foto (no estaba muy orgulloso de cómo se veía en ese momento).

Lo que debí hacer es fijar todas las piezas con Kola-Loka; y en lugar de estar arriesgando mi vida con epoxi tóxico, utilizar lo que las hojalaterías de todo el mundo llevan usando desde hace décadas: pasta (también conocida como bondo); se mezcla, se aplica, es muy fácil de lijar (está pensado para lijarse) y no es tan tóxico como el epoxi. Es lo que planeo utilizar en mi próximo proyecto.

¿Salió perfecto el pegado y suavizado? No; pero no tenía que serlo.

Para este punto ya todo estaba listo para proceder a pintar las piezas de la figurilla, que de eso hablaré en la siguiente entrada.

Imprimir entrada Imprimir entrada

La impresión

Teniendo mi modelo de Asuka ya despedazado en piezas de asesino serial y rebanado en Cura para poder ser impreso, pocedí a hacer justamente eso.

La impresión me llevó múltiples días, más de una semana; comenzando por la cabeza. Anticipo de una vez: todas las fotos que pondré en esta entrada son todavía más sugerentes de un asesino serial, porque ya en el espacio de carne las piezas tienden a verse bastante macabras.

La cabeza salió sorprendentemente bien; me encantó cómo quedaron la nariz y los labios, particularmente porque en animé luego es muy común que la nariz (especialmente de mujeres) apenas sea una curvita y la boca una línea.

La cabeza de Asuka

La cabeza de Asuka

Los ojos por supuesto en el modelo 3D son una textura, que pues eso no se imprime en 3D: los iba a tener que dibujar yo, de alguna manera; pero para este momento ya tenía un plan para ellos. Lo que sí es que esos ojos blancos vacíos ciertamente están de meyo.

Siguió el cabello, que me parece fue el error más grave que cometí al imprimir las piezas. En el modelo 3D, la cabeza de Asuka era de estos “volúmenes” con volumen cero que comentaba: era, para que lo puedan visualizar, como una vasija con un hoyo en la parte de arriba y atrás, porque en el modelo eso es cubierto por el cabello. El cabello igual, por cierto: abajo y la parte de la nuca no tenían nada, porque eso lo cubre la cabeza. Así que “tapé” ambos volúmenes para que fueran topológicamente una esfera cada uno, y luego le “resté” al cabello la cabeza, para que se pudieran pegar “sin problemas”.

Pongo “sin problemas” entre comillas, porque soy un retrasado mental: el error que cometí, es que aunque dejé el espacio exacto en el cabello para que cupiera la cabeza, no se me ocurrió que tenía que pasar a través del fleco y los flequillos. No era posible meter la cabeza en el pelo sin romper las frágiles puntas del cabello de Asuka.

Me di cuenta de inmediato al tener tanto el cabello y la cabeza en mis manos. Ni siquiera le tomé una foto; no quería volver a imprimirlo (tardó mucho más tiempo en imprimirse el cabello que la cabeza), así que, a la mexicana, agarré una sierra y me puse a serrar… para inmediatamente notar que ese primer corte no fue en el lugar adecuado, así que tuve que hacer un segundo corte.

Y en el proceso de cualquier manera varias de las frágiles puntas del cabello se romprieron.

El pelo y cabeza de Asuka

El pelo y cabeza de Asuka

Nada de esto era el fin del mundo, porque planeaba pegar la figurilla de cualquier manera, pero sí fue el error más grave que cometí, sin duda alguna. De cualquier forma el pelo se veía muy bien por detrás.

El pelo de Asuka por atrás

El pelo de Asuka por atrás

Y haciendo un preview (con diurex para el cabello), de hecho se veía todo bastante bien.

Asuka con pelo

Asuka con pelo

Aunque esos ojos muertos siguen siendo bastante macabros. Siguió el torso, que tardó siglos en imprimirse pero me parece también quedó suficientemente bien.

El torso de Asuka

El torso de Asuka

Los únicos problemas que le vi fueron dos: el ancho del cuello del plugsuit es muy delgado en una parte, y la impresión de plano dejó ahí un hueco.

El hoyo en el cuello

El hoyo en el cuello

La segunda la mencionaré más adelante. El torso con la cabeza comenzaba a dejar ver que el proyecto tenía esperanzas de ser pasable.

Cabeza y torso de Asuka

Cabeza y torso de Asuka

Procedí a imprimir los brazos, que salieron casi bien.

Brazos de Asuka

Brazos de Asuka

El problema es con la mano de Asuka que tiene el dedo índice levantado: los soportes que debían sostener el dedo pulgar correspondiente se colapsaron; pude detectarlo más o menos a tiempo, así que pausé la impresión y puse algo de cinta de pintor como soporte, con lo cual el resto del pulgar se pudo terminar de imprimir; pero se quedó mocho como un falange y medio.

Pulgar mocho de Asuka

Pulgar mocho de Asuka

Lo reparé con un poquito de Plasti-Loka, que creo lo dejó medianamente bien. No se ve en la foto, pero también hubo un error con la muñeca de ese brazo; los plugsuits de los pilotos de Evas tienen algo parecido a brazaletes en las muñecas, y el de ese brazo de mi Asuka, por alguna razón, un pedacito salió volando en algún momento. No tengo idea de cómo salió mal ahí la impresión ni cómo salió volando; pero en lugar de pegarlo lo reconstruí también con Plasti-Loka.

Pulgar reparado de Asuka

Pulgar reparado de Asuka

Teniendo los brazos, la figurilla comenzaba a asomarse.

Media Asuka, recordándote que eres basura

Media Asuka, recordándote que eres basura

Siguieron las piernas, que no dieron absolutamente ningún problema.

Piernas de Asuka

Piernas de Asuka

Teniendo el torso y las piernas, pude verificar cómo se veían juntos.

Cuerpo de Asuka

Cuerpo de Asuka

En esa foto se ve cómo reparé el hoyo en el cuello con Plasti-Loka, así como el pulgar y la muñeca reparados de la misma manera. También se nota que tuve que rehacer el cuello; después de estar poniendo y quitando una y otra vez el cuello del torso, por fin se rompió. Pero fue muy fácil de reparar, de nuevo con Plasti-Loka.

Ya viendo todo junto, es que detecté el problema que mencionaba arriba. Además del tamaño masivo de la figurilla (pesaba la chingadera cuando lo agarraba con una mano), tardé como catorce segundos en darme cuenta de dos cosas: esa Asuka está demasiado chichona y demasiado nalgona.

Asuka más voluptuosa de lo que me gustaría

Asuka más voluptuosa de lo que me gustaría

Según yo así no es en el modelo 3D; publiqué las fotos hace unos días, díganme si me equivoco. Pero al tenerlo impreso en el espacio de carne, sí me pareció más pronunciado que en el monitor de la computadora.

Lo cual no debería extrañarme; saqué ese modelo de un juego pornográfico.

Como sea; imprimí los pies de Asuka, así como los interface headsets (que mucha gente cree que son clips para el cabello, pero no, es parte de lo que permite a los pilotos Eva comunicarse con el monstruo), y estaba tan emocionado que ni siquiera les tomé una foto individual, armé de nuevo toda la figurilla (con diurex para el pelo) y le tomé una foto en crudo.

Asuka en crudo, recordándote que eres basura

Asuka en crudo, recordándote que eres basura

Para mi sorpresa, la figurilla se equilibra en eso piecitos (que la verdad también salieron unas patotas ya impresas), a pesar de que el modelo se está inclinando al frente con una cabeza masiva gracias a la melena en un futuro peliroja de Asuka.

De todas maneras imprimí una base con guías que se acomodarían con hoyos en los pies de Asuka. La base fue sorprendentemente difícil de imprimir, porque se me deformaba al no tener suficiente adherencia mi placa de impresión.

Base de Asuka deformada

Base de Asuka deformada

Un poco de spray para cabello justo antes de imprimir resolvió eso, y por fin tuve mi base.

Base de Asuka

Base de Asuka

Fueron horas de estar imprimiendo, serrando el cabello, reconstruyendo el pulgar, y haciendo vistas adelantadas de la figurilla armada. Fue un proceso que tardó más de una semana, pero ciertamente el que menos actividad de mi parte requirió: en general dejé a la impresora hacer lo suyo mientras yo me iba a trabajar.

¿Salió perfecta la impresión? No; pero no tenía que serlo.

En la siguiente entrada platicaré cómo pegué las partes del cuerpo de la figurilla y cómo traté de eliminar las líneas de impresión de la misma.

Imprimir entrada Imprimir entrada

El modelo

Habiendo decidido que imprimiría un modelo de Asuka en mi impresora 3D y después hacerle lo necesario para que al menos pasara como una figurilla, tuve que resolver el primer problema: conseguir el modelo a imprimir.

Debo enfatizar, por enésima vez, que yo no puedo hacer ese modelo. Quiero decir; podría intentarlo, pero mi experiencia me indica que por más esfuerzo que le echara, jamás quedaría de tal forma que me satisficiera.

Entonces comenzó mi calvario para encontrar un modelo satisfactorio de Asuka.

Resulta que no hay muchas opciones, realmente. Y, aparentemente, como 127% de las opciones disponibles son pervertidas. Que yo no critico (es un personaje ficticio y además dibujado; ningún ser humano es dañado si alguien dibuja a dicho personaje de manera pervertida); pero no es lo que yo buscaba.

La cosa es que necesitaba un modelo 3D de Asuka con las proporciones correctas (de nuevo, todo mundo pervierte a la pobre piloto de Eva), con el plugsuit y accesorios correctos, y además en un formato que yo pudiera de alguna manera importar en Blender y, si Marx lo permite, manipular aunque fuera un poco.

Un modelo así, tal cual, fue básicamente imposible de encontrar. Pero la idea que tuve (conseguir un modelo de un animé y de alguna manera pasarlo a Blender) no es realmente original; un montón de gente ha pensado en algo similar. No es una idea muy revolucionaria que digamos.

Lo que encontré fue un conjunto de plugins y scripts que, combinados con un juego para modelar personajes de animé, me permitió importar en Blender un modelo de Asuka que me pareció padre y (que sí era importante para mí) de buen gusto. Planeaba tener la figurilla en algún mueble de mi casa; tiene que ser presentable.

Todo bien; nada más el juego para modelar personajes de animé es (y no hay forma de suavizar esto) pornográfico; y como (repito) todo mundo pervierte a la pobre Asuka, encontré un modelo de ella para dicho juego. Que está hecho en Japón, por supuesto.

Nunca cambies, Japón.

No diré el nombre del juego, porque supongo no tiene mucho sentido hacerles publicidad; pero fue un desmadre hacer que corriera en Linux (parte del chiste de todo este proyecto fue hacer que todo fuera realizable desde mi sistema operativo). Pero al final pude modelar a Asuka de tal forma que a mí me resultara agradable y (repito) que dicho modelo fuera de buen gusto.

Asuka te está explicando por qué eres una basura

Asuka te está explicando por qué eres una basura

El siguiente desmadre fue hacer que se ejecutaran los plugins y scripts tanto en el juego como en Blender, porque además mucha gente lo que quiere es poder hacer sus propias animaciones en Blender usando los modelos importados del juego; esto genera un montón de información que era inútil para mis objetivos, como es texturas, o color, o texturas con color, o múltiples capas (layers), que al momento de convertir esto en algo que una impresora 3D pueda imprimir sencillamente no importan. Pero al final terminé con el modelo de Asuka en Blender.

Teniendo el modelo en Blender pude comenzar a limpiarlo; el modelo importado tiene un montón de características que potencialmente pueden arruinar una impresión 3D. Las más importantes son que la impresora se puede confundir si hay volúmenes que se intersecten entre sí; en una animación o teniendo el modelo sólo para verlo en la computadora, estas intersecciones no importan y de hecho pueden hacer que se vea mejor, pero la impresora al estar siguiendo cada capa de un volumen se puede hacer bolas si hay dos volúmenes intersectados.

La otra es que todo tiene que tener volumen mayor a cero; la mejor forma de simplificarlo es haciendo una analogía con una hoja de papel: la misma tiene volumen, tiene 3 dimensiones, el ancho y el alto por supuesto, pero también una profundidad aunque la misma sea extremadamente pequeña (una fracción de un milímetro). La impresora 3D sólo puede imprimir cosas de 3 dimensiones, con la dimensión más pequeña teniendo un límite inferior de más o menos medio milímetro, y eso ya es arriesgar a que la impresión se colapse.

En un modelo 3D como el que logré importar a Blender hay un montón de “volúmenes” con volumen cero, que son imposibles de imprimir por supuesto; estas cosas hay que limpiarlas. Me llevó un rato, pero Blender es sorprendentemente fácil de usar y la tarea no requiere talento, sólo paciencia, así que terminé con una versión “limpia” de Asuka.

Asuka continúa explicándote por qué eres una basura

Asuka continúa explicándote por qué eres una basura

Y esta es la parte donde aparezco como asesino serial: a menos que midiera 15 centímetros la figurilla, no podía imprimir todo eso de golpe. Pero además, no me convenía imprimirlo de golpe; no sólo por las complicaciones que con casi toda certeza ocurrirían al imprimir (que me forzarían a volver imprimir todo si algo salía mal); sino porque teniendo separadas las “piezas” me podía facilitar la vida al pintarlas.

Así que destacé el modelo en piezas… que fuera de contexto dichas piezas podrían hacer que me viera como un asesino serial.

Asuka destazada, pero aún explicando por qué eres basura

Asuka destazada, pero aún explicando por qué eres basura

Todas las piezas tienen guías para poder rearmar el modelo ya en el mundo real, y posicionadas para que la impresión saliera mejor en las partes más detalladas. Al final no imprimí las piezas exactamente como están en la imagen; para empezar, cada pieza la separé e imprimí por su propia cuenta: es el chiste de todo el destazadero. Pero además, cada que imprimía una parte descubría errores o mejoras que podía corregir o implementar en las subsecuentes partes. Pero el diseño general sí fue el que muestra la imagen.

¿Salió perfecto el modelo? No; pero no tenía que serlo.

Teniendo las piezas de asesino serial destazadas, las llevé a Cura y de ahí hice el rebanado que genera el G-code necesario para poder imprimir cada una.

Asuka decapitada, pero aún explicando que eres basura

Asuka decapitada, pero aún explicando que eres basura

He ahí que cometí mi error de cálculo que causó que Asuka terminara midiendo casi medio metro de altura; pero eso es material de la siguiente entrada, donde hablaré de cómo fue el proceso de imprimir mi medio metro de Asuka.

Imprimir entrada Imprimir entrada

Las artes plásticas

Me parece adecuado dividir los pasatiempos que cada persona tiene en dos grandes categorías: pasatiempos que consisten en consumir algo (leer, ir al cine, escuchar música); y pasatiempos que consisten en producir algo (pintar, cocinar, plantar rosas).

Un poco arbitrariamente asigno ir a jugar futbol con los cuates los domingos algo similar a consumir algo (¿contacto social?), porque es similar a ir a jugar ajedrez; y de ahí es un brinco corto a jugar videojuegos. Y creo que nadie en su sano juicio diría que jugar videojuegos es en sí mismo productivo.

(El conjunto de personas en el mundo que crean contenido haciendo streaming de sus sesiones de juego por definición sí crean algo; y no es el hecho nada más de jugar lo que producen, muchas veces incluye su personalidad, su sentido del humor y lo que sea que estén platicando con sus seguidores en línea; además del talento técnico necesario para en muchas ocasiones editar y presentar esos videos de forma más asequible).

También me parece importante separar a la gente que produce cosas como pasatiempo, de los que crean como manera de ganarse la vida o complementar su ingreso. Mis clases me parecen que producen muchas cosas; pero eso es parte de lo que hago como mi trabajo.

Así definido (que, repito, es medio arbitrario), casi todos mis pasatiempos consisten en consumir cosas: películas, series de televisión, cómics, manga, animé, música, videos en YouTube de porqué nuestra desesperada y triste oposición cada vez se entierra a sí misma en un hoyo más profundo, etc.

Las únicas dos cosas que hago que producen algo concreto es escribir, ya sea en español o en código de computadora. Y está tan cercano a mi trabajo que creo que sería trampa que lo considerara pasatiempo; este blog sería entonces básicamente mi único pasatiempo que produce algo.

Lo chistoso es que sí me gusta crear cosas usando mis manitas; el problema es que generalmente no me gusta cómo queda el resultado final. Mis habilidades manuales, como ya he mencionado en otras ocasiones, son más bien mediocres.

Mi impresora 3D me permite entonces poder crear cosas, que es de las razones que me he estado divirtiendo como enano estos últimos meses. Pero casi todo lo que he creado es más bien técnico y sin duda alguna utilitario.

Y la verdad sí me gustaría crear algo que pudiera al menos pasar como arte.

No tengo el más mínimo talento para las artes plásticas; me encantaría poder dibujar como mangaka; o hacer ilustraciones en la computadora; o animaciones 3D; o esculpir o pintar. Absolutamente ninguna de esas cosas se me da; lo cual tengo perfectamente claro desde que llevé, como taller en la secundaria, justamente Artes Plásticas.

Si hubiera tenido dos dedos de frente (hey, tenía doce años), hubiera elegido el taller de electrónica o en su ausencia el de electricidad. Pero la decisión de cerebro-tamaño-de-galaxia hubiera sido llevar mecanografía; no sólo probablemente hubiera mejorado mi letra (que es, siendo generoso, espantosa), sino que me hubiera servido muchísimo por la velocidad que me hubiera permitido escribir en la computadora. Mi velocidad actual es bastante buena; pero estoy seguro de que sería mucho mejor si hubiera llevado mecanografía a los doce años.

Además, se metían puras chavas. Oh, cruel retrospectiva.

Como sea, ya habiéndole agarrado más o menos la onda a mi impresora 3D, después de mi cunita para el carro y mi estante para el buró y mi cajita para el receptor de control remoto de mi subwoofer, decidí que lo siguiente que imprimiría sería algo cercano a artístico. La cosa era decidir qué.

He sido fan del animé desde que era niño, con Robotech; y del manga desde que era adolescente, primero comprando traducciones al español que vendían en los puestos de periódico; evolucionando a “conseguir” las versiones en línea traducidas al inglés; y al final graduándome en comprar ediciones impresas (o digitales) vía Amazon. Generalmente en inglés; las traducciones al español las he encontrado, en general, más bien chafas (suelen ser traducidas al español de España; joder tío).

Como fan de estos géneros, una de las cosas que en general no he hecho es coleccionar figurillas de mis personajes favoritos de animé o manga, por una sencilla razón: es estúpidamente caro. En diciembre compré una figurilla de Komi Shōko, de Komi Can’t Communicate, porque me encanta y me parece tiernísima cuando pone sus ojos de mosca.

Komi con ojos de mosca

Komi con ojos de mosca

Adoro la figurilla; pero la chingadera costó casi dos mil pesos (tarifas de importación incluidas). Mide menos de 12 centímetros, con todo y plataforma; las figuras de 20 o más centímetros rápidamente se acercan o superan los diez mil pesos (tarifas de importación no incluidas). Eso es demasiado para mí; no critico a quien esté dispuesto a pagarlo, pero yo definitivamente no lo estoy.

Entonces, deseando satisfacer esta idea de crear algo que al menos pareciera arte y aprovechando que casi nunca compro figurillas de personajes de animé o manga por el desorbitante precio, decidí imprimir un personaje de animé, incluyendo todo lo necesario para que pareciera de verdad una figurilla, no nada más un impresión 3D. Esto implicaba con casi toda certeza que debería imprimirla en partes (la impresora es sorprendentemente pequeña); lijar las partes para eliminar las inevitables líneas de impresión; pegar las partes de la figura; pintarla; barnizarla y después ponerla encima de algún mueble para que acumule polvo de aquí al resto de la eternidad. Recordando todo el tiempo que mi talento artístico es básicamente inexistente.

El personaje realmente nunca estuvo en duda: tenía que ser Asuka, de Neon Genesis Evangelion.

Asuka

Asuka

Aunque sin duda alguna de mis personajes favoritos de todos los tiempos, la verdad es que también la elegí por consideraciones prácticas: algo como una figura de Sakura Kinomoto de Cardcaptor Sakura me encantaría (el animé creo que sigue siendo mi favorito de todos los tiempos), pero la niña suele usar vestiditos con holandes y moños y cintillas, que probablemente serían una pesadilla imprimir, no digamos lijar, pintar y demás.

Sakura Kinonomo

Sakura Kinonomo

Y también me gustaría algo como un veritech VF-1 Valkyrie, de Robotech:

VF-1 Valkyrie

VF-1 Valkyrie

Pero ese sería también muy complicado de imprimir, aunque ciertamente menos complicado que Sakura.

Como sea, Asuka usa básicamente un jumpsuit (llamado plugsuit en la serie), que es relativamente sencillo. Las únicas complicaciones que preví fueron su cabello; y ciertas dificultades para pintar de forma adecuada ciertas partes de la figurilla, porque repito, mi talento artístico es inexistente.

Lo más importante que me metí en la cabeza, es que no iba a quedar perfecta. Y está bien; no tenía que quedar perfecta; sólo debía ser pasable y además que yo me divirtiera con los distintos pasos del proceso, que puedo adelantar que así fue.

Es subsecuentes entradas iré relatando los múltiples pasos que llevé a cabo para crear mi figurilla de Asuka, revelando paulatinamente su progreso hasta mostrar al final cómo quedó. Sólo voy a adelantar una cosa: por una falla mía para calcular las escalas, particularmente al convertir del formato que usa Blender al que usa Cura para la rebanada del modelo 3D, la figura de Asuka quedó un poquito grande.

Mide medio metro.

Imprimir entrada Imprimir entrada

El estante

Lo primero que imprimí con mi impresora 3D no fue la cajita para mi subwoofer; fue una cunita para mi celular que mi intención era ponerla en mi carro, en particular cuando viajo en autopista.

Cunita

Cunita

Desde hace años tengo un soporte en el tablero de mi carro para cámaras GoPro; diseñar una cunita para mi celular fue muy sencillo, porque el soporte para cámaras GoPro es ídem.

Imprimí mi cunita, la puse en mi carro y fui muy feliz… poco más de medio día. Al salir de la Facultad ese primer día que puse la cunita en mi carro, regresé al mismo para descubrirla toda derretida.

Realmente no se derritió; pero el filamento PLA se vuelve blando más o menos a los 60°C, que dentro de un carro cerrado bajo el sol se alcanzan fácilmente, más aún porque el color del filamento es negro, lo cual hace que absorba todavía más ferte la luz del sol, que le pega directamente por dónde está el soporte para cámaras GoPro.

Cunita derretida

Cunita derretida

No dispuesto a dejarme desanimar, decidí imprimir de nuevo la cunita y sencillamente quitarla cuando no fuera a viajar a carretera, poniéndola debajo del asiento del copiloto. Esto funciona; si el sol no le da directamente, no alcanza los 60°C y no se pone como si se hubiera deprimido por la insoportable levedad del ser.

Pero esto significa estar poniéndola y quitándola, lo que medio inevitablemente resultó en que se rompiera parte de lo que se atornilla al soporte GoPro. Estoy 78% seguro de que usando adhesivo de silicón puedo repararlo de tal forma que no se vuelva a romper (por la flexibilidad del tipo de adhesivo que planeo usar), pero la verdad no he tenido la paciencia para hacerlo.

Hay filamentos especiales para temperaturas altas, pero implica modificar mi impresora cambiándole la boquilla que se usar para extrudir el filamento. Nada del otro mundo; sólo no he comprado las piezas y no lo he hecho.

La famosa cunita entonces fue un experimento medio ambiguo: definitivamente no lo considero un fracaso, pero tampoco es un éxito de ninguna manera. La primera impresión que sí resultó básicamente perfecta fue el estante que imprimí para mi buró.

En mi recámara tengo una televisión, una barra de sonido y dos PlayStations; uno 3 y otro 4. La televisión tiene un control remoto; la barra de sonido tiene un control remoto; y tengo un switch HDMI para poder cambiar la entrada de la televisión del PS3 al PS4 o viceversa. La televisión tiene múltiples entradas HDMI, pero está colgada de la pared y entonces tengo un sólo cable HDMI que va a una cajonera sobre la que están las consolas, de ahí la necesidad del switch, que también tiene un control remoto. Es medio menso, porque ese PS3 casi nunca lo uso; los que uso son los otros dos en mi sala, pero no estamos hablando de eso aquí y ahora.

El buró desordenado

El buró desordenado

El punto es que tengo 3 controles remotos, mi teléfono celular, mi tableta (que suelo usar para leer o ver cosas justo antes de dormir) y mi control PS4 (repito, no suelo usar el PS3 de mi recámara). Generalmente todas esas madres estaban dando de tumbos sobre mi buró, cayéndose todo el tiempo bajo el menor pretexto y en general estorbando. Así que diseñé un estante con compartimentos especiales para cada uno de los controles remotos, mi celular y mi tableta, y un soporte especial para controles DualShock 4 que bajé de internet.

El diseño del estante

El diseño del estante

Y esta impresión superó todas mis espectativas; como los compartimentos son casi verticales (tienen una ligera inclinación) y hechos a la medida, se ahorra un montón de espacio, puedo dejar cargando las cosas sin broncas y ya nada se cae ni estorba ni está dando de tumbos.

El buró ordenado

El buró ordenado

Vamos, hasta me gusta cómo se ve el famoso estante; además de la impresión misma, lo único extra que tiene es que le compré patitas de goma que le puse debajo, para que no raye mi buró.

El estante

El estante

Este es el tipo de cosas medianamente útiles que se pueden hacer con una impresora 3D. Lo único que cambiaría (y es posible que tenga que hacerlo al cambiar de celular, si el nuevo modelo no cabe en el compartimento actual), es poder imprimir los distintos compartimentos de forma modular; esta primera versión es monolítica y por lo tanto se tiene que imprimir en una sola pasada, lo que lleva a que tarde muncho tiempo en imprimirse: me llevó 80 horas, o sea más de 3 días.

El estante ordenando

El estante ordenando

Estoy bastante contento de cómo quedó.

Imprimir entrada Imprimir entrada

La impresora

Hace unos meses construí una cajita con múltiples electrónicos dentro para prender vía mi control remoto universal mi viejo subwoofer Harman⧸Kardon que ahora está conectado a mi AVR Denon S760H. Estó incluyó soldar cables y usar un multímetro, que para mucha gente probablemente no signifique mucho; pero que para mí (como egresado de la Facultad de Ciencias) es hagan de cuenta que escuchar las palabras de poder de un dios oscuro y decadente.

Como sea; en general quedó bien, pero la caja donde iba todo junto era una que encontré en Amazon y que, aunque funcional, definitivamente no estaba pensada específicamente para este proyecto. Por definición, cualquier caja que comprara en cualquier lado tendría el mismo problema: serían cajas “genéricas”, no pensadas desde el inicio en mi proyecto.

Para tener una cajita específicamente construida para mi proyecto tenía dos opciones: mandar a hacer una con mis especificaciones (que la verdad no tengo idea de dónde pueda hacer eso uno en México; no dudo que se pueda, nada más yo no sé dónde); o bien hacerla yo mismo.

Mis habilidades manuales son más bien mediocres: soy capaz de hacer cosas generalmente funcionales y resistentes; pero en general quedan feas como escupirle a dios. Además, dadas las herramientas con las que cuento, una caja como la que necesitaba tendría que ser de madera con casi toda certeza.

Así que hice lo único sensato que procedía: me compré una impresora 3D.

Estoy siendo, por supuesto, sarcástico: me compré una impresora 3D porque quería jugar con ella; la cajita fue sólo un pretexto. Y no me engaño al respecto: una impresora 3D para alguien como yo, que no se dedica a diseñar cosas que existan en el espacio de carne, una impresora 3D es básicamente un juguete para adultos.

Aunque también se pueden hacer cosas útiles, como mi cajita.

La cajita

La cajita

Una cosa padre de todo esto es que el diseño lo hice exclusivamente en Linux (no uso Windows desde hace muchos años) y además con puras herramientas de software libre; el modelo lo hice en Blender, con ciertas cosas milimétricas primero haciéndolas en Inkscape y luego extrudiéndolas a 3D; el rebanado (slice) lo hice en UltiMaker Cura; y la impresión la hice en mi nueva impresora 3D, una Creality Ender 3 V2, que al parecer es la que todo mundo compra como primera impresora 3D (o alguno de los modelos similares de Creality).

Como esta cajita estuvo diseñada desde el inicio para este proyecto, los electrónicos dentro quedaron de forma mucho más limpia que mi primera versión, aunque de hecho el espacio disponible disminuyó.

Los electrónicos

Los electrónicos

He estado jugando con mi impresora 3D estos últimos meses, así que planeo ir relatando aquí en qué la he estado usando. Se puede discutir la utilidad (o carencia de la misma) de las cosas que imprimo; pero si lo vemos como un juguete para niños grandes, me he divertido como enano

Imprimir entrada Imprimir entrada

El receptor

Como comenté en varias entradas de semanas anteriores, alambré un receptor de control remoto para despertar y poner a dormir a mi subwoofer, que siendo Harman⧸Kardon mi nuevo AVR Denon no sabe cómo comunicarse con él. La alternativa era tener que ir y manosear al aparatejo para prenderlo y apagarlo como los plebeyos, porque el interruptor de apagado está atrás del subwoofer (que está grandecito).

La solución funcionó exactamente como yo quería, siendo la principal (y única) desventaja que se veía así:

La enredadera

La enredadera

Esto no me molesta demasiado; aunque soy relativamente ordenado, la verdad es que no tengo problemas con vivir más o menos rodeado de un caos, siempre y cuando yo sea el responsable del mismo (y por lo tanto sepa dónde están todas las cosas todo el tiempo… o casi todas las cosas casi todo el tiempo).

Sin embargo esa enredadera de cables tenía varias desventajas prácticas: además de que se veía del nabo era muy sencillo descomponer todo si algo se atoraba con un cable; no es muy seguro en relación a causar un corto si algo de metal se acercaba a los componentes; y además era muy incómodo de mover por cualquier cosa. Por último, tenía dos eliminadores conectados al mismo tiempo: el de 12 voltios para la señal del subwoofer; y uno normal de 5 voltios (como para celular) para el Raspberry Pi.

Así que procedí a comprar varias cosas, comenzando por un eliminador de corriente de 12 voltios y 3 amperes y un módulo reductor de alimentación.

Módulo reductor de alimentación

Módulo reductor de alimentación

La idea era sencilla: conectar el elimnador al relé, como en el diseño original, pero también al reductor de alimentación ajustado a 5.1 voltios y eso conectarlo a un conector micro USB macho.

Conector micro USB macho

Conector micro USB macho

El cual obviamente conecté al Raspberry Pi. Además compré un conector de barril hembra de la misma medida que el eliminador; otro conector hembra jack de 3.5mm; y una cajita de plástico.

Conector de barril hembra

Conector de barril hembra
Conector hembra jack de 3.5mm

Conector hembra jack de 3.5mm
Cajita de plástico

Cajita de plástico

Los conectores hembras eran para la caja, obviamente; la idea era meter todo ahí y hacerle hoyos a la caja para los conectores, de esta forma ahora sólo habría dos cables: el del eliminador de 12 voltios y el jack de 3.5mm. Dentro de la caja el conector de barril se conectaría al reductor de alimentación y al relé; el reductor a mi conector micro USB y ése al Raspberry; y el relé al conector jack. Por último, necesitaría hacer un hoyo extra para el módulo KY-022 de recepción infrarojo y conectar el mismo, junto con el relé, al Raspberry Pi como ya lo tenía antes.

El proyecto fue un éxito, pero sí fue una confirmación para mí de que qué bueno que no estudié igeniería; la mitad de los cables que necesitaba me salieron muy largos; y la otra mitad me salieron muy cortos. Y si lograba soldar algo a la primera en general todo estaba bien; pero si tenía que desoldar el cable y volverlo a intentar, en todos los casos me llevó múltiples intentos. Fueron varias horas bastante frustrantes.

Como sea, sí quedó como yo esperaba; al menos por fuera. Por adentro es una pesadillas de cables y todo está medio apretado, pero nada está suelto (fijé los componentes usando los hoyos para tornillos de la misma caja o con Sugru) y no ha hecho corto circuito… al menos hasta ahora. Y no se ve tan mal.

El receptor infrarojo: frente

El receptor infrarojo: frente
El receptor infrarojo: atrás

El receptor infrarojo: atrás

Hasta le puse una etiqueta porque me compré una impresorcita de etiquetas.

Fue un proyecto divertido; pero probablemente me haya gastado más dinero del que merecía la pena; sí me tomó más esfuerzo del que esperaba (los tutoriales en YouTube hacen pensar que estas cosas son más fáciles de como realmente son); y todo para una cajita que con casi toda certeza deje de usar en unos años cuando por fin expire mi garantía y abra el AVR para que el mismo avise al subwoofer que debe despertar automáticamente.

Como sea, no me arrepiento: me divertí bastante (con todo y frustración) y confirmé que soy programador y que me debo dedicar en general únicamente al software. Aunque no dudo tendré otros proyectos de este estilo en el futuro.

Imprimir entrada Imprimir entrada

Haciendo un control remoto

Hace unas semanas comentaba que como mi nuevo AVR Denon S760H no sabe comunicarse con mi subwoofer Harman⧸Kardon, tuve que hacer un cable hechizo que conecté a un eliminador de corriente de 12 voltios. Terminaba la entrada diciendo entonces que el único problema era que tenía que prender y apagar el subwoofer con mis manitas, como los plebeyos.

Resulta que es un problema con el que no quiero vivir; y tampoco quiero dejar prendido el subwoofer todo el tiempo: aunque el consumo de energía es bajo si no estoy reproduciendo nada, es mucho más que si queda en espera cuando deja de recibir su señal de 12 voltios.

Así que desconecté el AVR y procedí a abrirlo… o al menos ese era el plan, hasta que vi la calcomanía que ominosamente decía que la garantía qudaría anulada si la quitaba. Y no puede abrirse el aparatejo sin quitarla.

Una vez más, no salió tan caro el AVR, pero tampoco es como para anular la garantía a poco más de un mes que lo compré. Así que ponderé mis opciones.

La idea era tan obvia que no sé por qué tardé tanto en llegar a ella: sencillamente tenía hacer que el subwoofer se prendiera y apagara vía control remoto.

Tengo un Raspberry Pi en mi departamento que realmente no está haciendo nada; así que compré un módulo KY-022, que sirve para recibir señales infrarojas (que es lo que usan la mayoría de los controles remotos); compré un relé (no sé a quién se le ocurrió traducir relay así) que aguantara 12 voltios; y me puse a investigar qué había qué hacer.

He de confesar que ya había hecho algo similar antes; en Oaxtepec controlo mis cámaras de seguridad con un Raspberry Pi, y al mismo le conecté un relé también, más pequeño, nada más para poder prender remotamente la computadora que tengo allá. Por alguna razón el wake-on-LAN no le funciona, así que aprendí a programar en el Raspberry Pi los pines GPIO que tiene para controlar un relé que básicamente hace como si presionara el botón de encendido de la computadora.

La idea era la misma para este proyecto; pero en lugar de cerrar un circuito de 5 voltios, iba a cerrar uno de 12 para la señal que necesita mi subwoofer. Sólo necesitaba agregar el soporte para el control remoto.

Originalmente pensé que podía nada más detectar un botón y con eso activar el relé; pero al parecer en Linux no hay manera de darle la vuelta a LIRC. Hace casi 20 años comentaba en el blog que compré un control remoto Streamzap, pero mis aventuras con LIRC comenzaron unos años antes que eso, cuando compré una capturadora de TV que tenía un controlcito remoto que se podía echar a andar con LIRC en Linux.

Tuve que readquirir un poco ese conocimiento, aunque la verdad hoy en día todo es mucho más sencillo; configuré el módulo KY-022 con LIRC, haciendo que utilizara los códigos del control remoto de mi televisión. Inicialmente quería usar los del AVR, pero irrecord sencillamente se negó a capturar los botones del control remoto; y por supuesto no está en la lista de configuraciones para controles remotos en la página de LIRC, ahí en general hay puros controles viejos, dudo que mucha gente esté usando LIRC para usar controles remotoso modernos.

Como sea tampoco fue un problema; quería usar los botones del AVR, porque es en el modo que normalmente está mi control remoto universal Sofabaton U1; pero pues es justo un control remoto programable. En el modo del AVR sencillamente le metí un botón del control de mi televisor.

Me llevó casi todo el domingo, pero por fin quedó; y funciona bastante bien. Lo único es que tengo el Raspberry Pi, el KY-022 y el relé, junto con el cablerío correspondiente, hecho bolas en el mueble de mi tele. Tengo ya una caja donde quiero poner todo, pero lo dejaré para después: hoy me doy por satisfecho con el hecho de que ya no tengo que usar mis manitas para prender y apagar mi subwoofer, como los plebeyos.

O bueno, sí uso las manos; pero no tengo que levantarme y andar tentando la parte detrás del subwoofer para encontrar el interruptor de encendido y apagado.

Imprimir entrada Imprimir entrada

El multímetro

Hace un par de semanas contaba que actualicé mi sistema de sonido a un Denon S760H y que todo jalaba bien.

Resulta que no del todo; el subwoofer Harman⧸Kardon que tengo tiene dos modos de operación: automática y manual. En el modo automático, un cable jack de 3.5mm se conecta del AVR Harman⧸Kardon al subwoofer; el mismo envía una señal del AVR al subwoofer para básicamente avisarle cuándo prenderse y cuándo apagarse. De esta manera uno deja prendido el subwoofer todo el tiempo y el mismo se prende y apaga automáticamente cuando el AVR le avisa.

El modo manual, se supone, deja prendido al subwoofer de manera automática todo el tiempo. Como mi AVR Denon no tiene soporte para esta característica del subwoofer Harman⧸Kardon, puse al mismo en modo manual y así lo comencé a usar; como comenté en su momento, sin ningún problema.

Pero unos días después el estúpido subwoofer comenzó a apagarse y prenderse de manera intermitente, no tengo idea de por qué. Me imagino (no tengo las habilidades necesarias para confirmarlo) que una soldadura del interruptor para poner al subwoofer en modo manual adquirió una grieta en todos los años que lo he estado usando; particularmente porque el subwoofer básicamente lo único que hace es vibrar harto bien ferte.

De hecho abrí el subwoofer; no por primera vez, por cierto: el dial para el volumen del subwoofer cada cierto número de años comienza a generar los clics y pops que este tipo de aparatos suelen adquirir con el tiempo y entonces hay que abrirlo, limpiarlo por dentro y rociar el potenciómetro correspondiente con limpiador de contactos, lo que lo arregla perfectamente hasta que me imagino vuelve a acumular suficiente polvo.

Como sea; abrí el subwoofer y sencillamente no sé lo suficiente de electrónica/electricidad para diagnosticar cuál es el problema con el modo manual, así que nada más como prueba le conecté el AVR Harman⧸Kardon con el cable jack de 3.5mm y el estúpido subwoofer volvió a funcionar. Lo cual no es de extrañar, porque así ha funcionado sin problemas durante años.

Una característica mía: nunca tiro nada. Entonces por ahí tengo el manual de mi AVR Harman⧸Kardon y las bocinas correspondientes; pero sepa la chingada dónde exactamente, porque además muchas cosas las he movido a Oaxtepec porque mi departamento es chiquitito chiquitito. No hay problema; busqué en la red y encontré el manual del subwoofer, donde dice claramente que el famoso cable jack de 3.5mm únicamente debe enviar una señal de 3 a 30 voltios, AC o DC, para activar al subwoofer.

Manual del subwoofer

Manual del subwoofer

Lo cual suena sencillo; en particular, todos los cables USB conectados a un dispositivo anfitrión, incluyendo los cargadores de absolutamente todos los teléfonos celulares en existencia, mandan 5 voltios. El amperaje puede cambiar, pero siempre es al menos 1 amperio y por lo que entendí del manual eso basta, así que agarré un cable USB que no le tengo cariño (he de poseer unos catorce millones de cables USB para este punto en mi vida), un cable jack de 3.5mm que tampoco me importaba, les hice trutrú y muy orgulloso conecté el cable a un cargador USB y al subwoofer.

Y no funcionó.

No me queda claro exactamente por qué, pero entonces decidí hacer algo que probablemente debí hacer desde hacía décadas: me compré un multímetro. El más barato (que no se viera como completa basura) que encontré en Amazon; me costó 167 pesotes.

Hay una razón por la cual estudié Ciencias de la Computación y no Ingeniería de la Computación: todo lo de los fierritos me da una hueva mortal. Les programo lo que sea; pero no soy particularmente bueno (ni me interesa serlo) alambrando cosas.

Sin embargo he alambrado cosas, la más “complicada” siendo mi reproductor automático para rolas de Rock Band; y en múltiples ocasiones sí he necesitado un multímetro, que por lo que explico arriba me había negado a comprar.

Pero en esta ocasión decidí que sí valía la pena, así que desembolsé mis 167 pesotes y al otro día me llegó mi multímetro Truper MUT-830, que aparentemente tiene la misma calidad de construcción que los juguetes Lili Ledy de mi infancia.

Conecté mi cable USB → jack 3.5mm hechizo al cargador USB y medí el voltaje. Y sí, eran 5 voltios; bueno, 4.9, pero muy por encima de los 3 voltios que dice el manual son necesarios.

Así que volví a prender el viejo AVR Harman⧸Kardon, le conecté el cable jack 3.5mm y medí el voltaje. El resultado fue 12 voltios, que por supuesto no tenía nada en mi departamento que generara ese voltaje: todas las fuentes de poder viejitas que tengo están justamente en Oaxtepec.

Ya iba a pedir piezas a Amazon para construirme un cargador hechizo de 12 voltios con conector jack 3.5mm, cuando se me ocurrió que sencillamente podía ir a un Steren: me había hecho de nuevo la prueba PCR para Covid y volví a salir positivo, pero todos los doctores con los que hablé me dijeron que como ya no presento síntomas entonces ya no estoy contagiando a los demás, así que me puse mi tapabocas y fui al Steren de División del Norte, que me queda cerca.

Compré un eliminador de 12 voltios y un conector jack 3.5mm mono, con los que procedí a hacer de nuevo un cable hechizo, aunque medianamente bien: soldé las conexiones de los cables, les puse sojitas de las que se contraen con el calor y antes de conectarlo verifiqué con mi multímetro chafa que la chingadera estuviera enviando 12 voltios, cosa que hace.

Y por fin funcionó de nuevo sin problemas mi estúpido subwoofer. Podría tratar de diagnosticar con cuidado qué pasa con el modo manual, pero realmente eso ya no me interesa: lo que quiero es ver si puedo hacer algo con mi AVR Denon para que el mismo envíe los 12 voltios a mi subwoofer cuando se prenda, como hacía el Harman⧸Kardon.

Sin embargo, dejaré eso para después: mi AVR está nuevo y no quiero abrirlo al menos hasta que expire la garantía, por no decir de estarle haciendo modificaciones, especialmente si soy yo el que las haga; como debe quedar claro sencillamente no soy bueno para estas pendejadas. Por ahora prenderé y apagaré el subwoofer con mis manitas como plebeyo común y corriente.

Pero estoy muy contento de haber hecho mi cable hechizo; me quemé un par de veces soldándolo, porque (repito) apesto para este tipo de cosas. Pero al final funcionó y la verdad estuvo divertido.

Imprimir entrada Imprimir entrada

4K

Hace ocho años compré mi AVR Harman⧸Kardon, como bien tuve a comentar en el blog en su momento.

En esos ocho años no he tenido quejas realmente con el mismo; mi departamento parece que se va a derrumbar cada vez que subo el volumen y lo utilizo con mi PlayStation 3, mi PlayStation 4, mi PlayStation 5 y mi media center. Lo único que tal vez me molesta un poco es que el control remoto no es “normal”; no me queda del todo claro exactamente qué hace raro, pero no funciona perfectamente bien con mi control universal Sofa Baton U1.

Tampoco es que no funcione; nada más es lento cuando bajo el volumen. Eso es todo; esa es la más grande desventaja de mi AVR Harman⧸Kardon… junto con el hecho de que lo compre hace ocho años.

La edad del mismo implica que sencillamente no tiene cosas que se han vuelto comunes en todo este tiempo; en particular, no tiene Bluetooth y yo suelo escuchar música desde mi celular con Bluetooth todo el tiempo. Tampoco es tan grave; tengo otras dos bocinas Bluetooth que alivian este problema; una de ellas específicamente para cuando me baño, aunque ciertamente no se oyen tan bien como el AVR.

Otra de las cosas que carece mi AVR Harman⧸Kardon es el hecho de que no tiene soporte para 4K, por el simple hecho de que 4K no se había generalizado para motivos prácticos hace ocho años.

En su momento no era tan grave; mi televisión era mi vieja Samsung de 46 pulgadas y sólo tenía un PlayStation 3 y mi media center; todos configurados en FullHD (1080p), aunque en los hechos casi todos los juegos de PlayStation 3 jalaban a 720p.

En 2016 cambié mi tele a otra Samsung, una UN55JU6100; 55 pulgadas y 120Hz, con todas las cosas que tienen las televisiones inteligentes modernas y que yo no uso, porque para eso suelo usar mis consolas. La tele es 4K, pero mi Harman⧸Kardon era FullHD, además de que todo lo que podía usar para ver videos a lo más soportaba 1080p también, incluyendo mi PlayStation 4 que compré en 2015.

Este año de cumpleaños me regalé un PlayStation 5 y por primera vez comencé a juguetear con la idea de actualizar mi fiel Harman⧸Kardon. Nada del otro mundo; en particular mantener mi sistema de bocionas y subwoofer 5.1 y sólo cambiar el AVR mismo, pero a uno que tuviera Bluetooth y soporte para 4K. Poco después del PS5, me compré un PlayStation 4 Pro usado, por razones que explicaré después; como el mismo también soporta 4K (a veces, haciendo medio trampa), decidí que sí debía actualizar a un AVR 4K.

Así que esta navidad decidí regalarme un AVR Denon S760H; el mismo de hecho soporta 8K, tratando yo de prevenir hacia el futuro.

En la semana hice el cambio de AVRs y fue relativamente sencillo. Aproveché para poner todos los cables de mis bocinas con banana plugs, cambiar los cables de mis aparatos principales a HDMI 2.1 (o sea, 8K a 120Hz) y limpiar detrás del mueble donde están todos mis electrónicos de la sala, que me parece una civilización ya se estaba desarrollando ahí: siento que necesito un machete para navegar el cablerío que se ha formado a lo largo de los años. El AVR Denon tiene un micrófono que uno pone en distintas partes de la sala y que se supone ayuda a calibrar las bocinas para que suenen “perfecto”.

Ahora; yo no sé mucho de sistemas de sonido, pero tenía entendido que Harman⧸Kardon es mejor que Denon. La verdad no tengo ni puta idea; para mí suena exactamente igual y mi departament todavía parece que se va a derrumbar si subo mucho el sonido. Las bocinas y el subwoofer siguen siendo Harman⧸Kardon, entonces a lo mejor eso explica que no note una diferencia.

Como sea, configuré mi PlayStation 5 y mi PlayStation 4 Pro para que funcionen en 4K y estuve juguando en ambos, en particular God of War Ragnarök y Final Fantasy VII Remake.

Y tampoco noto una puta diferencia entre FullHD y 4K.

Quiero decir, si me acerco mucho a mi televisión y trato de discernir los pixeles individuales, sí hay una diferencia, aunque en mi opinión es pequeña. Pero jugando aventado en mi sofá como Marx quería que uno jugara videojuegos, la verdad es que la diferencia es mínima si no es que nula. Trataré de ver una película en 4K luego, pero esa es la otra bronca; no tengo contenido en 4K (no voy a aumentar mi suscripción a Netflix, definitivamente). Y la verdad no creo que haya tanta diferencia.

Cuando comencé a consumir contenido en alta definición, me costaba notar la diferencia entre 720p y 1080p; tengo que ver uno inmediatamente después del otro para notarla. Entre 1080p y 4K la verdad me cuesta todavía más, si es que acaso estoy dispuesto a admitir que existe.

Mis monitores de escritorio suelen ser 1440p hoy en día; y la verdad tampoco le veo mucha diferencia con 1080p, aunque no juego cosas muy movidas con ellos, siendo justo; y ciertamente la mayor ventaja de 1440p es que uno tiene más espacio en el escritorio, no que se vea necesariamente “mejor”.

No lo sé; a lo mejor nada más ya estoy viejo y mi vista cansada sencillamente no puede apreciar la sutileza entre FullHD y 4K; o tal vez también le hacen mucho a la mamada todos los que han estado promoviendo más pixeles durante los últimos años. Probablemente sea una combinación entre ambos.

Lo que sí es que, a menos que sencillamente sea inevitable en el futuro, nunca voy a comprar una televisión 8K. Creo que para motivos prácticos ya llegamos al límite de lo que es tener alta resolución y para mí la cota superior es 4K, aunque la verdad estaba bastante contento con FullHD.

No me arrepiento de haber cambiado de AVR; dado que sólo cambié el aparato y no las bocinas o subwoofer, junto con ofertas de fin de año y otras cosas no salió tan caro; está padre que ya tengo Bluetooth en mi sistema principal de sonido; ahora cuento con 6 entradas HDMI en lugar de 4 (3 con soporte para 8K y las otras 3 con soporte para 4K); y si algún día pongo esta madre en una sala más grande, tiene soporte para una configuración de bocinas y subwoofer 7.2, para lo que importe. Ah, y el control remoto funciona perfecto con mi Sofa Baton U1, así que esa es otra ventaja.

Pero la verdad el cambio importante en mi vida fue cuando comencé a consumir cosas en alta resolución; y ahí incluyo 720p. FullHD funciona perfecto para casi absolutamente todo; 4K está bien, pero no es una gran diferencia; y 8K definitivamente me parece que son masturbaciones mentales. Me quedo en 4K; y creo que bien pude haberme quedado en FullHD sin perder demasiado.

Imprimir entrada Imprimir entrada

Graphite

Después de que el año pasado actualizara la máquina de mi oficina, decidí hacer lo mismo con la máquina de mi casa, que tenía casi cuatro años de haberla actualizado. Resultó esto en la máquina más poderosa que he armado hasta ahora (aunque sigo sin tener enfriamiento líquido; para mí no vale la pena el riesgo), pero aún le faltan componentes; quiero un nuevo teclado y tal vez un nuevo ratón. Pero todo el gabinete y el monitor ya han sido actualizados; y las bocinas Logitech X-540 que tengo desde hace años (y que ya les reparé el subwoofer una vez) siguen funcionando bien.

La nueva máquina es una maravilla; pero no es de lo que quiero hablar en esta entrada. De lo que quiero hablar es de Centurion.

Como ya he comentado anteriormente, mis máquinas cambian de encarnación pero no de alma; generalmente sólo transfiero el software del viejo al nuevo hardware y la computadora continúa funcionando igual en todos los aspectos, excepto siendo un poco más rápida. Así fue con Centurion desde que la instalé por primera vez, hace casi quince años en 2006; el nombre no fue porque estuviera viendo entonces Battlestar Galactica (aunque no estorbó): fue porque el gabinete que compré entonces era un Cooler Master Centurion 5, que en su momento era impresionante, pero que hoy en día es casi enternecedor.

Ese gabinete albergó una 4 o 5 encarnaciones de Centurion, en general sin dar ningún problema. No sólo el gabinete; la fuente de poder, un Real Power de 550W funcionó durante todo ese tiempo. Nunca me quejé del gabinete o fuente de poder; pero la última vez que actualicé Centurion, descubrí la nueva conexión para enchufes USB 3 y que mi fiel gabinete ya no soportaba. Conseguí un adaptador: no podía aprovechar los enchufes USB 3, pero al menos podía usar USB 2 con ellos; y ahí fue cuando decidí que la siguiente vez por fin actualizaría mi gabinete.

Y eso hice; para esta nueva computadora, compré un gabinete Corsair Graphite 780T. La cosa es un monstruo más alto, ancho y profundo que el gabinete Centurion y como dos veces más pesado.

Después de armar la máquina y transferir el alma de Centurio a su nueva encarnación, al iniciar Linux vi que el nombre de la máquina era todavía Centurion… y sentí que eso estaba mal. Creo que el nombre de Centurion debe pertenecer a la computadora que viva en ese fiel gabinete, que planeo seguir utilizando para servidores y cosas por el estilo hasta que se haga pedazos (que dado lo resistente que es, dudo que ocurra). Así que cambié el nombre de mi máquina de Centurion a Graphite, porque evidentemente no tengo imaginación.

Así que ahora mi nueva computadora (que es la misma instalación que he utilizado desde que estudiaba en la maestría) se llama Graphite y el gabinete Centurion irá a vivir en otro lado próximamente. Ese gabinete me fue fiel y no me falló durante más de una década; espero que su sucesor esté a su altura… que más le vale, porque salió carísimo.

Imprimir entrada Imprimir entrada

La red privada virtual

Hace años, Enrique y yo configuramos una computadora de la Facultad de Ciencias para que sirviera como servidor de una VPN (Virtual Private Network, red privada virtual), en gran medida para poder jugar videojuegos en línea cada quien en su casa como si estuviéramos en una LAN. Lo interesante por supuesto fue echarla a andar; la usamos creo que una vez y nunca más lo volvimos a intentar, porque justo en ese momento llegábamos a un punto donde no teníamos mucho tiempo para jugar, mucho menos en línea. Usamos OpenVPN, que desde entonces era el estándar a usar para estas cosas, especialmente en Linux.

Cuando entré a la Facultad como profesor de tiempo completo, de las primeras cosas que hice en Aztlán fue configurar OpenVPN. En su momento lo hice básicamente para poder navegar desde mi casa con una dirección IP de la UNAM; varias revistas de investigación y bibliotecas en el mundo tienen un convenio con la UNAM para poder descargar artículos y consultar libros si uno se conecta con una dirección IP de la UNAM. Fuera de eso (que lo hice pocas veces) no la usé mucho durante mucho tiempo.

Ahora que tengo mi nueva encarnación de Tenochtitlán, sin embargo, sí quería poder conectarme rápidamente a ella desde cualquier lugar; como la computadora está detrás de Aztlán, normalmente tengo que conectarme a ella primero y de ahí brincar a Tenochtitlán. Lo que hice fue agregar a Tenochtitlán a la VPN y luego configurar mi laptop y mi computadora de escritorio para que automáticamente se conecten a la VPN.

De esta manera casi todas mis computadoras están en una misma red privada virtual, por lo que se pueden ver entre ellas de manera automática y todo funciona como uno esperaría que funcionara. Pero entonces me pregunté si podría agregar mi celular y mi tableta a la VPN; y por supuesto es posible.

Con mis dispositivos móviles no tengo la VPN activada todo el tiempo, porque OpenVPN cifra todo el tráfico que viaja a través de ella; y eso se traduce en que la batería se gaste mucho más rápido que lo normal. Sin embargo es relativamente sencillo activarla y entonces ahora sí todas mis computadoras con Linux pueden estar en mi VPN.

Ahora, podría ver si es posible poner a mis PlayStations en la VPN; pero dado que mis consolas básicamente sólo se conectan a la PSN, y que con casi toda certeza no hay aplicación de OpenVPN en la PlayStation Store, no le veo mucho sentido.

Imprimir entrada Imprimir entrada