GitLab

En 2005, Linus Torvalds (el creador de Linux) se tomó unas semanas para trabajar en un sistema de control de versiones que pudiera reemplazar a BitKeeper, que por razones políticas se había vuelto imposible seguir usando (era propietario, no software libre como Linux mismo).

Ahí inició la historia de Git, el sistema de control de versiones más existoso que jamás haya existido, bajo cualquier métrica que uno se interese en tratar de medirlo. Como programador, Git es de las herramientas más poderosas que yo haya usado; también es de las menos amigables de usar, pero eso es otra historia. Mis documentos están en control de versiones desde 2004, usando Subversion; poco después de que Git tomara control del universo los moví al mismo y así los he tenido durante años. Es de esta manera que mantengo el trabajo que hago en mi oficina, mi casa y mi laptop sincronizado.

Cuando entré como profesor de tiempo completo a la Facultad de Ciencias y me ofrecieron como voluntario para coordinar el curso propedéutico que le damos a los estudiantes de nuevo ingreso, de las cosas que decidí que quería hacer era darles Git en dicho curso. De verdad, como programador es de las herramientas más útiles que existen; es por eso que sitios como GitHub son tan exitosos (y por lo que Microsoft los compró por $7,500,000,000 USD). Ofrecerle dicha herramienta a nuestros estudiantes es de lo mejor que se nos ha ocurrido, me parece.

Por el mismo motivo, mis cursos en la Facultad utilizan Git para darle a los estudiantes sus prácticas; y de hecho los estudiantes entregan sus prácticas con archivos diferenciales (diff) contra la rama maestra.

Para poder hacer todo esto, me facilitaba la vida tener un sistema parecido a GitHub, pero que yo pudiera controlar; que es básicamente la razón de GitLab. Después de no pocos quebraderos de cabeza, instalé una instancia de GitLab en Aztlán, donde tengo mis cursos, mis proyectos personales e incluso algunos proyectos grupales con otros profesores de la Facultad. Como yo controlo por completo el sistema, puedo tener grupos y proyectos públicos o privados, como yo quiera.

GitLab es una maravilla, sin duda alguna. Pero también es una pesadilla mantenerlo actualizado, especialmente en una distribución tan anárquica como lo es Gento, que es lo que uso en todas mis computadoras. Gentoo en particular es terrible para mantener aplicaciones web; es por esto que mi instancia de WordPress la he mantenido a pie toda la vida.

Como sea; GitLab es una pesadilla de mantener actualizado porque está escrito sobre Ruby on Rails, que como su nombre indica utiliza Ruby, que usa “gemas” para mantener sus dependencias. El problema es que es relativamente sencillo que una gema de Ruby ya esté instalada en el sistema y que las versiones necesarias no concuerden, lo que resulta en que todo se eche a perder. Si actualicé 4 veces mi instancia de GitLab en Aztlán en el par de años que la he tenido, son muchas. Esto me molestaba bastante, porque soy muy paranoico con tener Aztlán actualizada y segura; GitLab lo hacía bastante más difícil de lo normal.

Paralelamente a esto, en el último par de años me he estado enamorando de Flatpak. No sólo me ha permitido utilizar versiones actualizadas de varios programas que utilizo (Inkscape, GNOME Builder, Pitivi), porque luego Gentoo se tarda en estabilizar dichas versiones; también me ha permitido por fin hacer fácilmente algo que siempre había querido hacer en Linux: jugar juegos AAA de manera legal y sencilla.

Gracias a Flatpak, pude instalar sin ningún tipo de problemas Steam y ahora puedo jugar Cities: Skylines en mi computadora sin tener que iniciar Windows. De hecho, jala mejor que en Windows; está increíble y no tengo que preocuparme de dependencias y cosas así, porque justo Flatpak utilizar contenedores para aislar los procesos de sus aplicaciones.

Toda la idea de los contenedores es una maravilla, evolucionando la tecnología de máquinas virtuales que se popularizó a inicios de siglo. Un contenedor no es una máquina virtual; como su nombre indica, sólo contiene un ambiente de trabajo, compartiendo el mismo kernel con el que corra la computadora anfitriona del contenedor. Esto se traduce en casi todas las ventajas de las máquinas virtuales, pero corriendo a una velocidad más que decente. Y pues justamente Flatpak le robó la idea a Docker, que viene utilizando contenedores en servidores desde hace múltiples años.

Lento como soy, no se me había ocurrido que podía correr GitLab en una imagen de Docker, así que hace unos días decidí buscar si era posible. No sólo es posible; el mismo proyecto de GitLab ofrece imágenes para Docker fácilmente utilizables.

Ahora, si quisiera correr GitLab como aplicación única de un dominio (por ejemplo, https://gitlab.fciencias.unam.mx), la imagen jalaría casi sin necesidad de hacerle ningún cambio. Por supuesto, no es mi caso donde tiene que correr desde un URL relativo (justo https://aztlan.fciencias.unam.mx/gitlab); pero más grave que esto, es que yo ya tengo un servidor de HTTP (Apache), que además sirve a este blog y otras aplicaciones Web.

Esto resultó en que tuviera que hacerle trutrú al contenedor de GitLab, que por suerte lo permite, para poder correrlo en un URL relativo y además montarse de mi instancia de Apache. Me llevó varios días estarle probando a las opciones del contenedor, pero al final lo logré y entonces me puse a ver cómo migrar mi instancia de GitLab a la del contenedor; dícese la base de datos, los repositorios, etc. Eso también fue un relajo, porque originalmente tenía mi instancia de GitLab con MySQL (es lo que usa WordPress para el Pensadero) y el contenedor usa PostgreSQL; así que tuve que primero migrar de MySQL a PostgreSQL 10; luego tratar de migrar de mi instancia al contenedor; luego echarlo para atrás usando mis respaldos porque el contenedor usa PostgreSQL 9; volver a migrar de MySQL pero ahora a PostgreSQL 9; migrar al contenedor; y echarme un mezcal porque ya estaba harto de todo el proceso.

Sin embargo me parece que valió la pena; he actualizado como 10 veces el contenedor desde que migré mi instancia de GitLab al mismo, el proceso es casi trivial (aunque me parece que podría ser todavía más fácil). En cuanto mi instancia me dice que debo actualizar, detengo el servicio (que envuelvo en una unidad de systemd, usando docker-compose para controlarlo), borro el viejo contenedor e imagen, bajo la nueva imagen, recreo el contendor y reinicio el servicio; todo funciona sin ningún problema.

Me gustó tanto que estoy viendo qué otras cosas puedo mover a contenedores; por ejemplo mi instancia de WordPress para el blog; o mi lector de RSS (que bien podría cambiar, porque no me gusta tanto el que uso). Ya veré, en mi extensísimo tiempo libre.

Pero esta nueva manera de manejar aplicaciones, tanto en el escritorio como en servidores, me parece que es sin duda alguna el futuro para aplicaciones en Linux. Si siguen mejorando (en particular con Flatpak para aplicaciones de escritorio), es posible que Linux ahora sí comience a ser usado por muchísimas más personas; aunque la verdad ya han habido múltiples esquemas que se supone eso iban a permitir.

Imprimir entrada Imprimir entrada

RAID

Alrededor de la fecha en que publiqué mi entrada de Tenochtitlán, Aztlán comenzó a actuar de manera extraña. Me metí a ver qué pasaba (era fin de semana, así que no estba en CU) y el sistema de archivos estaba en modo de sólo lectura. Rezándole a dioses oscuros decidí reiniciarla; y a los dioses oscuros les valió madre, porque no regresó a la vida.

Al otro lunes llegué con mis desarmadores y un lector USB 3 de discos duros SATA, porque supuse que un disco duro había pasado a mejor vida. Y efectivamente eso fue lo que pasó; después de que lidié con todo lo que voy a platicar en esta entrada, verifiqué en la red y resulta que el disco duro (de 500 gigabytes) es del 2009, así que tenía 9 años funcionando. Honestamente no recuerdo si me lo dieron con mi computadora viejita al llegar a la Facultad o si lo traje de mi casa. Ambas opciones son posibles.

Como sea; el disco estaba en una situación precaria: mostraba que tenía una partición, pero la misma ni siquiera podía identificarse a sí misma. Eventualmente pude recuperar la información del disco usando ddrescue, excepto por algunos mensajes de la bitácora, que probablemente fue lo que desencadenó el problema: el disco comenzó a dar problemas; lo que causó la generación de múltiples mensajes de error; que la bitácora trató fielmente de guardar; lo que hizo que diera más problemas; etc. El disco duro justo contenía la partición con /var donde viven los mensajes de la bitácora o log (en /var/log).

Un par de semanas antes del incidente tengo 1 mensaje de ata1: SError: { PHYRdyChg 10B8B DevExch } entre otros; una semana después tendría 37; y el día que murió el disco duro tenía 305.

Aztlán de hecho tiene una cantidad decente de disco duro, así que moví todo el contenido de esa partición al disco duro principal de la máquina y la reviví; una vez que recuperé dicha información, obviamente (es una maravilla ddrescue, sólo entendiblemente lento). Aztlán quedó algo apretada en espacio, pero funcional, así que pedí un disco duro de 2 terabytes a Amazon, que en cuanto llegó lo instalé y todo regresó a la normalidad.

Sólo quedé algo ciscado; en /var también están las bases de datos de mi instancia de GitLab (¡y del Pensadero!), así que pedí otro disco duro de 2 terabytes a Amazon y se me ocurrió ir haciendo en Tenochtitlán un espejo diario de básicamente todo Aztlán. Pero Enrique me dijo que por qué mejor no hacía un RAID, que debo admitir ni siquiera se me había ocurrido.

El nuevo disco duro entonces lo puse en Tenochtitlán, donde procedí a crear un RAID 1 con los dos discos de 2 terabytes que tienen. En los hechos entonces sigo teniendo el mismo espacio; pero en cuanto agregue otro disco duro al RAID puedo convertirlo a nivel 5 y entonces tendré 4 terabytes distribuidos entre 3 discos de 2 terabytes. El tercer disco provee redundancia; el RAID puede perder completamente uno de los tres discos (o de los 2, mientras lo mantenga en nivel 1) y en cuanto lo reemplace puede comenzar a regresar a la normalidad sin en ningún momento perder datos o tiempo arriba.

Y puedo seguir agregando discos hasta que me harte.

Sobre el RAID 1 tengo un volumen lógico (LVM) para tener dos particiones; la memoria virtual (swap) de Tenochtitlán la tengo ahí, que es medio ridículo, porque tengo tanta memoria RAM que la virtual literalmente nunca ha sido usada, pero pues siempre he tenido memoria virtual y con tanto disco duro no veo por qué escamotearlo. El resto del volumen está para varias cosas en Tenochtitlán, pero básicamente es para respaldos. Comparto vía NFS un directorio del RAID con Aztlán para que diario haga un respaldo de toda la información importante de ella; y por supuesto también respaldo a Tenochtitlán.

Tener el LVM encima del RAID me permite rápidamente cambiar el tamaño de las particiones, que supongo será necesario cuando comience a crecer el tamaño del RAID (la próxima semana, con casi toda certeza). Y el RAID me permite no tener que preocuparme de que alguno de los discos duros de mis máquinas se muera (que inevitablemente volverá a ocurrir). Si se muere un disco duro del RAID sólo lo tengo que poner en modo de sólo lectura mientras reemplazo el disco duro dañado; si se muere alguno otro de los discos duros de alguna de mis máquinas en CU, únicamente tengo que cambiarlo y restaurar el respaldo. Cabe la posibilidad de que pierda hasta 24 horas de información; pero lo que más cambio en Tenochtitlán son mis documentos y esos los tengo en Git, que actualizo casi religiosamente y el servidor está en la instancia de GitLab de Aztlán. En Aztlán podría perder un par de entradas en el blog, pero como no escribo diaro dudo mucho que eso ocurra.

Me está gustando la configuración; cuando era estudiante pobre ni siquiera me pasaba por la cabeza el sacrificar todo un disco duro para poder utilizar RAID; hoy en día me importan mucho más mis datos que el costo de un disco duro, así que tiene todo el sentido del mundo hacerlo. Tanto es así que estoy seriamente pensando en hacer lo mismo en mi casa; armar una computadora especial para que funcione como NAS exportando vía NFS directorios a mis otras computadoras. Podría reemplazar a Atom, mi servidorcito casero (o mejor dicho; sería la nueva encarnación de Atom) y a mí media center; o podría tener un media center chiquitito que al iniciar montara los directorios con videos y demás del NAS.

Pero eso será a largo plazo (y con una inversión de dinero no despreciable, si lo hago como se me antoja); por ahora al menos mis datos en la UNAM (que incluye información de cursos y demás) están protegidos.

A menos que se queme mi cubículo, por supuesto.

Imprimir entrada Imprimir entrada

Tenochtitlán

Estaba esperando un hecho específico para escribir de la nueva encarnación de Tenochtitlán, pero está tardando más de lo que yo esperaba, así que mejor lo hago de una vez.

Tenochtitlán es la máquina de escritorio que utilizo en mi cubículo de la Facultad de Ciencias. Aztlán es el servidor, es la máquina que vive con una IP pública; de hecho está en la LAN del Departamento de Matemáticas, pero los de cómputo de la Facultad redirigen el tráfico que llega a la IP pública a la IP interna que tiene Aztlán en dicha LAN.

Aztlán tiene dos tarjetas de red: una que usa la IP de la LAN interna del departamento (y a la que le llega el tráfico de la IP pública); y otra que la conecto a un conmutador (swticher) que a su vez es un punto de acceso inalámbrico en mi cubículo. El punto de acceso está detrás de Aztlán para que el tráfico de mi red interna no contamine el tráfico de la LAN del departamento.

Del punto de acceso se cuelgan todos mis dispositivos personales; mi impresora, mi laptop, mi teléfono celular… y por supuesto Tenochtitlán, que como ya dije es mi computadora de escritorio.

Red del cubículo

Red del cubículo

Se llama Tenochtitlán porque le sigue a Aztlán.

Como sea; la historia de Tenochtitlán es interesante. Nada más debo enfatizar que ya tiene años que cuando hablo de computadoras, no me refiero al hardware; me refiero a la instalación de Linux que vive en esa computadora. Cuando actualizo mis equipos nada más muevo dichas instalaciones del hardware viejo al hardware nuevo; para mí (y en los hechos) la computadora sigue siendo la misma aunque tenga hardware completamente distinto.

En otras palabras, lo que me importa es el alma, no la carne.

Cuando llegué a mi cubículo, me dieron una computadora viejísima, una Dell Inspiron del año del caldo. Estoy casi seguro que tenía un procesador Celeron y como 512 megabytes de memoria; pero no lo puedo garantizar porque nunca usé esa máquina, realmente. Hacía poco que había actualizado la computadora de mi casa (a un Core i7-4790 a 3.60GHz en una placa madre Gigabyte Z97X-SLI-CF), así que llevé la placa madre, procesador y memoria del hardware viejo en mi casa (un Core 2 Quad con 4 Gb de memoria) y se los puse al gabinete de la Dell Inspiron. La placa madre, procesador y memoria de la Dell Inspiron los guardé en una caja en mi cubículo y me olvidé de ellos.

Esa fue la primera encarnación de Tenochtitlán, que debí usar como 15 minutos, porque me harté de la velocidad glacial (comparada a la de mi casa). Así que compré un clon un poco más modesto de la computadora que tenía en mi casa; placa madre muy parecida (un poquito peor, una Gigabyte H97-Gaming 3), procesor muy parecido (un poquito más lento, un Core i7-4770 a 3.40GHz) y exactamente la misma memoria, 16Gb. Tenía dinero de haber estado trabajando en el INE.

También compré el gabinete más barato que pude encontrar y llevé todo esto a mi cubículo, reportándolo propiamente. Ya corriendo la máquina en mi cubículo, procedí a transplantar Tenochtitlán a su segunda encarnación; y el hardware viejo de Tenochtitlán (el Core 2 Quad) se convirtió en Aztlán, que también fue de las razones para hacer todos esos movimientos.

El monitor, teclado y ratón eran los que me habían dado junto con la Dell Inspiron, aunque también llevé un ratón óptico viejo que tenía en mi casa, porque el de la Dell era de los que todavía tenía bola.

Así funcionaron las cosas un par de años, hasta que pedí un proyecto y del mismo saqué dinero para actualizar mi computadora de escritorio. Lo cual está muy bien, no tanto por mi máquina de escritorio, sino por Aztlán; entre mi blog, mi lector RSS, mi instancia de GitLab y varias otras cosas, la pobre máquina (con nada más 4Gb de memoria) ya estaba en las últimas.

Como en mi proyecto pedí un presupuesto razonablemente alto para mi computadora, esto me permitió comprarme una máquina bastante buena.

Tiene un procesador Core i7-7700k a 4.2Ghz, una placa madre Asus Sabertooth Z170 Mark 1 y 32Gb de memoria Corsair Vengeance a 3000Mhz de velocidad. Además tiene un disipador de calor Cooler Master Evo 212, un disco duro M.2 NVME Kingston SKC1000 de 240Gb para el sistema operativo, un disco de estado sólido Kingston 400 de 240Gb para mi ${HOME} y un disco de duro mecánico híbrido SeaGate Firecuda ST2000DX002 de 2 Tb para datos. Todo esto está dentro de un gabinete Cooler Master MasterCase Pro 5 con seis ventiladores de 120 milímetros (dos de ellos abrazando al disipador) y uno extra de 140 milímetros. Por último, pedí un ratón HP OMEN X9000 y un teclado HyperX Alloy FPS Cherry MX Red, junto a un monitor LG ultrawide (21:9 en lugar de 16:9) de 29 pulgadas; curvo, por supuesto. Todo está alimentado por una fuente de poder Thermaltake Smart M de 850 watts, semi modular. Ah, y unas bocinas Amazon Basics A100, nada más porque las bocinas USB que usaba antes eran realmente una tarjeta de sonido USB. Esto causaba que no funcionara nada más conectar y desconectar mis audífonos de la computadora; tenía que cambiar de tarjeta de sonido en mis aplicaciones, lo cual era muy molesto.

Si saben el estado actual del equipo de cómputo para escritorio moderno, exceptuando por la falta de una tarjeta de video discreta de alto nivel, acabo de describir una buena (aunque no excelente) plataforma para un gamer. Esto no es accidental; desde hace ya varios años resulta que el mejor equipo de cómputo para trabajar suele ser también el mejor equipo para jugar. Lo único malo es que todo incluye iluminación RGB, que desde mi punto de vista es de tan buen gusto como los microbuses con luces de neón.

Y hubiera comprado también una tarjeta de video discreta; nada del otro mundo, algo como una Nvidia GTX 1050 Ti, pero gracias a los mineros de criptomonedas el precio de los GPUs se ha disparado al cielo (aunque al parecer está a punto de caer de nuevo). Y realmente no la necesito; es una máquina para trabajar, no para jugar: esa computadora nunca va a tener Windows instalado.

La computadora llegó en piezas y la armé yo, porque he venido armando mis propias computadoras (excepto laptops) desde hace casi veinte años. Me llevó varios días por algunos inconvenientes que no preví; el procesador venía sin disipador (hasta ahora siempre había usado el disipador incluido en los procesadores Intel), así que tuve que ir de emergencia a comprar el disipador Cooler Master. Luego no lograba que la placa madre llegara a POST, porque el procesador no estaba soportado; tuve que actualizar el BIOS vía USB, pero además determinar que ese era el problema me llevó horas. Y por último decidí quedarme con el monitor ViewSonic de 24 pulgadas al que nos actualizaron a todos los profesores (me parece) en el departamento. Lo puse en modo vertical al lado del monitor ultra ancho y está excelente para escribir; puedo tener el PDF de salida de \LaTeX en ese monitor, lo que me permite ver una hoja en tamaño mucho mayor al natural.

Doble monitor

Doble monitor

Pero eso significó comprar un brazo para el segundo monitor. Por suerte, todos los extras también están cubiertos por el presupuesto de mi proyecto.

Una vez terminada la tercera y última (por ahora) encarnación de Tenochtitlán, procedí a reencarnar Aztlán en el viejo hardware de la primera, lo cual fue mucho más sencillo, pero aproveché que mi cubículo ya parecía zona de guerra para abrir la computadora y darle una buena limpiada. Por último, saqué mi Core 2 Quad del gabinete de la Dell Inspiron y le regresé su hardware original, que devolví al departamento.

Esta combinación de gabinete, fuente de poder y hardware en general me permitían hacer por primera vez algo a lo que nunca me he aventado; enfríar la computadora con líquido en lugar de aire. Pero la verdad, aunque un AIO sí me animaría a ponerlo (digamos, el Cooler Master Nepton 240m), cualquier otra cosa me daría terror que hubiera fugas: a veces pasan semanas sin que esté en mi cubículo (por ejemplo en vacaciones) y no podría ir de inmediato a reparar una fuga de líquido en mi computadora. Además, no planeo aumentar la velocidad de reloj (overclock) del CPU (aunque sí activé el turbo para que llegue a 4.5Ghz), no tengo GPU y con 7 ventiladores (dos al frente, dos abrazando al CPU, dos arriba y uno grande detrás), el CPU se mantiene bastante fresco, quedándose a no más de 46° cuando compilo Chromium con todos los núcleos utilizándose al 100%.

La nueva encarnación de Tenochtitlán es notablemente más rápida que la anterior (en particular el disco duro NVME es ridículamente rápido) y la verdad se ve bastante impresionante la configuración con 2 monitores, uno de ellos vertical. Es una buena máquina y espero que me dure al menos unos cinco años.

Imprimir entrada Imprimir entrada

Desde afuera

En 1985, cuando el temblor, un tío mío se encontraba estudiando en el extranjero. Recuerdo cuando nos contó cómo fue el obtener la lista de fallecidos (que me parece nunca quedaron claramente definidas) y el buscar en ellas el nombre de familiares y amigos. La verdad nunca pasó por mi cabeza que el primer sismo de magnitud semejante al de 1985 ocurriría justamente conmigo estando fuera del país, viendo las cosas desde afuera.

Por supuesto todo es mucho más sencillo ahora; mi hermano me mandó un mensaje casi de inmediato para preguntarme si estaba bien (al tarado se le olvidó que no estaba en el país). De ahí fue cosa de mandar mensajes preguntando a todo mundo informes; como casi todos mis seres queridos viven en la Ciudad de México, rápidamente se fue armando la imagen de que todos estaban bien, y de que las cosas eran completamente distintas a 1985.

Al menos en la Ciudad.

De hecho la rápida recopilación de datos alrededor de La Majestuosa me hizo respirar con alivio algo adelantado; los reportes de Oaxaca, Chiapas y similares tardaron en llegarme. No ayuda que no estoy ni en Facebook ni en Twitter. Por un segundo llegué a pensar si valía la pena dar mi brazo a torcer después de tantos años, pero rápidamente decidí que no. ¿De qué podría servirme enterarme más rápido de una desgracia? Incluso si pudiera adelantar mi vuelo de regreso (dudoso, dada la temporada), ¿qué bien podría hacer el que volviera antes?

Como sea, y sin disminuir de ninguna manera la tragedia de las casi 100 personas que murieron, la verdad es que o fuimos endiabladamente suertudos, o de algo sirvió la tragedia del 85 para evitar que se repitiera a esa magnitud. Dados los relatos y fotos y videos que vi de los edificios meneándose como borrachos fuera de Garibaldi, creo que es justo decir que al menos de algo sirvieron todas las regulaciones que se implementaron al menos en la Ciudad de México. Que a pesar de la mentada corrupción e incompetencia que según existen en mi Ciudad, lo cierto es que la infraestructura de la misma al parecer resistió un terremoto de 8.1 grados en la escala de Richter. Y supongo que algo de crédito hay que darle a las autoridades correspondientes, por más mal que me caiga Mancera.

Justo hace unos días leía acerca de la tragedia en Texas, donde Harvey básicamente convirtió Houston en un lago enorme. El autor comentaba que una de las tragedias de Katrina en 2004, además de la obvia, es que no se llevó nunca a cabo una reconstrucción de Nueva Orleans viendo hacia el futuro, sino únicamente pensando en el pasado, porque eso hacen las civilizaciones “en descenso”. Es una lectura interesante y se las recomiendo.

Lo saco a colación porque me parece que la Ciudad de México fue bien reconstruida después de 1985. Y dos de esas razones (le guste o no a mucha gente) son su ciudadanía y el hecho de que ha sido desde entonces gobernada en los hechos por gobiernos progresistas de izquierda (si bien no oficialmente hasta 1997). De 1985 a 1997 me refiero a que la ciudadanía de la Ciudad justamente presionó a los gobiernos locales para que hicieran bien las cosas, no a que los regentes de entonces fueran unas blancas palomitas.

El temblor de hace unos días se sintió, literalmente, en la mitad del país, por lo que me cuentan. En varias entidades esto causó un daño material inmenso; pero en la Ciudad de México al parecer sólo se cayeron algunas bardas y se fue la luz en gran parte de la misma. Eso pasa aunque no haya temblores (aunque aún hay que esperar a las revisiones estructurales para ver si no hay daños más sutiles escondidos).

Me parece que hay que hacer una reflexión de por qué es esto, y justamente cómo podemos reconstruir lo que sea necesario reconstruir en Oaxaca y Chiapas de tal forma que a la próxima ellas también sobrepasen un temblor de esta magnitud sin más que unas cuantas bardas caídas y electricidad cortada temporalmente.

Una pista: ni reformas “estructurales”, ni “pactos” por México ni tampoco comunidades autónomas van a responder por sí mismas esas preguntas.

Imprimir entrada Imprimir entrada

Windows to Go

Yo no uso Windows. Tiene años que no utilizo Windows de forma cotidiana, y mi uso del sistema operativo de Microsoft ha caído a tal grado que si inicié mi computadora de escritorio en mi casa (que es la única que tiene Windows) más de diez veces, yo creo que son muchas. Y la mayor parte debieron ser porque quería escanear algún documento: el escáner de mi oficina funciona perfecto en Linux, pero el que tengo en mi casa (que es como cinco veces más barato y veinte veces más chafa) no, así que cuando necesitaba escanear algo reinciaba a Windows.

Ahora ya ni por eso lo hago, porque aprendí a redirigir el tráfico USB en Qemu y entonces puedo usar una máquina virtual con Windows en mi sistema operativo Linux para poder hacer escaneos sin necesidad de reiniciar mi computadora. Si algún día tengo tiempo planeo monitorear el tráfico para poder escribir el soporte en SANE para mi escáner en Linux, pero eso es plan a futuro.

Como sea: Windows, casi no lo uso. Tengo en mi casa una computadora y tarjeta de video bastante poderosas, junto con algunos juegos de Steam (hace años que no tengo ningún software pirateado; hasta me siento extraño), pero cuando juego suele ser limitado a mi PlayStation 3 o 4. ¿Para qué otra cosa usaría Windows?

La respuesta me surgió estas vacaciones; me compré una capturadora de video elgato HD60, porque después de jugar un poco con la capturadora de video de mi PS4, decidí que quería comenzar a grabar los platinos que me voy ganando en mis videojuegos. Nada más por puro gusto.

La capturadora funciona perfecto; el único problema que tiene es que sólo está soportada en Windows, y como comenté arriba únicamente mi máquina de escritorio tiene Windows. No tengo Windows en mi laptop (una Dell XPS 13 9350); no por fundamentalista, tiene únicamente 250 GB de disco duro y preferí no particionarlo para un sistema operativo que nunca utilizo.

Podría haber instalado Windows en mi laptop de nuevo, pero de verdad no quiero sacrificiar mi de por sí limitado disco duro. Así que hice otra cosa más interesante, y menos complicada que mover mi máquina de escritorio a mi sala, o mover mi PlayStation a mi escritorio.

Resulta que Windows 10 (al que tengo acceso gratis en su versión educativa en inglés y en español por ser profesor de la UNAM) puede instalarse en un disco duro externo en una modalidad conocida como Windows to Go, así que lo instalé en un disco duro externo de 1 TB que tenía sin utilizar. El proceso es un poco más complicado que instalar Windows 10 normalmente, pero no es nada del otro mundo.

Así que ahora, si quiero capturar el momento en que consigo un platino, lo único que debo hacer es poner el disco duro externo en mi laptop, reiniciar a Windows 10 con ella, y capturar el video. Jala algo lento, pero nada que no sea soportable.

Ahora, como mi promedio de platinos desde que comencé a jugar videojuegos en PlayStation es más o menos de 5 al año, no creo que mi uso de Windows aumente demasiado; pero al menos cuando lo haga será marginalmente más interesante.

Imprimir entrada Imprimir entrada

La fibra óptica

Hace unos tres años (meses más, meses menos), Telmex me llamó y de pura chiripa me encontró en mi departamento. Que si quería me podían poner fibra óptica, dijeron. OK, dije yo.

La serie de eventos que siguió es ligeramente bizarra y de las cosas que me ha tocado ver que ocurren en empresas como Telmex.

Primero no fueron a poner la fibra óptica cuando dijeron que irían. Luego de unos meses me volvieron a llamar, fueron, y resultó que no se podía poner fibra óptica porque el edificio de departamentos donde vivo no tiene fibra óptica… a lo cual yo hubiera sugerido que la pusieran como habían ofrecido, pero bueno. Esto se repitió un par de veces; me llamaban, decían que irían, iban, y decían que no podían poner la fibra óptica porque no había fibra óptica.

Debo aclarar que siempre que me llamaban para acordar la cita, yo les recordaba que ya habían intentado n veces y que no se podía poner porque no había, que me sigue pareciendo sumamente bizarro, pero bueno.

Total que una vez vino un chavo, estuvo dándose vueltas por todo el edificio, me dijo que tenía que volar el cable con la fibra óptica por el techo, a lo cual yo resignada y pacientemente dije OK. El chavo procedió a salir del departamento, del edificio y de mi vida, porque jamás volví a oír hablar de él.

Luego se volvió a repetir el primer procedimiento, donde vinieron a poner la fibra óptica y se fueron porque no había fibra óptica. Para este punto yo ya estaba seguro de que Telmex de alguna manera encontraba todo esto sumamente divertido.

Total que hace dos meses (literalmente años después de que me ofrecieran la fibra óptica), vino un chavo que de nuevo se estuvo dando de vueltas por todo el edificio, pero éste sí volvió y de hecho ya con el cable de fibra óptica. Después de hacer que el cable diera de vueltas por no sé qué tantos lados, ya sólo faltaba meterlo a mi departamento, para lo cual procedió a hacer un hoyo en mi pared con su taladro.

Y entonces comenzó a salir agua del hoyo, porque por supuesto le atinó (con precisión casi milimétrica) a la tubería principal del agua de mi departamento. Es en momentos de este estilo en mi vida que pienso que sí puede haber un dios, y que disfruta mucho gastando bromas pesadas.

Podría haber hecho que Telmex me pagara la compostura, supongo, pero preferí hacerme cargo yo para que quedara ese mismo día. El muchacho de Telmex terminó de poner la fibra óptica y yo fui por un plomero (que es de las ventajas de vivir cerca del metro Portales). El portero primero abrió tantito la pared para ver cómo estaba el daño (no sabíamos si el taladro había atravesado por completo el tubo).

El hoyo

El hoyo

Estas fotos me gustaron, porque muestran como el taladro le atinó al tubo mero en el centro, como si le hubiera apuntado.

El hoyo centrado

El hoyo centrado
Acercamiento del hoyo centrado

Acercamiento del hoyo centrado

El plomero estuvo unos cuarenta minutos tratando de hacer que el tubo se vaciara de agua, para poder soldarle un parche al mismo; pero fue sencillamente imposible. Al parecer está en un ángulo tal que el agua volvía siempre al punto donde quería soldar. Así que me informó que tenía que quitar todo un tramo del tubo para poder vaciar el mismo y hacer una soldadura más mejor.

Lo cual por supuesto resultó en que rompiera todavía más de mi pared.

Mi pared rota

Mi pared rota

Debo aquí hacer una pausa para recordar que tengo un doctorado en Ciencias de la Computación, lo cual me proporciona con exactamente cero de los conocimientos de albañilería necesarios para poder reparar ese hoyote; sin embargo me dije que no podía ser tan difícil, así que fui a una tienda de pintura cerca de mi casa y compré un kilo de cemento blanco. Con una tabla (protegida con una bolsa de basura) contuve el cemento, y usé algunas de mis pesas para mantenerla en su lugar.

La tabla contenedora

La tabla contenedora

Al final el peso del cemento empujo algo la tabla, como supuse pasaría, pero no quedó tan mal.

El resultado en crudo

El resultado en crudo

Medio raspé un poco el excedente de cemento:

Cemento raspado

Cemento raspado

Y al final nada más llené lo que faltaba y medio le di forma. La verdad, estoy bastante contento de cómo quedó; no es perfectamente plana, pero tampoco es como si hubiera quedado un escalón.

El resultado final

El resultado final

Aprovechando que me sobró cemento (tuve que comprar otro kilo porque el primero no alcanzó), me puse a resanar todos los pequeños agujeros y grietas que hay por todo el departamento, la mayor parte causada por clavos y taquetes que se han ido poniendo y quitando de sus paredes. También estoy bastante contento de cómo quedó; a menos que se lo haga notar a alguien, ni siquiera se nota.

Ahora debería pintar mi departamento, pero eso lo haré luego.

Ah, y la fibra óptica jala chido. No como para justificar el medio destruir una de mis paredes, pero bueno.

Imprimir entrada Imprimir entrada

Meson

Hace como quince años aprendí a usar autotools. Para los que no lo sepan, autotools es la combinación de autoconf, automake y un montón de otros programitas que permiten el generar un script llamado configure, con el que a su vez se generan uno o más archivos Makefile, con los que con algo de suerte se puede compilar un programa en Linux (o casi cualquier Unix, realmente).

Como dije, aprendí a usar autotools en 2002, más o menos; el proyecto ya llevaba once años de vida en ese momento, habiendo comenzado con autoconf en 1991.

El proyecto GNU se basa en gran medida en autotools, y consecuentemente Linux también. Hasta hace pocos años era medio imposible compilar un programa de software libre sin pasar por la santísima trinidad de hacer ./configure && make && make install.

Autotools es impresionante para lo que trataba de resolver en su momento; el estandarizar cómo configurar y compilar código en la miríada de unices que existían a inicios de la última década del siglo XX. Estaban Solaris, SCO, UP/UX, Irix, el resecado cadáver de BSD, y todavía faltaban Linux y FreeBSD. Especialmente porque en ese entonces no había un estándar para bibliotecas con ligado dinámico; algunos de esos unices no tenían bibliotecas con ligado dinámico.

Ya en el ocaso de la segunda década del siglo XXI, resulta que autotools no es tan terriblemente útil como antes. Linux es el Unix ganador, por mucho; Mac OS X es nominalmente Unix, pero en realidad tienen su propia manera de distribuir software, y en los hechos a Apple no le interesa que la gente pueda compilar cosas fácilmente en su plataforma de forma estándar con otros sistemas operativos.

Además es terríblemente arcaico y uno tiene que aprender dos lenguajes (al menos) para aprender a usarlo: el de autoconf y el de automake. Y realmente es necesario aprender a escribir makefiles, y si uno se clava resulta que también hay que usar M4. Y Bash está ahí, acechando en las sombras como siempre.

El odio a autotools es enorme en la comunidad del software libre, porque hay que pelar un pollo para que las cosas funcionen, y cuando no lo hacen es terriblemente difícil el descubrir qué carajo ocurre. Pero no hay una alternativa mejor, así que todo mundo se aguanta.

Yo no odio autotools; sólo me parece que es espantoso de usar. Todos mis proyectos de software libre usaban autotools hasta hace poco, y en general funciona. Medio arcaicamente, pero funciona.

Desde hace años ha habido intentos de reemplazar autotools con algo mejor, pero en general nada ha ganado suficiente tracción como para llevarlo a cabo. Lo más cercano que había aparecido fue CMake, que logró que algunos proyectos se cambiaran a usarlo; en particular KDE hace más de 10 años. Sin embargo, cuando los hippies de GNOME lo discutieron, decidieron que no lo iban a usar; como suelo confiar en esos güeyes, yo también pasé.

Así estaban las cosas hasta que hace unas semanas leí que GNOME está considerando (seriamente) cambiarse a Meson. Ya había oído del proyecto (tiene 5 años), pero yo había pensado que sería otro más del montón de intentos usurpadores; pero cuando vi que GTK+ se va a cambiar a él, y que systemd también lo está considerando, decidí que le iba a echar un ojo.

Quedé bañado de asiento; dícese, anonadado.

Por poner un ejemplo, aquí está el tiempo que me toma configurar y compilar MLM, un programita mío, utilizando autotools:

canek@dell ~/Devel/mlm $ time ( ./autogen.sh && make )
autoreconf-2.69: Entering directory `.'
autoreconf-2.69: running: autopoint --force
Copying file ABOUT-NLS
Creating directory build-aux
Copying file build-aux/config.rpath
Copying file m4/codeset.m4
Copying file m4/extern-inline.m4
Copying file m4/fcntl-o.m4
Copying file m4/gettext.m4
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intlmacosx.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/inttypes_h.m4
Copying file m4/lcmessage.m4
Copying file m4/lib-ld.m4
Copying file m4/lib-link.m4
Copying file m4/lib-prefix.m4
Copying file m4/lock.m4
Copying file m4/longlong.m4
Copying file m4/nls.m4
Copying file m4/po.m4
Copying file m4/printf-posix.m4
Copying file m4/progtest.m4
Copying file m4/size_max.m4
Copying file m4/stdint_h.m4
Copying file m4/threadlib.m4
Copying file m4/uintmax_t.m4
Copying file m4/visibility.m4
Copying file m4/wchar_t.m4
Copying file m4/wint_t.m4
Copying file m4/xsize.m4
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/en@boldquot.header
Copying file po/en@quot.header
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
autoreconf-2.69: running: aclocal --force 
autoreconf-2.69: configure.ac: tracing
autoreconf-2.69: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf-2.69: running: /usr/bin/autoconf-2.69 --force
autoreconf-2.69: running: /usr/bin/autoheader-2.69 --force
autoreconf-2.69: running: automake --add-missing --copy --force-missing
configure.ac:14: installing 'build-aux/compile'
configure.ac:14: installing 'build-aux/config.guess'
configure.ac:14: installing 'build-aux/config.sub'
configure.ac:12: installing 'build-aux/install-sh'
configure.ac:12: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
autoreconf-2.69: Leaving directory `.'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/x86_64-pc-linux-gnu/bin/ld
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking for valac... /usr/bin/valac-0.32
checking whether /usr/bin/valac-0.32 is at least version 0.32... yes
checking for glib-compile-resources... /usr/bin/glib-compile-resources
checking for xsltproc... /usr/bin/xsltproc
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for GIO... yes
checking for GEE... yes
checking for ID3TAG... yes
checking for GTK... yes
checking for GDK_PIXBUF... yes
checking for GSTREAMER... yes
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/gmsgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for ld used by gcc... /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
make  all-recursive
make[1]: Entering directory '/home/canek/Devel/mlm'
Making all in po
make[2]: Entering directory '/home/canek/Devel/mlm/po'
test ! -f ./mlm.pot || \
  test -z "es.gmo" || make es.gmo
make[3]: Entering directory '/home/canek/Devel/mlm/po'
rm -f es.gmo && /usr/bin/gmsgfmt -c --statistics --verbose -o es.gmo es.po
es.po: 47 translated messages, 150 untranslated messages.
make[3]: Leaving directory '/home/canek/Devel/mlm/po'
touch stamp-po
make[2]: Leaving directory '/home/canek/Devel/mlm/po'
make[2]: Entering directory '/home/canek/Devel/mlm'
  VALAC    lib_libmlm_la_vala.stamp
  GEN      src/application/resources.c
  XSLT     man/mlm-analyze.1
  XSLT     man/mlm-tags.1
  GEN      data/mlm.desktop
  XSLT     man/mlm-analyze.html
  XSLT     man/mlm-tags.html
  CC       lib/id3tag-x/lib_libid3tag_x_la-id3tag-x.lo
  CC       src/application/src_mlm_gui-resources.o
  VALAC    src_mlm_tags_vala.stamp
  VALAC    src_mlm_accommodator_vala.stamp
  VALAC    src_mlm_verify_vala.stamp
  VALAC    src_mlm_copy_tags_vala.stamp
  VALAC    src_mlm_analyze_vala.stamp
  CCLD     lib/libid3tag-x.la
  CC       lib/mlm/lib_libmlm_la-genres.lo
  CC       lib/mlm/lib_libmlm_la-file-tags.lo
  CC       lib/mlm/lib_libmlm_la-pretty-box.lo
  CC       lib/mlm/lib_libmlm_la-util.lo
  VALAC    src_mlm_gui_vala.stamp
  CC       src/tags/src_mlm_tags-tags.o
  CC       src/accommodator/src_mlm_accommodator-accommodator.o
  CC       src/verify/src_mlm_verify-verify.o
  CC       src/copy-tags/src_mlm_copy_tags-copy-tags.o
  CC       src/analyze/src_mlm_analyze-analyze.o
  CCLD     lib/libmlm.la
  CC       src/application/src_mlm_gui-application-window.o
  CC       src/application/src_mlm_gui-application.o
  CC       src/application/src_mlm_gui-encoder.o
  CC       src/application/src_mlm_gui-main.o
  CC       src/application/src_mlm_gui-media.o
  CC       src/application/src_mlm_gui-player.o
  CCLD     src/mlm-tags
  CCLD     src/mlm-accommodator
  CCLD     src/mlm-verify
  CCLD     src/mlm-copy-tags
  CCLD     src/mlm-analyze
  CCLD     src/mlm-gui
make[2]: Leaving directory '/home/canek/Devel/mlm'
make[1]: Leaving directory '/home/canek/Devel/mlm'

real	0m16.562s
user	0m20.716s
sys	0m2.822s

En comparación aquí está el tiempo de configurar y compilar con Meson:

canek@dell ~/Devel/mlm $ time ( meson build && ninja -C build )
The Meson build system
Version: 0.39.1
Source dir: /home/canek/Devel/mlm
Build dir: /home/canek/Devel/mlm/build
Build type: native build
Project name: mlm
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 5.4.0)
Appending CFLAGS from environment: '-DG_LOG_USE_STRUCTURED=1'
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.28)
Native dependency gdk-pixbuf-2.0 found: YES 2.36.6
Native dependency gee-0.8 found: YES 0.18.1
Native dependency gio-2.0 found: YES 2.50.3
Native dependency glib-2.0 found: YES 2.50.3
Native dependency gstreamer-1.0 found: YES 1.10.3
Native dependency gtk+-3.0 found: YES 3.22.15
Native dependency id3tag found: YES 0.15.1b
Program xsltproc found: YES (/usr/bin/xsltproc)
Configuring config.h using configuration
Native dependency glib-2.0 found: YES 2.50.3
WARNING: GLib compiled dependencies do not work reliably with 
the current version of GLib. See the following upstream issue: https://bugzilla.gnome.org/show_bug.cgi?id=774368
Program msgfmt found: YES (/usr/bin/msgfmt)
Build targets in project: 17
ninja: Entering directory `build'
[38/38] Linking target src/mlm-gui

real	0m2.522s
user	0m6.895s
sys	0m0.833s

Eso es 7 más rápido. Una razón es que Meson no utiliza makefiles; utiliza Ninja, que ni siquiera trata de usar un formato para que lo escriban seres humanos. Justamente lo que hace Meson es generar el archivo que Ninja usa para compilar el programa; pero además lo hace mucho más rápido que el script configure, que dispara un montón de comandos estándares de Unix y varios scripts de varios intérpretes. En cambio Meson y Ninja son dos programas únicamente, ambos escritos en Python.

Todos mis proyectos ya soportan Meson, y estoy considerando seriamente quitar el soporte para autotools en todos.

Me parece que Meson tiene buenas posibilidades de ser adoptado en muchos proyectos en Linux; lamentablemente no sé si lo vaya a adoptar el proyecto GNU, dado que utiliza la licencia MIT. Pero si puedo compilar LibreOffice en menos tiempo que los 43 minutos que toma actualmente, yo con eso estaré contento.

Imprimir entrada Imprimir entrada

El cargador de baterías

Cuando me mudé a mi departamento en 2008 contraté una línea telefónica (después de robarme la red inalámbrica de mis vecinos por algunos meses) y aproveché y compré un teléfono inalámbrico, que creo ha sido de las piezas de equipo electrónico más chafas que he tenido en mi vida.

En 2011 dejé mi departamento por seis meses para andar en mi último tour del posgrado. Como Telmex no me permitió poner la cuenta a dormir o algo por el estilo, sencillamente la di de baja. Nadie excepto mi madre me llamaba por teléfono de línea.

Regresando de mi viaje me fui a vivir con mi entonces novia y no regresé a mi delopartamento hasta diciembre de 2012. No necesitaba (ni necesito) teléfono de línea, pero definitivamente sí Internet, así que volví a contratar una línea con Telmex. El teléfono inalámbrico chafa que había comprado cinco años antes se había vuelto básicamente inusable (la batería le duraba como 2 minutos, menos si uno hablaba), así que cuando contraté mi línea telefónica compré ahí en Telmex un teléfono inalámbrico y con pantallita LCD para poder ver los números de quienes me llamaban.

El teléfono externamente sólo decía “Telmex”, uno tiene que asomarse debajo de la base cargadora para descubrir que es marca Atlinks. La verdad no tengo quejas con el aparatito; lo usé para contestar todas las doce llamadas que recibí mientras lo tuve. El problema es que la pantallita LCD comenzó a degradarse, dejando de dibujar los segmentos que forman los números, hasta que al final ya no se veía nada, nada nada.

Así que hace unos meses compré uno nuevo, Motorola, que tiene la ventaja de ser rojo y que su pantalla LCD es de color azul. Fuera de eso, es funcionalmente idéntico al viejo Atlinks. Cuando desconecté el Atlinks tuve la buena noción de quitarle las baterías verdes recargables.

Unas semanas después el control remoto de mi Harman/Kardon agotó sus baterías. Esto en general es raro; los controles remotos gastan tan poca energía que lo más común de hecho es que las baterías comiencen a derramar ácido antes de que se agoten. Como sea, me di cuenta de que las viejas baterías del teléfono Atlinks también eran AAA, así que se las puse y seguí con mi vida.

Hasta que se agotaron de nuevo.

Después de comprobar con la cámara de mi celular que de verdad ya se hubieran agotado las baterías, contemplé con distintos grados de depresión que tendría que salir de mi departamento a comprar baterías. Pero entonces vi mi nuevo teléfono Motorola; fui a él, abrí la compuerta de atrás y vi que las baterías verdes son casi el mismo modelo que las del teléfono Atlinks.

Así que hice lo único que hace sentido; intercambié los dos pares de baterías verdes entre el teléfono y el control remoto de mi Harman/Kardon. Por supuesto esto deja inutilizado mi teléfono una media hora mientras se cargan las baterías; ¿pero a quién le importa? ¿Quién carajo usa teléfono de línea hoy en día?

Así que mi teléfono de línea (el aparato) lo vengo usando desde hace meses como un cargador de baterías vanagloriado, porque excepto dos personas (las dos mayores de 65 años), nadie jamás me llama por teléfono. Bueno, me llaman para ofrecerme tarjetas de crédito y créditos bancarios, o decirme que Cristo vive; pero no me llaman para cosas que me importen.

Al menos sirve de algo el aparatito.

Imprimir entrada Imprimir entrada

Renovando la infraestructura

Mi departamento es más bien pequeño, aunque perfectamente cómodo para un hombre soltero como yo. Tiene dos recámaras, pero la segunda la utilizo como estudio; ahí está mi computadora, escáner e impresora, y el único librero en mi casa: la mayor parte de mi biblioteca física está en cajas, porque nunca he mandado hacer libreros, y tiene años que no compro libros impresos (me regalan de vez en cuando, sin embargo). Mi biblioteca digital ya tiene un tamaño más que decente, debo mencionar.

El tamaño de mi departamento viene al caso de esta entrada, porque el número de computadoras y electrónicos en el mismo es ridículo para el espacio que uso para vivir. Podría hacer un recuento utilizando distintas categorizaciones para mis electrónicos, pero para el tema a la mano voy a enumerar únicamente aquellos dispositivos que se conectan a la red local de mi departamento y que se pueden ver entre sí:

  • Televisión Samsung de 55 pulgadas
  • Televisión Samsung de 32 pulgadas (para la recámara)
  • AVR Harman/Kardon
  • Playstation 4
  • Playstation 3
  • Computadora de escritorio Core i7 (Centurion)
  • Laptop Dell XPS 13
  • Impresora HP LaserJet inalámbrica
  • Media center Atom
  • Servidorcito Atom*
  • Tableta Nexus
  • Teléfono celular Xperia

Un pequeño paréntesis de mi servidorcito Atom, que a estos grados ya es una instancia de la paradoja de Teseo; el servidorcito fue de las primeras cosas que compré para mi departamento, porque quería tener una máquina accesible desde afuera de mi red local para poder bajar cosas y otras actividades. Compré un paquete completo de placa madre Atom (procesador incluido, como todos los Atom), memoria, un disco duro de 2.5 pulgadas (tipo laptop) y un gabinetito bastante simpático, diminuto para esos tiempos. Eventualmente el disco duro falló, y lo reemplacé (tengo múltiples respaldos de todo, entonces no hubo problema). Luego la placa madre falló, y la reemplacé junto con la memoria. Y por último, hace un par de meses el gabinete falló; ni siquiera sé cómo puede fallar el gabinete (aunque sospechó la fuente de poder, que era con ladrillo externo), pero falló y también lo reemplacé. La máquina en el sentido virtual ha sido la misma siempre; los contenidos del disco duro siempre han sido los mismos (aunque respaldados y restaurados en múltiples ocasiones). Pero físicamente ningún componente del servidorcito es el original. ¿Es entonces o no la misma máquina? Fin del paréntesis.

Para los que lleven cuenta, esas son 12 computadoras (para motivos prácticos) en mi red local. Por razones de cómo he organizado las cosas, la red inalámbrica sólo es utilizada por la televisión de 32 pulgadas en la recámara, por la impresora láser, y por la tableta y el teléfono celular (los últimos tres ni siquiera tienen puerto ethernet). Todo lo demás (excepto la computadora de escritorio) está amontonado en un mueble en la sala de mi casa, y utilizo un switch para conectar casi todo (los módems de Infinitum suelen tener únicamente 4 puertos). La computadora de escritorio está en el estudio, pero utilizo EoP (Ethernet-over-Power); inicialmente sí usaba una tarjeta inalámbrica, pero en mi máquina de escritorio sí es común que tenga archivotes que luego quiero transmitir a alguna otra máquina de la red local, y la solución PoE funciona mucho mejor para eso.

Hace unos días (de hecho tal vez semanas) mi módem inalámbrico comenzó a fallar. Sólo fallaba la red inalámbrica, y como la impresora casi nunca la utilizo; la televisión de mi recámara no mucho; la tableta ha caído también en desuso; y mi celular tiene datos, terminó ocurriendo que no hice nada al respecto suponiendo que Telmex tenía problemas y eventualmente los repararía.

Esto no ocurrió, así que por fin llamé, remotamente se metieron a mi módem, y básicamente me dijeron que estaba en las últimas y que tenía que cambiarlo. Cosa que hice hoy.

En mis años mozos sí perdía bastante el tiempo jugando con la topología de la red de mi casa; pero conforme he ido envejeciendo esto ha perdido el encanto. Así que ahora que mi módem viejo falló, la configuración que tenía era casi la que viene por omisión en el módem (lo único “especial” que hago es redireccionar las conexiones SSH del módem a mi servidorcito Atom). Esto resultó en que desconecté el viejo y fallido módem, lo llevé a Telmex, me lo catafixearon por una versión moderna, lo conecté, le redireccioné las conexiones SSH a mi servidorcito Atom, y toda mi infraestructura volvió a la vida sin mucha fanfarria.

Aprovechando el viaje a Telmex (que no había puesto el pie ahí en, literalmente, años), compré un nuevo aparáto telefónico (el viejo que tenía la pantalla LCD se había vuelto casi ilegible), y ése también lo conecté y jaló todo a la primera.

Me alegra haber cambiado de módem; el modelo viejo era el TGN582N, que es una mierda desde cualquier punto de vista que uno quiera verlo. El nuevo modelo es Huawei, mucho más rápido (en el procesador del mismo módem; la conexión a Internet no ha cambiado), y tiene la ventaja de que los chinos probablemente sepan toda la pornografía que veo.

La infraestructura electrónica de mi casa es importante para mí, pero la he refinado tanto a lo largo de los años, que casi no tengo que pensar en ella. Excepto cuando mi módem inalámbrico agarra y se quema.

Espero que vuelvan a pasar años antes de tener que repetir todo el ritual.

Imprimir entrada Imprimir entrada

Mi nuevo Xperia

Después de casi dos años de usarlo sin casi ninguna queja (y de casi perderlo en Barcelona), mi fiel Xperia Z3 sufrió el destino que sufren casi todos los teléfonos celulares (aunque, irónicamente, es la primera vez que me pasa): se cayó y se estrelló su pantalla.

Xperia Z3 estrellado

Xperia Z3 estrellado

Cuando digo que se “cayó” no estoy usando un eufemismo; el teléfono literalmente recorrió la mesa y se suicidó contra el piso. La parte trasera del teléfono es de cristal, y aunque increíblemente elegante, tambiéns es increíblemente resbalosa. Así que aunque uno lo deje en una mesa, con pequeñas vibraciones el teléfono comienza a deslizarse poco a poco hasta un borde, como un lemming con deseos de terminar con todo, y al final se lanza al precipicio sin ninguna consideración por su seguridad o mi economía.

Por esa razón utilicé una cubierta tipo carpeta durante casi todo el tiempo que lo tuve, pero en Barcelona le quité la cubierta y sencillamente lo traía en mi bolso. Podría decirle “mochilita”, pero seré honesto y admitiré que siempre que voy a Europa llevó mi bolso, y ahí pongo mi celular. Como sea; comencé a usarlo sin cubierta, y regresando a México decidí usar el teléfono así, al desnudo.

Lo peor del caso es que el maldito teléfono se cayó como cuatro veces, y no le pasó absolutamente nada en ninguna (y siempre por suicidio de no querer quedarse quieto en una mesa). Pero la última debió caer justo en el peor ángulo posible, y lo perdí para siempre.

Si sólo se hubiera estrellado la pantalla, igual y lo hubiera seguido usando; pero dejó de funcionar el sensor táctil, así que sencillamente me compré un nuevo teléfono. Ya lo había pensado, pero lo tenía planeado para diciembre; sólo adelanté la decisión unos cuantos meses.

Fui y me compré un Xperia Z5, porque es básicamente la versión nueva del Z3. Me encanta el teléfono; mejora varias de las cosas del Z3 que me parecían frágiles (como la parte trasera de cristal), y los ocho núcleos se notan de inmediato. La verdad que la nueva cámara sea de 23 megapixeles en lugar de 20.7 no lo he podido notar de ninguna manera.

Y le compré una cubierta tipo condón, que no es tan estorbosa como las de tipo carpeta que usaba, y que más que protegerlo, espero sirva para que haga fricción en las mesas y evite las tendencias suicidas del teléfono.

Mi celular es una maravilla en México; pero es todavía más espectacular de viaje si uno trae datos: mi plan de Telcel hizo que los datos salieran gratis en Estados Unidos, y en Europa compré un SIM Orange… que por cierto, sigo usando porque el nuevo teléfono es dual; espero depositar 5 euros cada seis meses en mi SIM europeo, y contar ya con un número fijo en Europa. Google Maps por ejemplo me decía los horarios de los autobuses, Google App me avisaba de lugares turísticos a qué ir, y cosas de ese estilo que hacen que me alegre de haberle vendido mi alma a Google.

Pero además la cámara del Z3 (y del Z5 ahora, supongo) es suficientemente buena como para no necesitar una cámara extra. Entonces todo lo que necesito está concentrado en un único electrónico que además de todo está bastante bonito. Y migrar del Z3 al Z5 fue trivial; los teléfonos Xperia tienen un agente de migración que utiliza NFC para que únicamente pegando las partes traseras de los teléfonos, ellos mismos comiencen a transferir la información. Mi Z5 es básicamente un clon (más rápido y moderno) de mi Z3.

Hubiera podido seguir usando mi Z3, pero no me molesta haberlo cambiado. Sólo espero que mi Z5 sí me llegue intacto a los dos años.

Imprimir entrada Imprimir entrada

Sony MDR-10RBT

Hace casi un par de años compré unos audífonos Sony MDR-10RBT en una venta nocturna de Liverpool.

Sony MDR-10RBT

Sony MDR-10RBT

Aunque tuve oportunidad de usarlos en mi viaje a Grecia, fue hasta este último viaje que de verdad los usé de tal manera que sintiera que se justificara su precio, porque salieron bien pinche caros.

En los aviones son increíbles (especialmente si el avión permite conectar audífonos para su sistema de entretenimiento); uno se los pone, y se olvida del ruido de las turbinas y de los otros pasajeros. Vi como siete películas en los ocho vuelos que tomé.

En Grecia no usé los audífonos porque aunque sí estuve recorriendo Atenas mucho, lo hice acompañado de un grupo de españoles de los cuales me hice amigo; en cambio en Barcelona los usé todos los días yendo y viniendo de la UPC. Como son Bluetooth me permiten controlar mi música sin tener que sacar el celular, y son bastante cómodos para ser tan grandes. Que es otra cosa; me imagino que el 80% del volumen y peso de los audífonos son baterías, porque le duran varios días sin problemas.

En México casi no los uso, pero creo que quiero comenzar a hacerlo, y aprovechar para salir a caminar por la ciudad de vez en cuando. Claro que no lo haré mientras sigan cayendo las torrenciales lluvias de los últimos días, pero un poco más adelante espero poder comenzar a hacerlo.

Imprimir entrada Imprimir entrada

Un año con el alma vendida al diablo

He tenido una carga de trabajo tan brutal que, entre otras cosas, se me pasó conmemorar un año de que compré mi querido Mini Cooper.

Básicamente me gustaría enumerar las desventajas y ventajas que le he visto a tener un Mini Cooper este año, en comparación con el Tsurito que utilicé durante más de diez años. Así que primero las desventajas:

  • Si le pasa cualquier cosa, las refacciones pueden ser una pesadilla, porque en muchos casos las traen de Alemania…
  • …y sale carísima la reparación.
  • El consumo de gasolina es como siete veces el del Tsurito.
  • Mientras que mi Tsurito a veces me bajaba de él mientras se seguía moviendo, y nada más le decía: “ahí te cuidas”, mi Mini Cooper me genera cierta angustia cada vez que lo estaciono. A estas alturas lo he dejado en valet parking unas cuatro o cinco veces, porque trato de evitarlo.
  • No puedo pasarle corriente (porque puedo quemar la computadora interna, o al menos eso me dijeron), y no trae llanta de repuesto (trae de estas llantas especiales que se supone uno puede seguirlas usando ponchadas), así que las únicas dos cosas que sabía hacerle a un carro (pasarle corriente y cambiarle una llanta), no las puedo hacer con mi Mini Cooper.
  • Más de dos personas no pueden viajar cómodamente en él.

Y las ventajas:

  • Es tan bonito, que a veces nada más de verlo me sube el humor.
  • Mientras otros carros tratan de tener una faz agresiva, la del Mini Cooper es como la cara de un chavo que su mamá lo acaba de descubrir masturbándose.
  • Todo el mundo parece estar de acuerdo de que yo me veo muy bien con mi Mini Cooper.
  • A todo el mundo le gusta, y las chavas no son excepción.
  • Manejarlo (con transmisión manual) es un placer casi orgásmico; especialmente en autopista.
  • Para una o dos personas, es casi lascivamente cómodo.
  • Mi celular se conecta automáticamente por Bluetooth, y saca de ahí la música.
  • ¿Ya mencioné lo bonito que está?

A un año de haber adquirido mi querido Mini, no me arrepiento en lo más mínimo de haberlo comprado. No voy a cambiar de carro en años (espero; al parecer este modelo salió bastante duradero), y cuando lo haga no sé si vuelva a comprar Mini. Pero la verdad lo he disfrutado enormemente, y espero poder seguir haciéndolo varios años más.

Imprimir entrada Imprimir entrada

Netflix

Mi mamá se compró una telesota en noviembre, y después de instalársela, le enseñé cómo funcionaban sus características inteligentes (YouTube, etc.)

Entre las cosas que trae preinstaladas está Netflix, y como el primer mes es gratis, lo di de alta a mi nombre y con mi tarjeta de crédito. Después de regresar de mi congreso en Guanajuato, y después de ver un Blu-ray en mi PlayStation 3, vi que éste también tiene la aplicación de Netflix, así que decidí probarlo.

Creo que me lo voy a quedar. Son 120 pesos al mes, así que si veo 3 películas al mes básicamente siento que ya le estoy sacando ganancia… y definitivamente voy a ver más que eso, si mi comportamiento en los últimos días se puede extrapolar al futuro.

Tengo mi media center, y otras maneras de obtener películas y series de televisión. Lo que tiene Netflix es que es ridículamente fácil de utilizar, y que las películas vienen en su idioma original. Preferiría subtítulos en inglés en casi todos los casos, pero puedo vivir sin ellos.

De cualquier forma voy a seguir comprando Blu-rays; me gusta tener mi colección de películas, y además no todo está en Netflix. Pero me he estado divirtiendo bastante viendo películas clásicas en Netflix, y otras que siempre quise ver pero jamás estrenaron en México. Aún no le entro a las series de televisión (mi débil corazón no soporta aún tanto compromiso), pero supongo que en vacaciones lo experimentaré.

Así que de ahora en adelante cuando le proponga a alguien “Netflix and chill”, de hecho sí voy a tener Netflix.

Imprimir entrada Imprimir entrada

El origen de Aztlán

Hace más de seis meses mudé mi blog y álbum fotográfico de Xóchitl a Aztlán, como lo comenté en su momento.

La razón de la mudanza fue por supuesto que me dieron mi cubículo en la Facultad de Ciencias, y además un escritorio y hasta una computadora. Tengo en mi departamento varias computadoras que han sido reemplazadas por actualizaciones, así que canibalicé varias partes y armé una computadora para poner como servidor dentro de mi cubículo. Tengo conexión a Internet de alta velocidad, las 24 horas los 365 días del año, así que hacía sentido. El servidor sería para las páginas de mis cursos, las listas de correo de los mismos, y cosas semejantes.

Cuando yo era estudiante, todos los profesores con cubículo tenían asignadas IPs públicas a las computadoras de sus cubículos. Esto por supuesto era idiota; muchos no hacían uso de la IP pública, y los que utilizaban Windows se veían rápidamente inundados de virus y malware. Así que hace unos años se creó una LAN para el departamento, y los profesores que requieran una IP pública pueden solicitarla simplemente justificando para qué la necesitan.

Yo pensé que iba a ser un trámite burocrático engorroso, pero sencillamente mandé un correo a la jefa de cómputo explicando que quería una IP pública para poder alojar las páginas de mis cursos y las listas de correo asociadas a los mismos, y que si por favor me pudieran dar el dominio aztlan.fciencias.unam.mx, que mucho lo agradecería.

Me sorprendí cuando a la siguiente semana todo estuvo listo, y de inmediato migré las páginas de mis cursos (las listas de correo me esperé al nuevo semestre). Habiendo hecho eso, por supuesto también mudé mi blog y mi galería. No vi razón para no hacerlo.

A lo largo de sus más de diez años de existencia, mi Pensadero ha vivido en varias máquinas de la UNAM, generalmente propiedad de algún profesor con quien yo trabajara; excepto por un pequeño periodo de tiempo donde renté un dominio y alojamiento mientras trabajaba en la IP, pero aunque no era mucho dinero en cuanto pude regresar a una máquina dentro de la red de la UNAM, eso hice.

Ahora mi blog vive en mi máquina en mi cubículo, con una IP y dominio asignados explícitamente a mí. Supongo que esto continuará durante varios años; dentro de varias décadas me imagino que tendré que hacer preparativos para poder preservar para la posteridad el contenido de mi blog (o ver que lo destruyan con fuego purificador). Pero tengo tiempo para preocuparme de eso, espero.

Lo importante es que Aztlán es mí máquina, que yo la administro exclusivamente para mí, y que la puedo utilizar para mis cursos y otras cosas cuando así lo necesita. Y para el Pensadero, por supuesto.

Imprimir entrada Imprimir entrada

Snip, snip

(Tuve dos semanas ocupadas entre calificar mis cursos del semestre pasado y mi chamba, por eso no había escrito).

A finales de 2013, que tenía trabajo, me compré un Sony Xperia SP para reemplazar mi avejentado (por no decir madreado) Sony Ericsson Xperia Play, que fue mi primer teléfono celular inteligente.

Mi Xperia SP me gustaba bastante… lo que hizo muy triste que me lo robaran menos de un mes después en Nuevo Vallarta en noviembre de ese año. Me tuve que regresar a mi Xperia Play mientras resolvía cómo conseguir un nuevo celular, porque Telcel hizo absurdamente difícil que comprar un teléfono con ellos: como tenía plan, no me lo podían vender a precio barato… lo cual entiendo; pero tampoco me podían vender el teléfono solo, tenía que comprar un teléfono con plan Amigo, y luego aparte comprar la tarjeta SIM que me habían robado.

Los mandé mucho a la chingada; hice que me dieran mi SIM, que metí en mi viejo Xperia Play, y me puse a buscar teléfonos en MercadoLibre.

Al final compré un Xperia M (sí, me gustan los Xperia), que me salió muy barato, y el cual fue un placer usar, especialmente cuando fui a Chicago y a Boston en el 2014, porque le pude poner un SIM T·Mobile al mismo tiempo que seguía usando mi SIM Telcel. Más o menos entonces decidí que jamás le iba a volver a comprar un celular a Telcel, y de hecho sigo pensando seriamente cambiarme de servidor de telefonía.

Como sea; mi Xperia M me sirvió bien todo el 2014, pero ya últimamente me estaba hartando un poco. Lo sentía lento, se le desconectaba el GPS bastante seguido, y además había aplicaciones que sencillamente no corrían muy bien en el ciertamente lento procesador. Así que, como estoy ganando bien, decidí por primera vez en mi vida comprar un celular de última generación, aunque saliera caro.

Y sí salió muy caro; podría haberme comprado un PlayStation 4 con mucho menos. Sin embargo, estoy muy contento: me compré (sorprendentemente) el Sony Xperia Z3.

Sony Xperia Z3

Sony Xperia Z3

Me había resistido a comprar un celular “grande” porque sentía que eran, bueno, grandes. Sin embargo después de literalmente un par de días de estarlo usando puedo reportar que no me molesta en lo más mínimo el tamaño, y que obviamente hace muy fácil un montón de cosas, en particular leer y teclear en él. No lo he aventado en una pecera, que al parecer es lo que hacen todos los nuevos dueños de un Xperia Z3, pero me gusta la idea de poder usarlo en la lluvia sin tener que preocuparme que le pase nada. Y el procesador es maravillosamente rápido; todo jala de volada.

También creo que por fin jubilaré mi camára digital, y procederé a usar únicamente la del teléfono; es de 20 megapixeles, entonces creo que ya es hora.

El punto de esta entrada, sin embargo, no es comentar las bondades de mi nuevo celular; es contar la historia del SIM dentro de él.

Como comentaba arriba, cuando mandé a la chingada a Telcel les pedí un SIM que fue el que puse en mi viejo Xperia Play mientras compraba mi Xperia M. Ese era un SIM “normal”, de 2.5 × 1.5 centímetros; pongo “normal” entre comillas porque técnicamente esos son los mini SIM: los full size SIM salieron hace más de veinte años y eran más o menos de 8.56 × 5.39 centímetros, más o menos del tamaño de una tarjeta del Metrobús.

Mi Xperia M en cambio acepta únicamente tarjetas micro SIM, que son de 1.5 × 1.2 centímetros; y mi Xperia Z3 por supuesto sólo acepta tarjetas nano SIM, que son de 1.23 × 0.88 centímetros. Aquí hay una imagen para que comparen.

Tarjetas SIM

Tarjetas SIM

Por supuesto, yo no he vuelto a poner un pie en un centro de servicio Telcel desde que los mandé a la chingada en 2013; el SIM que tiene mi Xperia Z3 es el mismo que el que tenía mi Xperia M que es el mismo que el que tenía mi Xperia Play. Para que cupiera en cada uno sencillamente hice uso de una tecnología avanzadísima.

Tijeras

Tijeras

Resulta que hay un montón de lugares en la red donde uno puede bajar un PDF con las guías necesarias para rebanar un tarjeta SIM inconvenientemente grande. La primera vez que lo hice no me causó ningún tipo de angustia, dado que era obvio que estaba cortando únicamente el plástico que rodea al chip de la tarjeta; pero esta vez tuve que cortar parte del chip. Pueden ver en la imagen de las tarjetas SIM que la nano tiene un poquito menos de metal que las otras dos.

Sin embargo no hubo ningún problema, y mi teléfono funciona perfecto. Sólo espero no tener que cortar el SIM todavía más en el futuro.

Imprimir entrada Imprimir entrada

Los discos duros

He andado actualizando mis equipos de cómputo, porque por qué no, y entonces decidí actualizar mi media center. Después de pasarme a un sistema con GPU de Intel integrado para mi escritorio, y concluir que ya no vale la pena comprar tarjetas de video Nvidia, hice un experimento: tomé la placa madre de mi Atom (que ya no es Atom, es Celeron), y lo puse en un gabinete especial chiquito chiquito que compré para mi nuevo media center, para determinar si un procesador lento Intel con GPU integrado estaba a la altura.

Los resultados fueron más que exitosos; para reproducción de video, el Celeron con GPU integrado funciona mejor que Nvidia. No tengo idea por qué; pero tampoco me importa: la placa madre (una ASUS J1800I-A) es diminuta, no tiene ventilador integrado (por lo que es muy silenciosa), no gasta casi electricidad, no genera tanto calor, y una larga lista de etcéteras que me hicieron decidirme a usar una segunda para mi media center.

Para el gabinete compré un Cooler Master Mini 110, que no es particularmente bonito, pero sí chiquito, y le cabe un disco duro de 3.5″ (en lugar de 2.5″, como de laptop). Esto era importante para mí, porque quería utilizar el disco duro de 2TB que tenía mi viejo media center. Hago énfasis en que quería.

Hacer el experimento fue un pinche desmadre. La placa madre ASUS es UEFI, y mi viejo media center era BIOS; tuve que convertir el disco duro de MBR a GPT, cosa que ya he hecho antes, pero no por ello resulta sencilla. La conversión además tenía que ser in-situ, porque no tengo 2 terabytes de espacio libre en ningún lado, y tampoco tengo la paciencia de reconstruir mi obscenamente amplia biblioteca de pornografía.

Al inicio estaba usando mi fiel cable SATA → USB, pero por alguna razón cuando lo conectaba a SATA la maldita computadora no detectaba la tabla de particiones GPT, así que terminé conectando el disco duro a mi máquina de escritorio vía SATA, y corriendo TestDisk para reconstruir la tabla de particiones. Mientras hacía esto, comenzó a fallar el disco duro de 512GB que tengo para Linux en mi máquina de escritorio.

Es el fallo más chistoso que he tenido en un disco duro; si lo pongo vertical, el disco funciona, pero si lo acuesto (como va generalmente dentro de la computadora), entonces falla. Como sea, y dado que necesitaba otra ASUS J1800I-A y memoria (para poder reconstruir Atom, ya que usé su placa madre y memoria para el nuevo media center), decidí ir por otro disco duro.

Y aquí es donde esto se pone divertido: mi máquina de escritorio tenía no dos, ni tres, ni cuatro, sino cinco discos duros atiborrados dentro de ella. Un disco duro de 512GB para Windows que casi nunca uso, otro 512GB para mis datos en Linux (el que empezó a fallar), otros dos discos de 160GB con más datos de Linux, y un SSD para mi sistema Linux propiamente.

Esos eran 1.42 GB aproximadamente, repartidos en demasiados discos duros que cada uno gasta electricidad y genera ruido y calor, así que decidí comprar un discote para Linux y reemplazar todos los discos superfluos que tenía. Pero entonces pensé (espero que vean que es peligroso cada vez que lo hago) que mejor compraba un mega disco duro, lo ponía en mi media center, y movía los 2TB del media center a mi máquina de escritorio.

Así que eso hice: compré (además de la placa madre para Atom y memoria) un disco duro de 3TB, moví la información del media center ahí, y después la de los discos duros que tenía en mi máquina de escritorio al disco duro de 2TB que antes estaba en el media center, comenzando con el de 512GB que estaba comenzando a fallar.

Y entonces comenzó a fallar el otro disco duro de 512GB, el que uso para Windows.

Técnicamente no empezó a fallar: hace casi dos años contaba que había revivido un disco duro de 512GB usando un convertidor USB → serial, un desarmador torx, y minicom en Linux. Pues bueno, el mismo problema regresó, como yo sabía que lo haría, porque nunca actualicé el firmware del disco duro; el contador del firmware volvió a tener una sobrecarga, y mi Seagate 7200.11 se atoró de nuevo en el estado ocupado (“BSY STATE”).

Por eso puse Windows en ese disco duro; nunca lo uso, y no me importa mucho si pierdo la información en él. Pero bueno; reviví el disco duro de nuevo (¡doble Lázaro!), y dejé mi computadora de escritorio en un mucho mejor estado que antes: ahora tiene un disco duro de 512GB para Windows (que volverá a fallar a menos que le actualice su firmware), 2TB para datos en Linux (que espero no se me acaben nunca), y el SSD para el sistema Linux (de 120GB, pero que jala rapidísimo).

Además, reconstruí Atom, y dejé mi media center en condiciones decentes… bueno, le falta su control remoto, que a Omar se le olvidó traerme del gabacho, un DVD slim interno, que ya pedí en MercadoLibre, y un adaptador USB 3.0 a USB 2.0, porque mi nuevo gabinete Mini 110 tiene USB 3.0 frontales, pero la plaquita madre ASUS no tiene el adaptador moderno para ellos.

Como sea: el punto de toda esta entrada, es que esta no es la primera vez que hago un movimiento de discos duros de este estilo: lo he venido haciendo desde hace años con computadoras mías y de conocidos que me piden que arregle/actualice, con laptops, e incluso con mi PlayStation 3. Y el resultado de todos estos años de estar malabareando discos duros es el siguiente:

Discos duros

Discos duros

No tengo idea de cuántos de esos discos duros funcionan o no; algún día tendré que sentarme a averiguarlo. Y tampoco sé qué voy a hacer con los que funcionen. ¿Los regalo? ¿Los tiro? ¿Creo arte moderno?

De verdad no sé qué hacer con tanto disco duro; lo que sí, es que espero no volver a comprar discos en mucho tiempo. Al menos para mí.

Imprimir entrada Imprimir entrada

Punchis punchis punchis punchis

Hace seis años platiqué cómo utilizaba una vieja estéreo de mi hermano como “bocinas” de mi computadura. Bueno, hasta hace dos semanas esa misma (cada vez más) vieja estéreo siguió desempeñándose como las “bocinas” de mi computadora de escritorio. Y creo que hubiera podido seguir haciéndolo durante varios años más; jamás me dieron problemas.

Un par de meses después de esa entrada, escribí cómo me compré mi televisión de 46″. Mi televisión es de las posesiones más preciadas que tengo, y jamás he tenido ningún problema con ella. En algún momento va a fallar (porque así es la naturaleza de las cosas), y entonces estaré muy triste… por unos cinco minutos, porque después me va a dar el pretexto para comprarme una nueva más grande.

Como sea, mi televisión es maravillosa, pero sus bocinas, para mí, suenan como las ardillas de Alvin y las ídem. En algún momento me compré unas bocinas Logitech X-540, originalmente para mi computadora; pero ya con la televisión, decidí que prefería utilizarlas para ver cosas en mi telesota, y para jugar videojuegos.

La verdad, no sé si fue buena o mala idea; hasta hace dos semanas que radicalmente cambié la configuración de bocinas en mi departamento, no se me había ocurrido que a lo mejor hubiera sido más inteligente usar las bocinas en mi computadora, y la viejo estéreo de mi hermano para la tele. No soy fanático del sonido; me gusta que las cosas suenen ferte, y que no se oigan distorsionadas: fuera de ahí, mi entendimiento de audio no da para mucho. En ese sentido, la verdad no sé distinguir cuál suena mejor entre las bocinas Logitech o la vieja estéreo de mi hermano. Lo que sí sé es que las bocinas Logitech son un sistema 5.1 (5 satélites y un subwoofer, ergo el .1), y que la estéreo de mi hermano es, bueno, estéreo, sólo 2 bocinas. Me imagino que por eso decidí usar las Logitech en mi telesota… lo cual por supuesto es idiota, porque lo que hacía era conectar la salida de audio de mi tele a las bocinas, así que sólo funcionaban en estéreo, aunque hacía que se replicara el sonido a los satélites traseros… inútilmente, porque tenía los cinco satélites básicamente atrás de la tele: 4 en la pared, y el central arriba de la misma.

De cualquier forma, funcionaba y la verdad se oía bien. Tal vez no maravillosamente bien, y ciertamente nunca tuve realmente surround sound, pero tapaba el parche, y además en mi computadora tenía la estéreo, que para oír música mientras trabajo bastaba y sobra. Pude haber vivido así hasta que alguna parte fallara, pero como estoy ganando bien, decidí que ya era hora de comprarme un AVR.

Un AVR (audio/video-receiver) permite conectar varias entradas HDMI, puentearlas a una televisión (vía HDMI una vez más), y encargarse del sonido de manera mucho más profesional que una vieja estéreo o que unas bocinitas Logitech, 5.1 o no 5.1. Había estado coqueteando con la idea de comprarme uno, porque (además de que creo que es un lujo, pero me lo merezco) he considerado regalarme un PlayStation 4 de navidad, y entonces ya estaría en el límite de entradas HDMI que mi tele soporta. Además, harto más ferte, como mencionaba arriba.

Como ya expliqué, no soy fanático del sonido; no tengo ni puta idea de qué marcas o qué especificaciones son las mejores en esto, así que fui a comprar mi AVR con sólo unas cuantas ideas vagas: Bose es muy bueno, pero excesivamente caro; Sony es bueno, pero probablemente más caro de lo que ofrece; y Onkyo ahí se va en calidad y precio. Igual y estoy diciendo puras pendejadas, pero eso es lo que saqué de mi superficial investigación. Obviamente, siendo como soy, cuando llegué a la tienda a ver AVRs (en conjunto con un sistema 5.1; en mi departamento de medio metro cuadrado, 7.1 es completamente inútil), iba determinado a comprarme un Onkyo.

Pero entonces ocurrió algo que me pasa muy pocas veces: el chavo que me atendió era competente. No sólo era competente; estaba muy bien informado, y (para mí muy importante) me supo resolver mis dudas muy bien. Estaba debatiéndome entre el AVR Onkyo que había pensado comprar, y el AVR que a final de cuentas me compré, y el muchacho me explicó que el primero tenía un subwoofer pasivo, mientras el segundo era activo. “No entiendo”, le dije, “¿cuál es la diferencia?”; el muchacho sencillamente procedió a mostrarme la conexión del subwoofer Onkyo (dos simples cables con la señal de audio), y la del otro (un cable RCA que permite transmitir información aparte de la señal de audio). Así que compré el otro, del cual jamás había oído la marca. Y no estoy exagerando; jamás la había oído, y si llegué a hacerlo procedí a olvidarlo de inmediato. Estaba seguro de que era una marca piratísima.

La marca es Harman Kardon, y resulta que no sólo no es piratísima, sino que al parecer todo mucho excepto yo había oído hablar de ella.

Así que conecté el Harman Kardon a mi tele, mi media center, PlayStation 3 y servidor Atom al Harman Kardon (me sobran entradas HDMI, así que puedo hacerlo), coloqué los satélites traseros atrás, los delanteros adelante y el central al centro (y aún así no sigo las ridículamente detalladas instrucciones del manual), y lo prendí. Y ay güey.

Además de que mi pobre departamento parece estar a punto de derrumbarse cada vez que subo mucho el volumen, la calidad del audio (para un lego como yo en asuntos de sonido) es ridículamente superior a la que tenían las bocinitas Logitech… aunque siendo justos eso probablemente no sea únicamente culpa de ellas, como ahorita explicaré.

Procedí a mover las bocinas Logitech a mi computadora, porque quiero deshacerme de la vieja estéreo: ocupa mucho espacio, y estoy seguro que también electricidad, además de que se calienta demasiado. Al mover el subwoorfer de las bocinas Logitech, mis dedos rozaron el círculo elástico que sostiene al cono de la bocina (el que permite que “rebote” cuando los bajos están duro que dale; el “surround” en este diagrama), y éste procedió a, literalmente, deshacerse entre mis dedos.

No sé cuánto llevaba deteriorándose sin que yo me diera cuenta (como casi todos los subwoofers, esta bocina apuntaba al piso), pero dado que lo he venido usando desde hace años, tampoco me extraña que lo hiciera. Por suerte lo llevé al centro donde me lo repararon por 150 pesos que, como las bocinas me costaron unas diez veces eso, me parece un muy buen precio. Ahora suenan como nuevas, pero sí siguen sin poder compararse al Harman Kardon.

Así que ahora tengo dos sistemas 5.1 funcionando perfectamente; uno decente (pero bastante normal) en mi computadora, y otro muy bueno en mi televisión en conjunto con mi media center y PS3 (y posiblemente en el futuro, PS4).

De las primeras cosas que hice fue ver una película Blu-ray (Splice; está simpática, sí la recomiendo). En una escena, ocurre un ruido pertubador “atrás” de la misma. Nunca había tenido un sistema surround sound propiamente instalado en mi departamento; así que cuando oí el ruido viniendo de la cocina, además de friquearme bastante, tardé varios segundos en percatarme de que era la película. No ayudó que fuera de terror.

Eso está padre; pero la verdad me hubiera bastado con poder escuchar punchis punchis punchis punchis, y sentir que mi pobre departamento se colapsa con las vibraciones del subwoofer.

No creo que mis vecinos me quieran mucho en estos días.

Imprimir entrada Imprimir entrada

Atom

En octubre de 2008 (hace más de seis años) compré una placa madre Mini-ITX con procesador Atom, y un gabinetito diminuto para albergarla. Armé la computadora (con todo un giga de memoria y un disco duro de 2.5″ con 320 Gb), le instalé Gentoo, la prendí, y (con algunas excepciones) así estuvo durante casi seis años.

Obviamente se apagó cuando me fui a Europa 3 meses en 2009, y de nuevo cuando me fui a Europa, Canadá y el Gabacho en 2011; pero fuera de esas pausas (y otras mucho más pequeñas, de horas o días) la chingada máquina estuvo prendida 24×7 durante casi seis años.

Atom era la máquina que usaba como “servidor” en mi casa; una presencia siempre viva donde podía respaldar información y (más comúnmente) dejar bajando cosas. Rápidamente se convirtió en un reflejo mío que, si quería bajar una película, una serie de televisión, música, programas, o cualquier tipo de información que necesitara más que un par de minutos, me conectara a Atom (ya fuera local o remotamente), y lo hiciera. Después (generalmente en la noche del mismo día), verificaba que lo que fuera que hubiera bajado hubiese terminado, y lo pasaba a mi media center para verlo u oírlo.

Antes de Atom, solía utilizar múltiples servidores de la UNAM a los que siempre he tenido acceso para lo mismo. Una vez que tuve Atom (y una conexión a Internet de Infinitum), sin embargo, se convirtió en mi modo normal de bajar cosas pesadas de la red.

Dos párrafos arriba mencioné que Atom “era” mi servidorcito. A inicios de este año comenzó a fallarme de forma medianamente regular; le cambié el disco duro, y cuando eso no funcionó, la desarmé por completo y la limpié a fondo con aire comprimido, lo que hizo que volviera a funcionar unas semanas… hasta que una vez más comenzó a fallar.

Hace unos pocos meses apagué Atom por última vez, y pensé que sencillamente tendría que aprender a vivir de nuevo sin ella. Sin embargo, cuando comenzaron a pagarme, y después de actualizar mi computadora de escritorio, decidí que sí valía la pena recuperarla así que fui de compras de nuevo.

Compré de nuevo un Mini-ITX (reutilicé el gabinetito original, así como el disco duro, que como dije cambié hace unos meses), ahora con un procesador Celeron a 2.41 GHz y 4 Gb de memoria (ya no venden menos, básicamente), le volví a poner Gentoo, y migré la instalación que tenía a esta nueva.

Está un poco más rápido la nueva Atom, pero para motivos prácticos es básicamente lo mismo. Ahora sólo espero que me dure al metros otros 6 años hasta el 2020.

Imprimir entrada Imprimir entrada

Acotado por la entrada y la salida

Después de al menos cuatro años, actualicé mi máquina de escritorio. No le había hecho nada al menos desde 2011 que hice mi viaje de seis meses del doctorado, exceptuando un cambio de disco duro del que hablaré más adelante. En gran medida fue por dinero, pero también porque no sentía que realmente lo necesitara.

El disco duro lo cambié en 2012, si mal no recuerdo (pero podría equivocarme). Y no lo cambié en el sentido de que no reemplacé el que ya tenía; sólo le agregué un disco duro de estado sólido (SSD) y ahí transpasé mi instalación de Gentoo.

El cambio fue impresionante; fue como si mi máquina hubiera vuelto a ser joven. Todo comenzó a responder mejor, y desde entonces decidí que todas mis máquinas de uso interactivo (o sea, mi media center y mis servidores excluidos) usarían SSD como disco duro principal. El media center lo he considerado, pero de entrada en mi media center actual no cabe un disco duro extra, y cuando lo vuelva a armar quiero que sea más pequeño todavía, entonces tengo que ver cómo le haré; ahí van todos mis videos, entonces necesito un disco duro grandote grandote.

(Por cierto; el año pasado traté de comprarle memoria extra a mi PC, para descubrir con la memoria en mano que ya no le cabía… así que cambié eso por una impresora).

Como sea: acabo de actualizar mi máquina de escritorio, porque ya tengo dinero y porque decidí que ya era hora, y creo que sí mejoré sustancialmente las especificaciones de mi máquina; ahora tengo un Core i7 a 3.4Ghz con 16 Gigabytes de memoria RAM. Pero esto es lo chistoso: la nueva máquina es sin duda alguna mucho más rápida que la anterior (por poner un ejemplo: webkit-gtk tardaba 1 hora 40 minutos en compilar en la vieja, y 24 minutos en la nueva)… pero en mi uso interactivo de GNOME, no noto la diferencia.

El escritorio responde, desde mi perspectiva, exactamente igual, las aplicaciones se abren básicamente en el mismo tiempo, etc. Hay algunas diferencias, desde luego: páginas con uso desenfrenado de JavaScript ahora jalan mucho mejor, y cosas que realizan cálculos muy pesados en el CPU en uso interactivo, como Inkscape, responden más rápido; pero son más bien las excepciones a la regla. En general, no noto una diferencia entre mi vieja máquina y la nueva.

Lo cual quiere decir que el software que yo uso, en particular, sus problemas de desempeño no están acotados por el poder de procesamiento del CPU, sino por el tiempo de respuesta de leer y escribir en el disco duro. Por eso sentí un cambio tan profundo al poner un SSD, pero no noté tanta diferencia con mi nuevo CPU.

Eso habla muy bien del stack de software que utilizo: el kernel de Linux, systemd, X.org y GNOME es en general software que tiende a ser óptimo en procesamiento (o lo suficientemente cercano a ello para que lo podamos considerar así), lo que causa que el estar leyendo y escribiendo pendejaditas del disco duro sea lo que lo alente, y por lo cual cambiarse a un SSD ocasiona un cambio profundamente perceptible en su funcionamiento.

Por supuesto, es posible que así haya sido desde hace años, sólo que el precio cada vez más bajos de los SSD hizo que hasta ahora me pudiera percatar de ello: no lo sé. Lo que sí sé, es que entonces tal vez ahora sí me sea posible conservar la misma computadora por cinco años sin que lo sufra demasiado (más aún porque ya casi no juego en la PC); vamos a ver.

Hace casi 10 años, cuando compré mi AMD X2 64, recuerdo que soñaba con la idea de que me durara justamente 10 años la computadora que armé alrededor de él. Por supuesto no fue así; pero creo que cinco con ésta actual a lo mejor sí lo sea. El tiempo nos dirá la respuesta.

Imprimir entrada Imprimir entrada