Loa: Recuerdos del pasado

Viernes, 21 de abril de 2017 Sin comentarios

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

Jueves, 20 de abril de 2017 Sin comentarios

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

Cargador de signo de exclamación en Atari – Decodificado

Viernes, 14 de marzo de 2014 9 comentarios

El famoso signo de exclamación

Cuando los computadores Atari recién llegaron a Chile, practicamente todos los juegos que se podían encontrar en cassette usaban el famoso cargador del signo de exclamación.  Se iniciaba la carga de cassete encendiendo el computador con las teclas OPTION + START presionadas, sonaba un beep, se presionaba una tecla y después de unos 10 segundos sonaban unos 6 “pitos” y aparecía un signo de exclamación en la parte inferior derecha de la pantalla, luego pasaban unos 10 segundos más y comenzaba a sonar la carga del juego en sí, a veces amenizada por alguna simple pantalla de presentación.

Si algo fallaba durante la carga, se debía comenzar desde cero, por lo que toda la ansiedad acumulada durante los varios minutos de carga se veía absolutamente recompensada cuando finalmente aparecía el juego en pantalla.  Posteriormente aparecieron mejores sistemas de carga aplicando “turbo” (mayor bitrate) y un mecanismo de recuperación de errores que permitía continuar la carga desde el punto de falla y así no comenzar todo desde cero.  Estos sistemas de carga avanzados merecen un artículo propio, lo que vamos a ver acá es el cargador original del signo de exclamación.

Básicamente estos sistemas de carga funcionaban así: Al iniciar el sistema, la tecla OPTION presionada indicaba al sistema operativo del ATARI que desconectara la ROM del lenguaje BASIC (su espacio era ocupado por muchos juegos), y la tecla START indicaba que se quería hacer un boot desde cassette.  Cuando el usuario presionaba una tecla después del beep, el sistema operativo del ATARI cargaba un archivo y lo ejecutaba.  En el caso de practicamente todos los juegos, este archivo era un cargador un poco más inteligente que se encargaba de cargar el juego en un formato más flexible (XEX).  Si vieramos la cinta como un esquema, sería así:

| ------- CARGADOR EN FORMATO BOOT DE ATARI -------|---------- JUEGO EN FORMATO XEX ----------|
| CARRIER - BLK1 - BLK2 - BLK3 - BLK4 - BLK5 - EOF | CARRIER - BLK1 - BLK2 - ... - BLKn - EOF |

Siempre quise saber exactamente qué hacía el código de este cargador tan simple, y por qué era tan grande (unos 640 bytes). Gracias al usuario AsCrNet de AtariWare que me envió un dump del cargador pude finalmente decodificarlo y ver qué hacía.

Leer más…

Tags: ,

Aclaraciones sobre el acceso a mi colección de videos y música simplificado

Lunes, 18 de marzo de 2013 15 comentarios

Con la publicación de mi artículo sobre cómo simplifiqué el acceso a mi colección de videos y música, tuve varias conversaciones con personas que habían hecho algo similar, y como en los asados, cada uno tiene su propia y “mejor” forma de hacer las cosas.

Para los amigos que aun están en la etapa de ver cómo hacerlo, quiero hacer algunas aclaraciones para ayudarlos a entender mi experiencia y el por qué de algunas decisiones que tomé en la implementación.

Creo que lo primero que conviene saber es qué es lo que ya había probado (y no era suficiente).  Por ejemplo muchas de las soluciones que me indicaron del tipo “pero es más fácil si …” eran justamente lo que tenía como punto de partida, y quería mejorar.

Implementación original

Incialmente tenía un Zotac Mag con XBMC conectado a uno de los televisores.  Este equipo tenía parte de mi contenido en su disco duro, y el resto lo leía desde una biblioteca compartida en otro PC via red.  Este es el equivalente a tener por ejemplo un computador con una biblioteca de iTunes compartida y un AppleTV o un Mac Mini conectado al televisor actuando como reproductor.

Esta solución tiene varios problemas para mis necesidades personales:  Uno es que necesitas tener al menos un equipo siempre encendido, en este caso el que comparte la biblioteca (sea iTunes u otro), y si es un Apple, necesitas además tener un reproductor Apple por cada televisor.  Si no es Apple, pues es lo mismo que ya tenía con el Zotac Mag.  Por otra parte, el contenido del disco del Zotac Mag no podía ser compartido fácilmente.

Mientras tanto, el segundo televisor no tenía nada conectado, y la única forma de acceder al contenido era sacando el disco USB con mi biblioteca para conectarlo directamente al PC.  Engorroso si son las 2AM o estás compartiendo un buen momento con otra persona. Ni hablar si eso implicaba copiar archivos o que el televisor no pudiera reproducir los archivos.

Pensé en algún momento conseguir otro equipo como reproductor, pero en el camino y por otros motivos, me hice de un GoogleTV y un AndroidTV, ambos con capacidad de reproducir contenido via DLNA.

Entra el NAS

Para eliminar el equipo que siempre está encendido, fue donde recurrí al NAS.  También es un equipo que siempre está encendido pero tiene ventajas bien interesantes:  Su consumo de energía es mínimo, es un server puro (no hay capacidad ociosa), y ocupa tan poco espacio que es como si no existiera.

Aca pueden ver una foto del NAS, y para apreciar su reducido tamaño, le puse encima un DigiPass, que es del porte de un llavero.

NAS

NAS junto a un DigiPass

Tener el NAS es como si mi biblioteca estuviera simplemente “en la red” de mi casa.  Es tan pequeño que el router motorola de VTR parece una torre al lado de él.  Lo único molesto es su led rojo cuando está encendido, pero se nota sólo si la pieza en donde está tiene todo apagado.  Tampoco tiene ventiladores, por lo que es absolutamente silencioso.

Los reproductores

Para la reproducción de video, independiente de que ocupara XBMC, un computador con VLC, un televisor Smart, GoogleTV, Android TV, etc, el denominador común siempre terminó siendo DLNA.  Es más, en el televisor Smart sólo enchufas el NAS y te aparece lo que muestra la foto de abajo.

NAS en LG Smart TV

NAS en LG Smart TV

Una de las críticas a mi implementación era que era “muy hacker”.  Pero las “hackers” de mi casa no tienen mayor problema presionando el botón “input” para seleccionar el NAS.

Acá hay una captura de lo que se ve cuando selecciono el NAS en el televisor.

Selección de videos del NAS en LG SmartTV

Selección de videos del NAS en LG SmartTV

Por el lado del televisor “no smart”, este ya se encontraba conectado a un GoogleTV. Lo único que me costó fue decidir qué aplicación usar para acceder al NAS, y justamente escribir este artículo es para ahorrarles ese tiempo. Basta instalar MediaHouse desde Google Play, seleccionar el NAS y listo, verán las mismas carpetas que se ven en la foto.

Transcodificación

El no poder reproducir el contenido por encontrarse en un formato no procesable por los reproductores es algo que sólo se puede evitar conectando un computador con XBMC o VLC al televisor, en donde la disponibilidad de codecs es infinita.  Pero eso es volver al punto de inicio, cuando ya tenía el Zotac Mag con XMBC.  Lo mismo sería conectar un Mac Mini o un AppleTV, es volver al punto de inicio del que quería escapar.

La transcodificación tiene sus pro y sus contras. El principal contra es que es un proceso lento, dependiendo del computador puede tomar unos 10 minutos por hora de video.

A su favor tiene varias cosas, sobre todo considerando que el video se transcodifica sólo una vez. Vamos viendo:

  • El archivo resultante generalmente es más pequeño que el original, dependiendo del bitrate seleccionado.  Por ejemplo muchos DVD’s de 4.7GB terminan convertidos en archivos de 500MB con la misma calidad aparente.
  • Se puede integrar en un solo archivo el video con sus subtítulos, nada de andar con los archivos sueltos por ahí
  • Muchos de los videos en HD que pululan en la red ya están en el formato correcto (MKV/H.264), no hay que transcodificarlos
  • El archivo SIEMPRE funcionará en todos los dispositivos.  Aquí your mileage may vary porque depende de tus dispositivos.
  • En mi caso, la mayoría del contenido que estoy moviendo al NAS lo tengo originalmente en DVD, por lo que la transcodificación es INELUDIBLE.  Por otro lado, la ganancia en espacio físico es altísima, ya que el CD/DVD se puede descartar una vez transcodificado.

Lo que no se vió

Hay una parte del proceso que quizás confundió a algunos que lo encontraron “muy hacker” y fue la actualización del firmware para instalar Snake OS.

En la realidad, los “complejos” pasos fueron:

  • Conectar el NAS a la red
  • Encenderlo
  • Abrir la página web de administración (como si fuera un router)
  • Seleccionar el archivo con SnakeOS y darle Aceptar
  • Esperar a que terminara la instalación y posterior reinicio.
Video en 1080p corriendo sobre LG SmartTV conectado al NAS

Video en 1080p corriendo sobre LG SmartTV conectado al NAS

Los costos

La parte de costos no es menos importante.  No me gusta llenarme de equipos con capacidades que no voy a usar, y si puedo reutilizar algo que ya tengo, mejor aún.  Por otro lado me si voy a gastar en algo, tiene que ser proporcional al uso que le voy a dar.  Como a veces le digo a mis amigos, para qué quiero un auto caro si pasará casi todo el tiempo estacionado.

Esto era lo que ya tenía antes de comenzar esta implementación:

  • 1 Televisor con soporte de DLNA
  • 1 Televisor sin soporte de DLNA
  • 1 Google TV enchufado al televisor sin DLNA
  • 1 Disco duro de 500GB que me sobró cuando le cambié el disco al Mac Mini
  • 1 Red Wifi :-P

Estos fueron mis costos en hardware:

  • 1 NAS : USD$40
  • 1 Adaptador para el enchufe : USD$1

Total : USD$41 (unos CLP$20.500)

Mis costos en horas hombre (aproximado):

  • Actualización del Firmware : 5 minutos considerando lo que tuve que leer

También hay costos del “noviciado” y que se evitarán con este par de artículos sobre el tema. No tengo estimaciones ni tampoco interesa mucho, porque no tendrán que pasar por eso nuevamente:

  • Reformatear disco NTFS a EXT
  • Buscar solución al problema de Mac OSX con versiones antiguas de SMB
  • Probar el codec que funcionara mejor, junto a su configuración

A modo de comparación de costos, aquí están los costos calculados de las alternativas “más fáciles”, pero que tenían el pequeño inconveniente de ser iguales a mi problema original, el que ya tenía solucionado:

Alternativa 1:

Time Capsule + 1 Mac Mini por cada televisor, o sea 2 Mac Mini

  • 2 Mac Mini = 2 * CLP$384.000 = CLP$768.000
  • 1 Time Capsule para alojar la biblitoeca (2TB) = CLP$192.000

Costo total sólo en hardware : CLP$960.000

Una diferencia de un 4.800% con el costo de mi implementación.

Alternativa 2:

1 Mac Mini + 1 Apple TV por cada televisor, es decir, 2 Apple TV

  • 2 Apple TV = 2* CLP$76.000 = CLP$152.000
  • 1 Mac Mini  = $384.000

Costo total sólo en hardware : CLP$536.000

Una diferencia aproximadamente de 2.600% con el costo de mi implementación.

Además hay que agregar que con un sistema basado en Apple no podría acceder al contenido desde los 2 computadores con Linux que además se usan en la casa, ni los Android’s.

En mi caso personal también podría descontar el Mac Mini, porque hay uno.  Pero ni loco lo dejaría encendido 24×7.  Aún así la implementación sería un 700% más cara que lo que conseguí finalmente.

Cómo simplifiqué el acceso a mi colección de videos y música

Domingo, 17 de marzo de 2013 5 comentarios

Actualización: Agregué un artículo con algunas aclaraciones,  describiendo la lógica tras los componentes seleccionados y una comparación de costos con otras alternativas “más fáciles”


Hace unas semanas logré algo que me permitió ordenar todo el contenido de audio y video que he recolectado por años.  Como pasa en muchos hogares, la cantidad de contenido y dispositivos para almacenar y reproducir este contendio hace que todo se vuelva un caos.

El problema es que a la larga los videos y música comienzan a quedar repartidos por todos lados, y cuando quieres verlos te tienes que acordar en qué disco o computador se encuentra, copiarlo al computador o disco en donde lo quieres reproducir etc.  Un efecto colateral que se produce es que ya no sabes qué es lo que tienes, hay contenido que se va perdiendo entre tanta cosa y fácilmente alguna joyita pude quedar sepultada para siempre.

Por otra parte, no soy de los que les gusta ver videos en el computador.  Si tienes un televisor con una buena pantalla, y un buen sistema de sonido, es lo ideal para apreciar en toda su majestad un buen concierto o una buena película.  El computador para mí, queda relegado sólo a los “videos/cortos casuales”.  Entonces el criterio era bien simple: Necesitaba algo que pusiera a mi disposición todo el material audiovisual en mis (2) televisores.

Los reproductores

Uno de los televisores disponibles es un Samsung “no smart” que tiene una entrada de USB para conectar un disco duro o pendrive.  El otro televisor es un LG “smart” que tiene eso, además de conexión a internet y lo más importante en este caso: Soporte DLNA.  Qué significa? El soporte DLNA permite que un dispositivo pueda reproducir el contenido almacenado en otra parte, en terminos simples esto quiere decir que un televisor con soporte DLNA podrá reproducir contenido (audio/video) que se encuentre almacenado en otro dispositivo a través de la red (WiFi o Ethernet).

Para el televisor sin soporte DLNA tenía una carta bajo la manga:  Por mis desarrollos para Android/GoogleTV tenía a mi disposición un AndroidTV y un GoogleTV, cualquiera de los dos conectable al Samsung “no smart”.  Finalmente deje el GoogleTV conectado al Samsung “no smart” para darle soporte DLNA.

El servidor de contenido

Para almacenar y publicar el contenido contaba con un MiniPC Zotac, pero lo que no me gustaba es que de vez en cuando enciende su ventilador para disipar el calor. No es molesto de día, pero de noche se nota bastante. Por otra parte, encontraba que este computador estaba sobredimensionado para usarlo como un simple servidor, por ejemplo su chip de video nvidia estaría totalmente infrautilizado.

Conversando con mi amigo René Viancos (Renix) de Retronia.cl, quien había hecho algo similar, me recomendó un equipo ultra-económico y de bajo consumo: Se trata del NS-K330.  Es un mini computador basado en ARM que está diseñado para actuar como servidor de archivos compartidos via Samba, FTP, HTTP, servidor de impresión y un cliente BitTorrent integrado, para que las descargas no dependan de un computador encendido.  Lo mejor de todo: Se puede actualizar el firmware a SnakeOS, un Linux para ARM con soporte de DLNA en donde incluso puedes crear un chroot con Debian y tener acceso a toneladas de software.  Para simplificar la lectura, de aquí en adelante a este servidor le llamaremos NAS (Network Attached Storage)

Manos a la obra

Como pueden sospechar, el firmware original del NAS duró los pocos minutos que me tarde en comprobar que el hardware venía bien de fabrica.  Al actualizar el firmware sólo tuve que agregar MiniDLNA a lo que SnakeOS incluye por omisión.

El NAS viene sin disco, sólo puertos USB para conectar el disco que uno quiera.  Incialmente le puse uno de 500GB con NTFS, que posteriormente dejé como EXT3 por problemas que comentaré más adelante.  En este disco SnakeOS creó la partición /opt en donde instala el software adicional empaquetado como archivos opk.  Además, y dada mi dependencia con Midnight Commander (mc) para manipular archivos, instalé un chroot con debian en el mismo disco.

Por el lado de los televisores, el LG ya incluye soporte de DLNA por lo que el dispositivo aparece como si fuera una entrada adicional.  Al seleccionarlo se puede navegar por las carpetas y reproducir cualquier archivo ahí publicado.  En el caso del Samsung, éste fue conectado al GoogleTV y después de explorar varias aplicaciones me quedé con MediaHouse.

Problemas y su solución

En general todo el aparataje funciona bastante bien y obtuve lo que andaba buscando: Desde cualquiera de los dos televisores tengo acceso a toda la música y videos desde una única fuente.  Desde los computadores, tengo acceso al NAS via Samba (archivos compartidos de Windows) y ssh en caso de que requiera entrar a picar.

Me tope con 3 problemas que afortundamente pude solucionar.  Esta sección puede ahorrar muchos dolores de cabeza a quienes estén en la misma tarea.  Los problemas fueron:

  • Lentitud y mal soporte de NTFS en otros sistemas operativos
  • Problemas de acceso a las carpetas compartidas
  • Y lo peor: Problemas de soporte de formatos de video en los televisores.

Vamos a ver…

Sistema de archivos (NTFS vs EXT)

Lo primero que tuve que hacer fue copiar los archivos que tenía en mis computadores al disco del NAS.  Para no dar vueltas innecesarias por la red, formateé la unidad con NTFS en donde había “promesa” de ser soportado en los sistemas operativos que ocupo, que son Mac OSX y Linux.  Con Linux todo perfecto, acceso de escritura rápido y seguro como es habitual, pero en Mac OSX es un DESASTRE.  Tuve que instalar aplicaciones adicionales y peor aún, el disco comenzó a quedar más corrupto que Julio Pereira, y eso ya es mucho decir.  Por suerte los primeros archivos estaban respaldados asi que no perdí nada.

Ya que no podía confiar en OSX para escribir en ese disco, decidí conectarlo directamente al NAS y copiar los archivos via red.  Lo que comencé a percibir es que la escritura en NTFS en un equipo de poca potencia como el NAS es increíblemente lenta.  Finalmente me fui a la segura y dejé el disco con ext3, con eso el rendimiento se aceleró bastante aunque sin llegar a ser espectacular.  Dependiendo del volumen de lo que necesito copiar, lo copio via red al NAS o bien conecto el disco a un Linux y copio directamente con ese computador. Intentar EXT en OSX? No, gracias.

Acceso a archivos compartidos

Para acceder a los archivos compartidos se puede usar ssh/scp o bien el protocolo de compartición de archivos de Windows (SMB/Samba).  Ambos funcionaron impecable en Linux, gracias al soporte simplificado de ambos protocolos en Nautilus/GNOME. Copiar los archivos es algo tan simple como arrastrarlos de allá para acá como si fueran locales.

Por otro lado, el tan cacareado fácil de usar Mac OSX, dió algunos problemas.  Se resistía a conectarse al NAS dando un mensaje de error de que el servidor no está disponible. Cuento corto: Max OSX no soporta versiones antiguas del protocolo, por lo que el procedimiento que debo aplicar cada vez que inicio OSX es:

  1. Tratar de acceder a los archivos para que me tire el error
  2. En una consola, ejecutar el comando: sudo sysctl -w net.smb.fs.kern_deprecatePreXPServers=0



Formato de video / codecs

El principal problema que tuve con los formatos de video y sus codecs es que no todos están soportados en mis reproductores (LG y GoogleTV), por lo que tuve que buscar algo que funcionara bien en ambos.  Por otra parte, en algunos casos al adelantar el video éstos se quedaban pegados o en el caso de LG, arrojaba un error de que no podía reproducir el contenido.

Finalmente la combinación perfecta fue: Contenedor MKV, Video H.264, Audio AAC codificado por ffmpeg, Constant bitrate.  Para codificar los videos, después de probar varias aplicaciones me quedé con Handbrake.

Con esa combinación logré : Soporte de múltiples streams de Audio en un sólo archivo (ejemplo 2.0 y 5.1), incrustación de subtítulos en el mismo archivo, bajo bitrate y por lo tanto archivos pequeños.  La selección del codec de audio se debío a que el codec por omisión en OSX (CoreAudio) se desincronizaba en algunos videos.

Otras alternativas

Por supuesto que este artículo es mi caso particular, que soluciona los problemas que se presentan con mis equipos disponibles.  Como dicen por ahí your mileage may vary.

Como dato final, si es que quieren lograr algo similar, tienen múltiples alternativas, lo importante es que cuenten con soporte DLNA de alguna forma, ya sea integrado en el televisor o a través de alguna “cajita” adicional.  He visto que ya algunas tiendas venden equipos “AndroidTV” como el de Geniatech, la consola Playstation3 también soporta DLNA, etc.  También es opción usar XBMC ya sea conectado al televisor con un mini computador (como el Rapsberry Pi), o en un computador común y corriente.

 

El mundo sin Steve Jobs

Jueves, 6 de octubre de 2011 5 comentarios

Y llegó el día que no queríamos que llegara, se ha ido Steve Jobs. Para muchos es un genio, y para otros un tirano, lo que no queda en duda es su aporte a la vida moderna: Tienes que vivir en una caverna para poder decir que la influencia de Steve no afecta tu vida diaria.

Puede no ser el inventor de muchas cosas, pero esas invenciones probablemente estarían perdidas en un laboratorio o hubiesen sido una curiosidad tecnológica sin la visión y el liderazgo de Steve. Se necesita alguien que sea capaz de alinear a los expertos técnicos y comerciales – muchas veces rock stars que son muy difíciles de manejar – sólo así puedes sacar adelante productos y conceptos como los que hoy atribuimos a Steve.

A modo de homenaje, recordemos cómo era o sería el mundo sin Steve Jobs.

  • Antes de Apple los computadores estaban destinados a hacer cálculos balísticos o financieros, costaban una fortuna y se necesitaban expertos para manejarlos.  La gente normal “no necesitaba computadores”, ya que no había nada que hacer con ellos.  Steve Jobs creía que lo computadores podían darle poder a la gente normal, y afortunadamente fue capaz de convencer al genio de Steve Wozniak de que esa idea tenía sentido.
  • Antes de Apple los computadores se manejaban con comandos crípticos, todo se realizaba por medio del texto, tanto las instrucciones que se le daban al computador, como la propia respuesta del computador a esas instrucciones.  Steve conoció en los laboratorios de Xerox el concepto de la interfaz gráfica y el ratón, el problema era hacer que esa tecnología funcionara en las limitadas capacidades de los computadores personales que Apple podía producir, a un costo razonable.

Procesador de Texto WordStar sobre CP/M

  • Antes de Apple la música digital sólo se podía obtener de forma ilegal.  Los músicos estaban condenados a ser pirateados o seguir siendo abusados por los sellos discográficos.  iTunes demostró que había un mercado para la distribución de música en formato digital, y que la red no servía sólo para piratear.  En poco tiempo se convirtió en el primer canal de distribución de la música, dejando atrás a los medios tradicionales.
  • Antes de Apple tenías que seleccionar qué musica llevabas contigo, a menos que quisieras andar con un bolsito en tu mochila.  Apple logró poner horas y horas de música en tu bolsillo, incluso en el bolsillo más pequeño de tu pantalón con el iPod Nano.  Como si esto fuera poco, incorporó una sencilla interfaz de usuario basada en una ruedita tactil desde donde puedes realizar todas las operaciones que necesita el dispositivo.
  • Antes de Apple la producción musical estaba estrictamente reservada a grandes estudios, con equipos carísimos basados en hardware.  Si bien Apple no inventó el concepto, ni la tecnología directamente, tenía un computador y un sistema operativo suficientemente fiable y poderoso para que empresas como Digidesign creyeran en que los computadores podían ayudar a tareas de edición, grabación, mezcla y postproducción musical.  Gracias a esta simbiosis, hoy puedes tener un estudio musical en tu casa.

Reproductor de MP3 RIO

  • Antes de Apple los teléfonos inteligentes tenían muchos botones, carecían de aplicaciones y servían para ver planillas de cálculo o leer correos electrónicos.  Se manejaban con un lapiz y su interfaz de usuario imitaba a la interfaz de un sistema de escritorio, con menú de inicio incluido.  Hoy todo smartphone trata de imitar al iPhone de Apple de alguna forma, ya sea por su pantalla táctil, su único botón o su interfaz gráfica basada en lanzadores de aplicaciones que corren a pantalla completa.
  • Antes de Apple los desarrolladores de software necesitaban una fuerte inversión para llevar sus productos al mercado, si es que lograban obtener algo de notoriedad.  Por otra parte los usuarios tenían que salir a buscar el software “a la calle”, sin que nadie asegurara la calidad del software disponible.  Junto con el iPhone, no sólo se creó un sistema operativo que hoy es un referente respecto al software base y ambiente que se debe proveer a los desarrolladores, sino que también achicó la brecha existente entre éstos y sus usuarios.  El AppStore hizo millonarios a muchos, permitió que la distribución de las aplicaciones se democratizara, y al mismo tiempo permitió que los usuarios lograran tener acceso a software de calidad en un solo lugar.  Hoy todas las compañías tratan de tener su propio AppStore.

IPaq - Smartphone de HP

  • Antes de Apple la televisión sólo servía para… ver televisión.  Aunque nunca ha sido un éxito, el AppleTV abrió las puertas para ver la televisión de otra forma.  AppleTV convirtió a los televisores en un dispositivo más conectado a Internet.  Pese a sus problemas de comercialización, y desencanto en la propia compañía, hoy los SmartTV son un lejano descendiente de este concepto.
  • Antes de Apple los tablets eran unos computadores que no tenían mayor gracia que permitir tomar notas con un lapiz stylus.  Se trataba de notebooks con un teclado escondido, en donde el sistema operativo y su interfaz eran iguales a lo que podemos encontrar en los escritorios.  El iPad de Apple demostró que esa dirección estaba equivocada, y no se trataba simplemente de un notebook (o netbook) sin teclado, sino que se trataba de un computador con raza propia.  Eliminó el stylus, y adaptó la interfaz de usuario para ser usada sólo con los dedos.  Al igual que con el iPhone, hoy todos los tablets se quieren parecer al iPad, pero ninguno cuenta con el nivel de terminación y el ecosistema de aplicaciones que distingue al iPad.

Sketch de Mickey Mouse

  • Antes de Apple el navegador más usado en el mundo era el nefasto Internet Explorer.  Si bien Mozilla logró que los más techies impulsaran una alternativa de calidad en el mundo de los navegadores, fue Apple quien tomó KHTML (KDE) y lo convirtió en una competencia en el mundo del usuario común y corriente al incorporarlo en sus productos estrella a través de Safari.  Con esta incorporación se le terminó la excusa a los desarrolladores de que sólo valía la pena probar que sus creaciones sólo funcionaran en Internet Explorer.
  • Antes de Apple, el sistema operativo Unix era sólo para privilegiados expertos.  Aunque en Linux se han hecho intentos por llevar esta tecnología a los usuarios “de a pie”, fue Mac OSX el que logró construir todo lo que hacía falta para llevar este sistema al público. Sus distintas tecnologías que agregan valor a Unix y lo convierten en un producto de lujo, han sido imitadas tanto por Linux como por Windows con años de retraso.
  • Antes de Pixar – otra de las empresas con el sello de Steve – se necesitaban grandes ejércitos de dibujantes para crear películas animadas.  Steve ayudó a John Lasseter a convertir el sueño del cine animado por computadores en una realidad.  Lasseter despreciado por Disney y más tarde abandonado por George Lucas tuvo la suerte de encontrar en Steve a alguien quien creía que el mundo del cine podía ser distinto, así nació Toy Story y el cine cambió para siempre.

Seguramente se me quedaron cosas en el tintero, pero con lo expuesto ya es suficiente para entender el peso de Steve Jobs en nuestra vida, de alguna forma trajo el futuro a nuestro presente.

Te extrañaremos Steve.