De vuelta a Linux: Ubuntu GNOME en MacMini y MacBook Pro

Después de mucho postergarlo, finalmente decidí dejar Mac OSX y volver a Linux.  Son varios los motivos y puedo decir tranquilamente que OSX no es para nada un mal sistema, de hecho para un usuario como yo es una excelente combinación de la potencia y flexibilidad de Unix con la disponibilidad de aplicaciones mainstream nativas en el sistema.

Pero yo quería otra cosa.

Ubuntu GNOME y Eclipse
Ubuntu GNOME y Eclipse

Con Linux me había acostumbrado a poder modificar lo que yo quisiera del sistema. Usándolo todos los días tiendo a aburrirme y en OSX como mucho podía cambiar el fondo de pantalla y el color de la barra superior, del resto prácticamente nada.

Por otro lado, para el tipo de uso que le doy al computador las herramientas en Linux están mucho más a la mano, en OSX están a través de brew o macports pero siempre son ciudadanos de segunda clase. Ni hablar de tratar de compilar PHP para que use SQL Server, Oracle y cosas por el estilo. Incluso algo tan simple en Linux como poder escribir unidades NTFS puede volverse un infierno en OSX.

En fin, al momento en que quise cambiar el look & feel de OSX para que fuera obscuro y así descansar más la vista y no pude, y al mismo tiempo el anuncio de Canonical de abandonar Unity fue el empujón que necesitaba para dar el paso. Ah! Y ya que estaba desconectado del desarrollo de GNOME por mucho tiempo, este review de Ubuntu GNOME me entusiasmó mucho más.

Y aquí estoy, escribiendo desde Ubuntu GNOME en mi computador principal.  Primero hice unas pruebas en mi portátil, cuya configuración la puedo armar en cualquier momento desde cero. Lo usé unos días y me convenció completamente, todo el hardware fue soportado sin hacer nada especial, incluso unos audífonos bluetooth que no funcionan en OSX sí funcionaron en Linux. Para qué decir del software, fue como sentirme de vuelta en casa con el añadido de que GNOME es quizás el mejor sistema de escritorio que he usado.  Ojo, antes que los Apple fan se me tiren encima, si no lo han probado no tienen como opinar. Sólo al usarlo te das cuenta de que en GNOME han hecho un excelente trabajo.

Advertencia

Antes de que me digan «ah no, es que yo uso la aplicación X» vamos a ser claros, cada uno usa el sistema que más le acomode y eso depende mucho de las aplicaciones que uno necesite para su trabajo diario. En mi caso tanto OSX como Linux me sirven, por lo que la elección de uno u otro sistema corresponde a otros factores, como los descritos arriba.

Para entender el caso, esto es lo que uso frecuentemente: Java SDK, Android SDK, Android NDK, Eclipse, GNU tools (build tools, bash, etc), MySQL PHP, un navegador, Dropbox, GIMP. En menor medida: Utilidad para analizar el uso del disco, monitores de sistema (temperatura, uso de recursos), etc.  Como pueden ver, todas estas herramientas están disponibles en ambos sistemas operativos, nativamente en Linux y a través de diversos mecanismos en OSX.

Seguramente hay algunos que quieran hacer la prueba o solucionar algún problema o duda respecto a instalar Linux en hardware de Apple, así que en el resto del artículo dejaré documentado lo que he ido ajustando en el sistema.

Instalación

Para no llenar de imágenes este post, a través de links dejaré screenshots de referencia. La instalación inicial se resume en los siguientes pasos:

Una vez instalado el sistema, se reiniciará el equipo y partirá con Linux.  Si quieren partir con OSX, usen nuevamente la combinación CMD+X a menos que les aparezca el menú de rEFInd. (A mi a veces me ha aparecido, a veces no).

Temperatura, ventiladores y uso de CPU

Con un sistema recién instalado lo primero que notarán es que el equipo se calienta. Eso es porque falta instalar una utilidad que controle el ventilador. Como preferencia personal a mi me gusta ver el uso de CPU y temperatura en el panel, así que vamos a instalar todo de una.  En un terminal:

sudo apt-get install lm-sensors cpufrequtils macfanctld tlp

Se trata de:

  • lm-sensors: permite obtener información de temperatura y velocidad de rotación de los ventiladores
  • cpufrequtils: permite ajustar la forma en que la CPU cambia de velocidad. La idea es que sólo use una alta velocidad sólo cuando sea necesario
  • macfanctld: con la información de temperatura, esta utilidad controla automáticamente la potencia de los ventiladores. Si la temperatura sube, aumenta la potencia de los ventiladores, y al bajar, reduce la potencia.
  • tlp: Se encarga de aplicar ajustes para reducir el uso de batería en portátiles

No se preocupen que en ningún caso usarán estas herramientas directamente, a menos que quieran modificar su comportamiento.  Lo normal es que instalen alguna aplicación de escritorio que usará estas herramientas para controlar el sistema.  En mi caso instalé extensiones de GNOME shell que entregan información de uso en la barra superior y permiten realizar ajustes del sistema en forma gráfica.  Mis elegidas fueron:

cpufreq
CPUFreq GNOME Extension

Al instalar estas aplicaciones pude entender un problema que siempre tuve con OSX en mi MacMini, y es que el equipo se calienta demasiado, al punto en que la tarjeta WiFi comenzaba a fallar. El MacMini en general es MUY silencioso a menos que esté trabajando en forma intensiva, y esto es simplemente porque el ventilador no comienza a funcionar sino hasta que la temperatura es muy alta.  Por lo tanto, en general el equipo andaba con alta temperatura pero en silencio.  Al instalar macfanctld lo primero que llama la atención es que el ventilador parece estar andando siempre, pero es simplemente porque la configuración de origen está hecha para mantener el sistema andando a temperaturas razonables, y para eso tiene que usar constantemente el ventilador.

Por lo tanto queda la opción de a) alta temperatura y silencio o b) baja temperatura y ventilador andando.  Como ahora estamos hablando de Linux, basta modificar el archivo de configuración de macfanctld para ajustarlo como uno quiera.  Se puede definir la velocidad de rotación mínima y dos temperaturas: La temperatura mínima en donde el ventilador estará en su potencia mínima definida, y la temperatura máxima en donde el ventilador funcionará a toda su potencia.

freon
Freon GNOME Extension

Sin tener datos exactos, pero recordando cómo funcionaba esto en OSX podría estimar los valores que estaba usando en mi equipo. Si quisiera resumir todos los valores tenemos:

  • OSX en MacMini: 1500RPM, min 80º, max 90º (estimado)
  • Ajustes originales de macfanctld: 2000RPM, min 45º, max 55º (macfanctld.conf)
  • Mis ajustes de macfanctld: 1800RPM, min 60º, max 70º (personalizado)
  • Config actual un poco más tibia pero más silenciosa: 1800 RPM, avg 70º – 80º, periferia 50º – 68º

Ahora el ventilador se mantiene más activo, pero ya no me quemo al tocar el macmini.

Para los que tengan este problema y estén usando OSX, entiendo que hay aplicaciones que permiten ajustar estos valores también, sólo que yo no supe de eso hasta que instalé macfanctld.

Dark theme

Lo que gatilló el cambio con fuerza fue contar con un escritorio obscuro para descansar la vista, y Ubuntu GNOME viene preparado para hacer ese cambio de una forma muy sencilla. Simplemente deben abrir la Herramienta de retoques de GNOME Shell y en Apariencia activar Tema obscuro global y luego en Tema -> GTK+ poner Adwaita-dark.

GNOME Dark settings
GNOME Dark settings

Java y Eclipse

Si bien Ubuntu incluye Eclipse, es una versión relativamente antigua.  Personalmente prefiero instalar la última versión de Eclipse desde el sitio oficial e instalar JDK 8 de Oracle.

Primero deben instalar JDK8 con los siguientes pasos gracias a WebUpd8:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Para instalar Elipse, descargan el instalador, lo descomprimen y ejecutan. Presentará varias opciones de instalación, yo seleccioné Eclipse for Java Developers.

Ajustes adicionales de Eclipse

Eclipse a secas no tiene todo lo que suelo ocupar, asi que en Ayuda -> Eclipse Marketplace siempre instalo las mismas extensiones a las que ahora se agregan aquellas para obtener un aspecto obscuro.  Una funcionalidad no muy conocida del Marketplace es que pueden marcar extensiones como favoritas, para que sea más fácil instalarlas en un Eclipse nuevo, simplemente abren los favoritos y ponen «Instalar todo».

Mis extensiones favoritas de Eclipse son:

  • Eclipse C/C++ IDE (CDT)
  • PHP Development Tools (PDT)
  • Android Development Tools (ADT)
  • Subclipse
  • Eclipse Mooonrise UI Theme
  • Eclipse Color Theme
  • Eclipse Data Tools Platform (DTP)

Las últimas dos ayudan a darle el aspecto obscuro. Una vez instaladas van a Preferencias -> Apariencia -> Tema y seleccionan Moonrise Standalone.  Luego en Preferencias -> Apariencia -> Colores seleccionan el que sea de su agrado. Yo estoy usando Gedit Original Oblivion.

Eclipse en Ubuntu GNOME
Eclipse en Ubuntu GNOME

Música

Para no duplicar mi biblioteca de música, importé los archivos directamente desde mi antigua librería de iTunes.  Inicialmente podía ver la partición de OSX en Archivos -> Otras ubicaciones, pero la carpeta /Users/fcatrin/Music no tenía permisos de lectura. Para solucionarlo inicié en modo rescate de OSX (CMD+R), entré a mi carpeta personal via terminal y apliqué:

chmod 755 Music

Luego reinicié y agregué la carpeta en Rhythmbox

Biblioteca iTunes en Rythmbox
Biblioteca iTunes en Rhythmbox

De origen no viene incluido un ecualizador, pero hay uno disponible a través de plugins. Acá pueden encontrar ese y otros bastante interesantes: Installing rhythmbox 3.0 plugins … the easy way!

Android

Para Android un par de problemas al intentar levantar un emulador:

Primero no me dejaba crear una máquina virtual (AVD), fallaba al crear la tarjeta SD.  Eso fue porque la utilidad que crea la tarjeta SD es de 32 bits y requiere bibliotecas de 32 bit que no son instaladas como parte del SDK. La solución es sencilla:

sudo apt-get install lib32stdc++6

El segundo problema fue la aceleración de video que no queda lista para llegar y usar.  Se requiere instalar glxinfo y actualizar una biblioteca del SDK copiando la que ya tienen en el sistema.  Se reduce a:

sudo apt-get install mesa-utils

cd ~/android-sdks/tools/lib64/libstdc++/
rm libstdc++*
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 .

Con eso quedará instalado glxinfo, y actualizada libstdc++ apuntando a la que está instalada en tu sistema.

Otros ajustes

Hay otros ajustes que se pueden hacer al sistema para que quede más sintonizado con los sitios web existentes, el idioma local, entre otros. En esta lista están:

  • Instalar los paquetes de corrección ortográfica al español
  • Instalar las fuentes de Microsoft
  • Instalar fuentes adicionales
  • Instalar Dropbox.
  • Ajustar campos de texto en Firefox

Para el primero y segundo basta con:

sudo apt-get install ttf-mscorefonts-installer aspell-es myspell-es

Para el tercero, descargar y abrir los archivos TTF incluidos. Se abrirán con el instalador de fuentes.

Para Dropbox pueden ir al instalador de aplicaciones Software que se encuentra en los iconos de la derecha y buscar por Dropbox. El sistema descargará e instalará Dropbox automáticamente.

Dropbox muestra un ícono de actividad en la barra de notificaciones que no existe como tal en GNOME, pero para variar, hay una extensión que la habilita, se llama TopIcons Plus.

En cuanto a los idiomas, usualmente escribo en inglés y en español indistintamente, lamentablemente Firefox sólo permite usar un idioma a la vez. Hay una forma de unir los archivos de corrección ortográfica como un solo idioma pero no lo he hecho aún.

En Evolution fueron más flexibles y se puede configurar más de un idioma al mismo tiempo.

Al usar un tema obscuro en Firefox se puede tener problemas con los campos de texto, ya que a veces los sitios modifican sólo el color defondo o sólo el color del texto y quedan invisibles porque asumen que el fondo es blanco.  Acá hay varias opciones para solucionar el problema de campos de texto en theme obscuro, personalmente me quedé con agregar un archivo userContent.css.

Creo que eso es todo por ahora, seguramente iré agregando más detalles en este post. Espero quedarme con Linux por un buen tiempo.

Finalmente: Tal como lo recordaba, los fonts en Linux se ven mucho más suaves y definidos que en OSX.

Loa: Recuerdos del pasado

Después de mi post sobre Programando en los ’90 aparecieron varios sansanos con más recuerdos de esa época, y me acordé de una joyita que tenía guardada hace años y que al parecer ya desapareció de la red.  Les dejo acá la transcripción integra:

From utfsm!not-for-mail Mon Jul 28 18:30:21 1997
Path: utfsm!not-for-mail
From: edo@ce2usm.valparaiso.cl (Eduardo Romero U.)
Newsgroups: usm.general,usm.cachureo
Subject: Loa: Redescuerdos del Pasado
Date: 11 Jul 1997 20:21:18 GMT
Organization: Utfsm Amateur Radio Group.
Lines: 201
Distribution: local
Message-ID: <5q64ju$sj3$3@manutara.inf.utfsm.cl>
NNTP-Posting-Host: ce2usm.valparaiso.cl
X-Newsreader: TIN [UNIX 1.3 BETA-950824-color PL0]
Xref: utfsm usm.general:878 usm.cachureo:859

Para mas estrugarse las lagrimas, un recuerdo de los annos mozos del VM.
Saludos
Edo.
=========================================================================
From:         Francisco Javier Fernandez M <FFERNAND@LOA.DISCA.UTFSM.CL>
Subject:      Curso de redes

Hiya!
    Se han dado cuenta de los mensajes del curso de redes. Hay que hacer
notar que han evolucionado.
    Quien no recordara esos estupidos mensajes como

subject: nada
"Esto es una prueba... chao"

subject: (vacio, porque la inteligencia no les da pa saber que es subj)
"Hola, soy nuevo y me llamo XXX estoy en ing. civil en xxx .. chao amigos"

subject: REDES
"LES LLEGA ESTE MENSAJE"

    Notese la estupidez cronica mostrada en los mensajes. Es como cuando
un idiota se para frente a un microfono, pone cara de burro mascando
limones , sopla 3 veces (ni 2 ni 4, tiene que ser 3) y dice "1 2 3
probando probando"
    Ademas andan con sus libritos de redes pa' toas partes.

weon:    "De donde vienes?"
aweonao: "Del curso de Redes Internacionales" Lease con voz
          de cuico y cara de imbecil
weon:    "Ahhhh" (cara de idiota al cubo) "Y que es esa wea?"
Aweonao: "La verdad es que no te lo podria decir en pocas palabras
          pero es una wea mas chora que la cresta. Ademas me van a dar
          un diploma que me va a servir para mi curriculum"
weon:    "Shuta! que capo eres. Me podrias invitar a la sala IBM pa ver
          como es la weaita" (cara de tarupido {tarado+estupido})
aweonao: "Pero no faltaba mas viejo, por supuesto"

     Aweonao lleva a weon a los VM. Aweonao no pesca su cuenta I5bit0xx
o redintxx pero weon se mete todos los dias a los tarros, se hace de
n amigos, se hecha el semestre y se cambia a ejecucion.

    Y esta historia es ciclica. Llueven los aweonaos y los weones.
Pero no todos son iguales. Tambien hay aweonaos que no se sacan el 55
en la prueba y no les dan cuenta .. (o no J...s C....y ?)

Tambien hay weones que le cambian la password, emocionadisimos por
usar el nuevo comando DIRM PW y despues se les olvida y se cuelgan
del timbre para preguntarsela al op.

Tambien estan los que usan el Chat para conversar y le mandan
mensajes weones al operador y mandan un CMD UCHCECVM Q SYS al relay...

Ademas, revisando unas consolitas, hemos visto que hay weones
que mandan el tipico "Hola, me llamo xxx. Estas ocupado(a)?"
a maquinas como MAILER, TCPIP o VTAM.

Primera fase: El prehistorismo vmniano
      Se caracterica por ejecutar comandos como DIR, no sacarle
el pito a las teclitas, usar el contraste y brillo a maximo para
cagarse los ojos, buscarle como loco la disketera al terminal y
preguntar "Pa que es esa tapita?" ... "Y esta perillita?"

Segunda fase: Edad media
        Wow! nuestro amigo descubre que la perillita es para el
volumen del beep. Aqui se pasa horas y horas weiando con el
pitito. Nuestro habil amigo descubre el DISCADOC (y se entretiene
mas encima ! como sera de weon). Busca algun nodo de estados unidos
y se pone a mandar CPQ N como loco. Busca su victima y empieza con
esos tipicos "Hello, are you busy?" (notese ... weas ya es bilingue)
     En esta etapa ya empieza a traer amigos para que vean lo pulento
que es, y a la polola tambien a ver si se exita con la wea.
       Pero luego ... Oh! descubre el relay

Tercera fase: Como hacha pa'l relay:
       Esta fase es cronica. Empieza a divagar por el relay y no lo
saca nadie del terminal. Manda fotos pa' EEUU y le llegan postales.
Su satisfaccion es inmensa, y llega a un cuasi-orgasmo cuando
hay linea por la uchcecvx, por que sabe que podra jugar con el relay.
       Nuestro amigo ya deja el discadoc. Pero recuerda que en su
casa tiene un sinclair Z80. Aqui empiezan los dialogos a consultoria.

weon: Tell consulte Necesito ayuda
Imsg: Consulte not in cp directory
weon: Tell consulta Ahh! entiendo, estas ocupado, verdad?
Imsg: Consulta not loged on
weon: Tell consulta Oye! no tienes porque decirme weon!
.... y se repite el ciclo

       Por fin se da cuenta de lo que hacia y se caga de la risa.
Lo primero que hace es contarsela a otro como que "A un amigo le paso"
       Computin descubre el listserv. WOW! que impresionante!
De nuevo a la carga con el DISCADOC (fascinado). Se mete a
20 o 30 listas. El reader se le llena y en vez de conversar por relay
se la pasa todo el dia leyendo correo.

Weon: "Esto se acabo!"
weon: pur rdr all
weon: tell listserv signoff * (netwide

Cuarta fase: Weas descubre internet
      Si Bitnet era la raja, esto la cago! Lo primero es el irc.
El irc es fundamental, ya que es la primera vez que usa el comando
HX, que sera el mas usado en su estadia en los VM. Porque se
queda colgado 20 veces al dia. Aqui conoce el tipico.:

weon: DIN DON DIN DON DIN DON
op:   SI?
weon: Buenos dias. Soy xxx de la cuenta xxx y soy tan idiota que se
      ma quedo pegada la cuenta. Le puede hacer un force , plis?
op:   Okay.  BEEEEEEEP (que pito mas desagradable)

       Luego entra al fascinante mundo de FTP. Se pasa horas cagandose
los ojos frente al SIMTEL LISTING. Wevea y wevea hasta que trae
todos los archivos que se le antojan. (en este momento aprende que es
un disco temporal y que con un disco de 10 Mb te llega un warning
del op).
     Y llegamos al telnet! aqui empieza lo bueno. A mister weveta
le dan todos los ataques de hacker y hace un telnet al primer host
que pilla y sucede lo siguente

Dick SUN/OS SYSTEM INC. vers 1.3 release 4.7
login: root
password: root    (wow! notese la habilidad)
login incorrect

login: root
password: sun/os. (y jura que se va a meter!)
login incorrect

login: root
password: pico   (aqui le sale el chilenismo)
login incorrect

Connection closed by foreign host

       Si ustedes creen que se chorio, estan equivocados. Aprieta
PF1 y sigue dandole.
       Luego siguen estupideces varias como gopher, archie, whois, etc.

Quinta fase: Weas programador
       Weitas se aburre de ser un simple usuario, y motivado con
modificar 500 veces el profile , quiere aprender rexx.
       Aqui conoce a Mitzio. Un hito en programacion, hackeo, weveo,
replys y derecho de autor de programas y manuales.
       Aprende un poco de rexx y el primer programa que hace no le
funciona.
weas:   "Mitzio! No funciona!"
Mitzio: "Mmmm pero si es re facil. te falta solo un strip(arg*var(parse
         (a-2||fr"cp log"Execio34) exit(0):
weas:   "Ahh . como no se me ocurrio antes"
.... y asi sucesivamente.

Sexta fase: VM? buah!
         Esta fase es crucial. Aqui weas tiene que decidir si se queda
en los vm o se mete a otras plataformas.
         Va a los Ps y se encuentra con la paternal figura de C. Libano:
C.L.:  "Usted es mechon"
weas:  "Si, de ing. ejec en xxx"  (con una cara de orgullo tremenda)
C.L.:  "FUERAAAAAAAAA!!!!"
weas:  "Pero .."
C.L.:  "FUERAAAAA!"
weas:  "Okay. Salvo este archivo y me voy"
C.L.:  "Fuera... AHORA!"

         Y se va ...
         Pero baja un piso y se mete a informatica. "Chucha los
terminales ricos" (refiriendose a los wyse) . Y no resiste a
meter el nombre de su cuenta en el LOGIN: que lo llama a
probar. Pero. se da cuenta que no tiene cuenta abajo. Oh! desilucion
         Pregunta a un gallo con cara de esperar que compile su
mega programa en C.
weas:  "oye, yo tengo cuenta en los ibm, no sirven aca"
gallo: "Ja! ja! Esto es UNIX compadre, ubicate"
weas:  "Que e' esa wa?"
gallo: "Como?, no sabes? El sistema operativo del futuro, viejo"
weas:  "Ahh, fijate que yo se Msdos y VM/SP"
gallo: "Ah! de veras que eso se usa alla arriba, en Jurasic Park"
      Y weas mira la pantalla y ve que para un misero directorio
el gallo hace un ls -la & (obviamente el & tiene que ir. Cuando
se ha visto un informatico que no deje procesos en backgroud
pa puro weiar)
       Weas se trauma. Dice que esto no es para el.
       Y sigue en su cuenta de Vm. Seguiran los FTP, los
Telnets, las conversaciones de relay...
       Un dia llega a su terminal y ve que redintxx no esta en
el directorio de cp. Cae en un profundo trauma y muere.

P.d.: Otras innovaciones de weones son: Los que se meten al circulo
      de radioaficionados y ocupan la CE2USM. Los que se meten al
      encuentro de estudiantes y ocupan la EIEI. Idem con la IEEE
      Tambien algunos se consiguen la cuenta de un profe, el profe
      se va de la USM y siguen con cuenta per secula seculorum
     (o no J...o Z....a ?)

Sin mas que agregar

    Hawk

 

Programando en los ’90

Programar siempre me ha sido entretenido pero difícil. No me malentiendan, puedo lograr buenos resultados pero eso no implica que sea fácil, sólo que soy lo suficientemente porfiado para seguir adelante hasta lograr lo que quiero hacer. El poder convertir en real algo que antes sólo existía en la imaginación es una de mis principales motivaciones, y si esto plantea algún desafío técnico interesante, mejor aún.

Creo que uno de los motivos por los que ya no me entusiasma por ejemplo entrar a la programación de videojuegos, es que ahora tienes libertad para hacer cualquier cosa, y básicamente lo que se trabaja es el gameplay y el contenido. A mi en realidad lo que me llamaba la atención era el desafío técnico, como por ejemplo tratar de hacer un port de un juego de arcade al Atari (800): Cómo usar adecuadamente los 4 colores por línea, o los cuatro canales de sonido, o sacar el jugo a su CPU de 1.79Mhz con apenas 3 registros.  Recuerdo que podía pasar una tarde entera trabajando en una «rutina» de assembler en un cuaderno hasta llegar a su mejor versión.  Era una época en que una simple optimización podía significar que algo fuera factible o no.

 

2017-04-20 22.06.15
Reproductor de música FSTR

 

Bueno, eso era en los ’80 y reservaré ese relato para un próximo articulo de Prince of Persia para Atari.  Ahora vamos a ir «no tan lejos» pero sí a una época que ya no existe y que creo que sería difícil imaginar para quien no la vivió, y para los que la vivimos se nos ha ido olvidando con el tiempo.  Ahora es tan simple aprender algo que no nos acordamos de cómo se hacían las cosas cuando no existía stackoverflow, no había a quién preguntar y peor aún, no había documentación de ningún tipo.

Internet a inicios de los ’90

La primera mitad de los ’90 es una época que recuerdo con mucho cariño, se comenzaba a hacer accesible tener computadores más potentes y comenzaba a haber algo de información disponible para aprender a programarlos, por ejemplo en la biblioteca de la UTFSM podías encontrar algunos libros de Intel sobre la programación x86 y lo más importante, algo de código fuente para mirar en algunos rincones de Internet.

 

Intel 286 programming
iAPX 286

 

A ojos de hoy eso suena muy natural, pero era muy diferente a lo que tenemos hoy en día.  De partida el acceso a Internet no existía en las casas, sólo en las  universidades,  y siendo mechón como yo… ni siquiera podías usar internet en la universidad.  Entonces, no era llegar y escribir en un buscador lo que andabas buscando, no señor! No había tal buscador, ni siquiera tenías un navegador, la información estaba principalmente en servicios de grupos de noticias (usenet / newsgroups) – imaginen algo como un foro universal de internet de sólo texto – y sitios de descarga por ftp que se usaba por linea de comandos.  Para buscar, existía una aplicación llamada Archie que buscaba archivos, entonces sólo si el sitio contaba con un índice decente, podías llegar a encontrar algo.

 

tin
Newsgroups en Usenet (via TIN)

 

Ahora, como Internet no era tan grande como en la actualidad, los sitios que tenían información sobre programación de PC eran pocos y por lo tanto muy conocidos. Había un repositorio en especial que estaba replicado en varios servidores de FTP, se llamaba Simtel y era un paraíso.  No sólo había código fuente para mirar, sino que también documentación! Todo eso disponible al alcance de un comando GET.  El problema era que no podías llegar a ese punto si el acceso a esos sitios estaba bloqueado o peor aun, eras mechón como yo.

Siendo mechón en la UTFSM a inicios de los ’90

Y es aquí donde creo que por primera vez hablaré en público de las historias no contadas de mis tiempos en la UTFSM, cuando sabías que el conocimiento estaba disponible, sólo que no lo podías alcanzar. Esto era más o menos entre 1993 y 1994, y la UTFSM pagaba por tráfico internacional por lo que éste estaba permitido sólo para alumnos que tuvieran ramos o actividades que lo justificaran. El acceso para el resto de los alumnos era sólo a las réplicas nacionales en donde estaban los newsgroups (saludos a chile.comp.pc), pero no estaba Simtel.  Entonces algo había que hacer.

Aparte de no tener acceso a Simtel por estar en redes internacionales (que divertido suena eso ahora), estaba el inconveniente de que si llegabas a conseguir algo de información, sólo te podías llevar una copia en la mente, porque no podías pasar esa información a diskettes – ni hablar de pendrives, aun faltaban varios años para que siquiera inventaran el puerto USB. El único acceso era un terminal de texto monocromo en donde al menos podías descomprimir y leer los archivos in situ. Dado el estado de la tecnología todo era archivo de texto, incluso las revistas, así que bastaba con eso.  Aún así, persistía el problema de llegar a Simtel.

 

Terminal-wyse50
Terminal de texto Wyse 50

 

Los laboratorios de «investigación»

Y es aquí en donde aparecen los amigos de siempre: Luis Cueto, Max Celedón, Cesar Hernández.  Ellos por estar en cursos superiores tenían otros amigos que tenían acceso a otros laboratorios, en donde se hacía «investigación» y por lo tanto sí tenían acceso a los nodos internacionales.  Entonces, desde ahí se podía llegar a Simtel, pero tampoco había forma de llevarse archivos a la casa para estudiarlos con calma, ya que eran terminales de IBM conectados a un mainframe, al que sólo tenía acceso un grupo selecto de operadores – capa blanca incluida – a los que tenías que llamar con un timbre para que te mataran un proceso si éste se caía… cosa que ocurría habitualmente dado el número de veces que se escuchaba sonar el timbre famoso.

 

2bb5fd362fb409376af3b0108f19982f
IBM: Nunca los vi, pero es para hacerse una idea

 

Y es aquí donde entra a jugar la audacia de Max. La maquinaria de descarga de información funcionaba de la siguiente forma:  Max, Luis o César se conseguían una cuenta de IBM con algún amigo «investigador», eso nos permitía usar ese laboratorio para llegar a Simtel siempre y cuando estuvieras dispuesto a suplantar presencialmente al verdadero dueño de esa cuenta. Yo no era de los valientes puesto que era muy joven para darme cuenta de que los usuarios de ese laboratorio no se caracterizaban por sus habilidades sociales, por lo que difícilmente te preguntarían el nombre. Esas cuentas iban muriendo pero Max siempre aparecía con una nueva, cuentas con nombres como i5elo200 o i5esp101 eran algunas de las regalones, e incluso Max tuvo una propia más tarde, i5mceled.

 

Captura de pantalla 2017-04-20 22.28.05
Inicios en la comunidad MSX con cuenta de «alguien»

 

Una vez encontrados y descargados los archivos en ese laboratorio IBM, tenías que pasarlo a tu cuenta Unix en el laboratorio que no tenía acceso a los nodos internacionales, pero sí tenían disketteras. Transferir los archivos era fácil porque esos laboratorios estaban conectados, y mientras no revisaran los logs del servidor ftp de Unix no habría problema.  Una vez con los archivos en la cuenta, venía el paso final que era pasar esos archivos a diskette.

Pidiendo favores a los verdugos

El último paso era pasar los archivos a diskette, y el más complicado porque tenías que pedírselo a una persona. Y no era a cualquier persona. En una zona especial del laboratorio Unix (labsw para los amigos), había un grupo de unas 4 personas que estaban tras un vidrio, intocables, omnipotentes, omniscientes. Esa división no era antojadiza, eran los únicos con acceso a todos los nodos de internet y a las estaciones de trabajo Unix de la época. Mientras los alumnos regulares como uno usaban un terminal de texto, ellos usaban equipos con 128MB de RAM, pantallas de 21 pulgadas, discos duros gigantes y mouse con puntero láser, cuando lo normal en las casas era tener 1MB de RAM, pantalla de 14 pulgadas y mouse con bolita.  Sí señor, ellos eran unos elegidos – literalmente porque había que postular al cargo – y tenían el poder de cerrar tu cuenta en cualquier momento (omnipotente) y saber todo lo que estabas haciendo (omnisciente).

 

Sun SPARCstation

 

Sí, a ellos tenías que pedir que te copiaran a diskette los archivos que obtuviste desde nodos prohibidos, usando cuentas que no eran tuyas, suplantando a personas que ni siquiera conocías. Y algunos de ellos eran famosos por ser de malas pulgas, con varias víctimas a quienes se les cerró la cuenta por mucho menos. Siempre recordaremos con cariño al famoso Arcadia, de quien no daremos detalles para proteger su verdadera identidad.

Pero esto no era problema para Max, a su modo de ver las cosas, bastaba con decir que necesitabas copiar una tarea de tu cuenta Unix a un diskette y listo.  Su apuesta era que el ayudante no se iba a dar el trabajo de revisar los archivos, sólo era cosa de usar los nombres adecuados, y así era como el archivo tarea.zip podía incluir los artículos de optimización y gráficos de Michael Abrash y nadie se enteraría.

Y así fue!

Con el tiempo, comenzamos a descargar información de hardware de PC para aprender a programar la VGA, Adlib, Soundblaster, llamadas a la BIOS, llamadas a DOS, luego comenzó a surgir información más interesante aún como partes no documentadas de la VGA, el famoso ModoX, smooth scrolling, algoritmos de sonido, hacking, se pueden imaginar el paraíso que eso significaba para alguien que antes sólo contaba con el manual de usuario del PC.

Y como sucede muchas veces – sino pregúntenle a Penta y SQM – con el tiempo agarramos confianza y comenzamos a descargar tablaturas, demos (de la demoscene), juegos shareware, música en formato MOD, MIDI… todo era tarea. Tarea, tarea, tarea.

Imagen de previsualización de YouTube

La bienvenida

Hasta que un día, Max llegó al laboratorio Unix y ahi lo estaba esperando Arcadia junto al resto del olimpo. Pero no estaban solos, ya que con ellos se encontraba el ser superior (literalmente): Horst von Brand dueño y señor del laboratorio Unix, fundador y prócer de ése y otros imperios. Si Horst quería hablar contigo era porque habías hecho algo muy bueno, o muy malo. Siendo éste último nuestro caso.

Tal honorable bienvenida tenía un propósito claro y preciso: Presentar ante Max los logs de transferencia de todas las «tareas» a la fecha, que ya sumaban megas y megas internacionales, multiplicados por su equivalente monetario.  Según cuenta la historia, gran porcentaje del millonario costo por transferencia de datos de toda la universidad se debían a nuestras «tareas».

 

227518_1030506880700_7197_n
Con Max en el verano de 1994

 

El resto de la historia sólo la conoce Max y el comité de bienvenida.  Por supuesto, su cuenta fue cerrada y a la larga la mía también, pero por otros motivos que podré contar en un nuevo post.

i5esp101@loa, i5meceled@loa, hydefus@inf, human@inf nunca los olvidaremos.

Y qué hice con toda la información descargada? Todo lo que pude y quise! Desde algunos experimentos como rutinas de reproducción de mods que nunca fueron utilizadas, hasta una aplicación para reproducir músicas de MSX (computador de 8 bits) en nuestros PCs.  Incluso las rutinas de sonido que pude ver en esa época me ayudaron años después a hacer DeFX – que más tarde me llevó a tvnauta – y después resucitó como MusicTrans.  Las partes en C de MusicTrans y RetroX le deben mucho a lo que aprendí en esos años también.

Cuando uno recuerda lo que costaba aprender a programar en ese tiempo comparado con lo que tenemos hoy, no hay excusas si quieres hacer algo interesante, las respuestas están al alcance de un click!

PD: Muchos detalles han sido omitidos para facilitar la lectura. Algunos eventos o especificaciones pueden ser no tan precisos, lo serían si no hubiese esperado 20 años para escribir este post.

Como teaser, les dejo un demo de la aplicación de música, a la que le dedicaré un próximo artículo.

Imagen de previsualización de YouTube