Copy Link
Add to Bookmark
Report
Black Lodge - Revista Digital No. 9
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
P010101b 01 1010 d0101010 01 01
01 100 10 010101 10 0 10 10
10 00 01 10 10 10 01 01
01010d 10 01 01 01 10.01
10101P 01 10101010 10 0101.
01 00 10 01010101 01 10 10
10 010 01 01 10 10 10 0 01 01
d101010d 10101010 01 01 b1010101 10 10
xx .xxxxxx. xxxxxxx. .xxxxxx. .xxxxxx.
xx xxxxxxxx xx .xx xxxxxxxx xxxxxxxx
xx xx xx xx xx xx xx
xx xx xx xx xx xx :xxx xxxx:
xx xx xx xx xx xx :xxx xxxx:
xx xx xx xx xx xx xx xx
xx xx xxxxxxxx xx .xx xxxxxxxx xxxxxxxx
xxxxxxxx .xxxxxx. Xxxxxxx. .xxxxxx. .xxxxxx.
M A G A Z I N E
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
Revista Digital No. 9
Sitio Oficial de Descarga:
http://blacklodge.8k.com
Distribuidores y Sitios de Promocion:
http://www.vanhackez.com
http://www.dreamers.com/fondoperdido
CONTENIDO:
---EDITORIAL---
---LA CLAVE DE LAS CLAVES--- Articulo de "El Lado Oscuro" de Hector Ugalde
---101 COSAS PARA HACER CON TU PAREJA--- (Relax) ;)
---MAS CODIGO DE PERL---
---ENTREVISTA CON BJARNE STROUSTRUP--- Fuente SET No.15
---EDITORIAL---
Siguen los Articulos de Hector Ugalde, los cuales son los primeros que lei
(y que valian la pena) cuando comence con esto llamado "Internet". Espero
que los sepas valorar, no recuerdo la pagina donde los consegui, pero los
he conservado por el valor y respeto que les guardo. Tambien seguimos con
los codigos de Perl, espero les de una idea para algun proyecto interesante,
si es asi, mandame un mail por favor.
Para relajarnos un poco, les mando 101 cosas para hacer con tu pareja; si
no tienes, guarda este documento para cuando la tengas :p, creo que es algo
que fomenta el amor entre dos personas y eso es bueno, no creen?.
Por ultimo, tenemos una entrevista muy interesante con creador del C++, la
verdad vale la pena que le den una buena checada.
Quiero agradecer de antemano todo lo que puedas hacer por esta ezine, en
la cual he puesto muchisimo entusiasmo. Gracias por colaborar y leer esta
edicion gratuita, disfrutenla !!.
---LA CLAVE DE LAS CLAVES---
Usuario: Alguien hackeo mi cuenta de Internet!
Cracker: Y de seguro no tienes ninguna pista...
Hacker: Y tu si, Cracker Holmes?
Amigo (usuario Avanzado): Elemental, mi querido Hacker.
Lector: Y que es eso de "hackear" una cuenta?
Extra~o: Ejele! Robarse la personalidad de otro!
U: Es que alguien uso mi cuenta de acceso a Internet.
C: De seguro fue un buen uso...
A: Lo mas probable es que ese alguien supo de alguna manera tu password.
U: Pero eso es imposible!
C: "Elimina lo imposible y quedara lo posible"...
A: Otra vez el sentido no comun del investigador Cracker Holmes!
H: Claro que no es tan imposible el que te vuelen tu contrase~a.
C: Hay de imposibles a imposibles...
H: Lo dificil lo hacemos de inmediato; en lo imposible, nos tardamos
un poquito...
C: A veces muy poquito...
U: A poco es tan facil adivinar un password?
H: No es exactamente adivinar, sino mas bien algo asi como deducir...
A: Brillante deduccion!
H: Aunque en algunos casos se recurre a la fuerza bruta.
C: Tehuacanazos virtuales!
H: No hombre! No todo se resuelve con hardware!, recuerda que nuestros
metodos son por software.
C: Pero es que dar una calentadita es bien "cool"!
A: Pues solo que sea con cautin!
U: ??!
A: Digo, si eres hardwerologo...
C: El sadomasoquismo me tiene encadenado!
A: Mas bien alambrado, no?
U: Bueno! Bueno! A poco es tan facil deducir un password?
C: Algunos usuarios lo hacen mas facil...
H: Cierto. Unos simplemente ponen su nombre.
A: O su apodo!
H: Tambien hay quien utiliza sus iniciales, o su fecha de nacimiento, o los
nombres de los hijos o de la esposa.
A: O esposo...
C: Oye! No te sabia esos gustos!
A: No. Yo mas bien me referia a que debe haber usuarias.
U: Por supuesto que debe de haber usuarias!
C: Si no, con quien se casarian los usuarios?
A: Regresando al tema: incluso ustedes los hackers tienen listas de las
claves mas frecuentemente usadas, no?
U: Ah caray! Y cuales son las mas usuales?
H: Los usuarios tienden a utilizar nombres de dioses o personajes
mitologicos, de animales, de personas, de personajes de comics o de
ciencia ficcion, marcas de autos o de productos u objetos comunes.
A: Curiosamente una de las passwords mas usuales es PASSWORD
C: Por aquello de "Escriba password".
A: Otra muy frecuente es SESAMO.
H: JOSHUA...
U: Que es eso?
A: El nombre del hijo del programador del sistema de simulacion militar en
el filme "Juegos de Guerra".
H: Precisamente en esa pelicula hay varios ejemplos de contrase~as malas.
C: Esas me gustan: se portan muy mal!
H: Mas bien: passwords mal elegidos, o sea, faciles de adivinar o de deducir.
C: "Tammal" hay malos ejemplos de crackeo de claves y de rompimientos de
seguridad...
H: Como cuando la computadora intenta todas las combinaciones de numeros
hasta dar con las claves de lanzamiento de los misiles.
A: O la contrase~a que cambiaban cada semana, pero que estaba anotada en una
hoja de papel guardada en el cajon del escritorio (era PENCIL).
C: La hubiera pegado al monitor de la computadora!
H: Otras recomendaciones son que NO uses claves que consistan en el mismo
digito repetido.
C: Por ejemplo 666...
H: Tampoco la misma letraaaaaaa.
A: Y cuando entres a un sistema, escribe rapido tu contrase~a para que no
vean que teclas oprimiste.
H: O tapa una mano con la otra.
C: Que no vea tu mano derecha lo que hace tu izquierda.
U: Pero no todos eligen claves faciles de adivinar.
C: No me digas!
H: Pues fijense que hicieron una serie de experimentos en algunas
universidades de los Estados Unidos y encontraron que aproximadamente
del 10 al 20% de las passwords para acceder a sus sistemas eran
contrase~as que se podian adivinar usando los nombres o apellidos de los
usuarios, o combinaciones de ellos; o usando una lista de 1,800 nombres
comunes de personas.
C: O nombres de personas comunes...
H: Otras pruebas detectaron que tambien entre el 10 y 20% de claves se
podian "romper" usando el programa llamado Crack.
C: Love that code!
H: Aunque originalmente ese programa fue creado por crackers para detectar
claves intentando varias sobre el archivo de passwords, ahora tambien lo
utilizan administradores de sistemas para determinar que tan seguros son
sus equipos.
A: De por si los administradores configuran sus sistemas para que solo
permitan varios intentos (casi siempre tres) y si no es la clave correcta
desconectar la conexion.
C: Para continuar, favor de depositar la password correcta.
H: Incluso pueden detectar cuando ha habido una serie de intentos
infructuosos para entonces desactivar temporalmente la clave y que se
genere un aviso del intento del rompimiento de la contrase~a.
A: Practicamente todos los sistemas del mundo tienen intentos de intrusiones
y no siempre tienen el tiempo para investigar cada uno de ellos.
H: Un simple truco para robarse tu clave es copiar el archivo de
configuracion del programa marcador Trumpet, Winsock o de acceso
telefonico a redes o a Internet.
C: Asi ni es necesario saber la clave.
H: Tambien hay quien usa su numero de telefono como password.
A: Ese es otro cuete! Los numeros! El numero de identificacion personal
(alias NIP) de las tarjetas de credito. Terminas con tantos numeros que
a todas las tarjetas les pones el mismo!
H: Lo cual es bien facil de recordar, pero es un gran riesgo de seguridad.
C: Como cuando escriben el NIP en un papelito que ponen en la cartera junto
a la tarjeta.
A: Tampoco es recomendable emplear fechas de nacimiento, parte del telefono
o el numero de tu domicilio en los NIPs.
H: Los numeros, en teoria, son mas faciles de "adivinar" que las palabras.
A: Aunque hay quien recomienda el extremo de no usar ninguna palabra!
U: Ah caray! Entonces?
C: K#*2w!
U: Orale! No te metas con mi mama!
H: No son exactamente groserias, aunque lo parezcan, pero se pueden usar
combinaciones de letras, numeros y simbolos sin sentido.
A: Aunque si no tienen sentido son mas dificiles de recordar!
H: Una buena password es facil de recordar, pero dificil de adivinar.
U: Y como le hago?
C: Adivina!
H: Una posibilidad es la de tomar un poema, un refran, o una frase celebre
y tomar la primera letra de cada palabra. Por ejemplo: eradaelp.
A: Sopas! Que significa eso?
H: El respeto al derecho ajeno es la paz.
C: Ddnastep.
A: Y esa?
C: DespuÈs de ni~o ahogado, se tapa el pozo. O hemsmaq.
A: Cual es esa otra?
C: Haz el mal, sin mirar a quien.
H: Otro truco para crear passwords dificiles de adivinar consiste en pegar
dos palabras.
U: PERROGATO?
H: Lo mejor es que no esten relacionadas.
U: PEPECHUCHO.
H: Y que no sean nombres de personas.
A: Lo mejor es ver si la clave puede contener otros simbolos, por ejemplo
PAZ-2001
U: Entonces se pueden mezclar numeros y palabras.
A: podria ser DOSPALABRAS?
H: O quizas DOS-PALABRAS.
U: R2D2.
A: P455W0RD o CL4V3.
H: Otro punto es que muchos sistemas restringen la clave a una cierta
longitud.
C: Lo importante no es el tama~o, sino lo que haces con el...
A: No estamos hablando de claves?
C: Si... Y en clave...
H: Pues si hay un limite en el numero de caracteres, puedes cortar la clave
y solo escribir el inicio.
A: O el final...
H: Otro mecanismo para aumentar la seguridad es la de obligar a los usuarios
a cambiar su clave cada determinado tiempo.
U: Con lo que volvemos al problema de recordar el nuevo password.
A: O las mil y un contrase~as que tenemos!
C: Ya!! Que presumido!
H: Bueno, se puede usar un programa que guarde y administre la lista de
claves.
U: Pero entonces cualquiera podria entrar a verlas, no?
H: No, si le pones un password al programa.
U: Asi solo tendrias que memorizar una sola clave!
A: Pero no puedes llevar tu computadora al cajero automatico.
C: Entonces lleva el cajero a tu computadora...
H: Pues que te parece un peque~o aparato, algo asi como una
calculadora/agenda, que almacene las contrase~as?
A: Asi, el password del artefacto "memorizador" seria la clave maestra o
la clave de las claves.
U: Pero aun asi, te podrian volar tu clave, como a mi...
C: Skltpzyxm.
A: Recorcholis! Que es eso? Esto si que no son las primeras letras de un
refran!
H: Es el nombre al reves de Mr. Mxyzptlks, uno de los enemigos de Superman.
U: Hummm...
A: Ahh, ya! El que se regresaba a su dimension cuando Superman lograba
hacerle caer en la trampa de decir su nombre al reves.
U: Hummm...
C: Que te pasa? No quieres decir oirausu?...
U: !ON
---101 COSAS PARA HACER CON TU PAREJA---
1. Miren la puesta de sol juntos.
2. Masajes en la espalda.
3. Escuchen musica clasica y abracense en la oscuridad
4. Beso Frances.
5. Mantener las manos en su espalda, dentro de su playera, sudadera, etc.
6. Susurrarse uno a otro.
7. Cocinar para el otro.
8. Vestirse uno al otro.
9. Desvestirse uno al otro.
10. Besar cada parte de su cuerpo.
11. Sostener sus manos.
12. Dormir juntos (SOLO dormir..... no sexo)
13. Acariciarse.
14. Sentarse y conversar solo en ropa interior.
15. Comprar regalos para el otro.
16. Rosas.
17. Encontrar su colonia/perfume favorito y usarlo cada vez que
esten juntos.
18. Usar su ropa.
19. Encontrar un bonito y apartado lugar donde acostares a mirar
las estrellas.
20. Incienso, velas, aceite, luces bajas, musica para gran ternura
y sexo.
21. Besarse en cada oportunidad que tengan.
22. No usar ropa interior..... y dejar que El/Ella lo averigue.
27. Darle besitos tras su cuello
28. Ba~os de burbujas.
29. Dar un largo paseo por la playa a medianoche.
31. Escribirse poemas uno al otro.
32. Besar y oler su pelo.
33. Los abrazos son la medicina universal.
34. Solo cuando lo sabes y estas seguro(a) que sabe.
35. Regalar sorpresivamente flores, dulces, poemas, etc.
36. Dile que es la unica chica (o) que has querido. No mientas.
37. Usa cada segundo posible en estar juntos.
38. Dile que no tiene que hacer nada que ella no quiera hacer.
39. Mira a sus ojos.
40. Muy suavemente toma su menton, hazla que te mire a los ojos,
dile que la amas y besala dulcemente.
41. Hablense usando solo el lenguaje del cuerpo y de los ojos.
42. En publico, solo flirtea con tu pareja.
43. Camina tras ella y pon tus manos en sus bolsillos frontales.
44. Pon notas de amor en sus bolsillos, cuando no este mirando.
45. La ropa no es divertida.
46. Comprale un anillo.
47. Manten uno de sus sostenes en algun lugar que veas a diario.
48. Calientense uno al otro.
49. Lavense uno al otro.
50. DPA (Demostracion Publica de Afecto).
51. Toma ventaja de cada momento que estan solos.
52. Dile como respondiste a cada pregunta de matematicas con su nombre.
53. Dibuja (si puedes).
54. Deja que se siente en tus piernas.
55. Vayan de excursion y campamento a un bosque o a las monta~as.
56. Los labios fueron hechos para besar. Tambien las mejillas,
el cuello, las manos y los otros dedos.
57. Besa su abdomen.
58. Siempre sostenla de las caderas.
59. A los chicos les gustan las poleras cortas.
60. Llevala a cenar.
61. Spaghetti (viste: La Dama y El Vagabundo?).
62. Sosten su mano, mira fijamente sus ojos, besa su mano y ponla
sobre tu corazon.
63. Mientras no sientas sus latidos, no estaras lo suficientemente
cerca.
64. Bailar juntos.
65. Sentarse frente a una fogata y hacer el amor.
66. Amo la forma en que una chica me mira despues que pone su cabeza
en mi regazo.
67. Llevala a la cama.
68. Las camas de agua son divertidas.
69. Te lo imaginas que es ??
70. Escribe una nota que deba mirar en un espejo para poder leerla.
71. Rompe cada una de las reglas de las relaciones con tus parientes
por ella.
72. Inventa excusas para llamarla cada 5 minutos.
73. No obstante, si estas realmente ocupado, sal a buscarla.
74. Llamala desde el lugar donde vacaciones para decirle que piensas en
ella.
75. Recuerda tus sue~os y cuentaselos.
76. Pedalea tu bicicleta 12 kilometros solo para verla un par de horas.
77. Pedalea de vuelta y llamala.
78. Diganse sus mas profundos secretos y miedos.
79. De alguna forma, incorporalo(a) a cualquier tipo de religion
o grupo que pertenezcas.
80. Se un principe encantador con sus padres,
81. Realicen sus fantasias comunes juntos (no necesariamente sexuales).
82. Aparta sus mechones de su cara por ella.
83. Quedate en pie toda la noche pensando o escribiendo 101 formas
de ser dulce con ella.
84. Sal con sus amigos(as).
85. Vayan juntos a la iglesia.
86. Llevala a ver una pelicula romantica y recuerda las partes que
le gustaron.
87. Abracense bajo una luna llena de una noche clara.
88. Aprendan del otro y no cometan el mismo error dos veces.
89. Todo el mundo merece una segunda oportunidad.
90. Describe la alegria que sientes al estar con Ella/El.
91. Realmente amense, o mejor no sigan juntos.
92. Escribe una historia ficticia de como te enamoraste,
la conociste, etc. y dasela.
93. Hagan sacrificios uno por el otro.
94. Amate a ti mismo antes de amar a otro.
95. Aprende a decir cosas dulces en otros idiomas.
96. Dedicale canciones en la radio.
97. Deja que no pase un segundo en que dejes de pensar en Ella/El y
asegurate de que lo sepa.
98. Duermete conversando con Ella/El por telefono.
99. Duerman juntos y desnudos.
100.Defiendela(lo) si alguien habla basuras sobre Ella/El.
101. Nunca olvides el beso de las buenas noches.
---MAS CODIGO DE PERL---
A continuacion les presento la segunda parte de algunos codigos que he
creado, utilizando los conceptos basicos de la programacion de PERL
para que tengas algo practico en tu estudio de este sencillo, pero
poderoso lenguaje de programacion. Recuerda que la primera linea
puede variar segun tu sistema.
#! /usr/contrib/bin/perl
################################################################
# #
# sepa.pl #
# #
################################################################
$usuarios="Juan:Pedro Jose:Carlos:Jose Maria";
@personas=split(/:+/,$usuarios);
foreach$nombre(@personas)
{
print "$nombre\n";
}
#! /usr/contrib/bin/perl
################################################################
# #
# prueba.pl #
# #
################################################################
$saludo="Hola\n";
print "$saludo";
$texto01="Hola amigo, dame tu nombre: ";
print "$texto01";
$tunombre=<stdin>;
$elespacio=chop($tunombre);
print "\nHola $tunombre como estas...\n";
@miembros=("Isabel","Luis","Antonio","Blanca","Irma","Sergio");
open(lista,">lista.txt");
foreach$campo(@miembros)
{
print lista $campo;
print lista "\n";
}
close(Lista);
print "Lista Creada...\n";
#! /usr/contrib/bin/perl
################################################################
# #
# junta.pl #
# #
################################################################
@personas=("Jose","Juan","Santiago","Pedro","Mateo","San Judas");
@persona=join(",",@personas);
foreach$cadena(@persona)
{
print "$cadena";
}
#! /usr/contrib/bin/perl
################################################################
# #
# checa.pl #
# #
################################################################
# Este es un programa que se utiliza junto con un script.
# Sacas el listado de un directorio a un archivo
# en este caso sera texto.txt
# abrimos el archivo y le damos el alias de TEXTO
open (TEXTO, "texto.txt");
# asignamos una matriz al contenido
@almacenes=<TEXTO>;
# sacamos el total de lineas
$Total=$#almacenes+1;
# y las imprimimos...
print " $Total";
# cerramos el archivo
close(TEXTO);
#! /usr/contrib/bin/perl
################################################################
# #
# lafecha.pl #
# #
################################################################
open (CTRL, "lafecha.txt");
# el archivo "lafecha.txt" contiene la variable de $fecha
# el cual se pasa con echo $fecha > lafecha.txt
# la variable fecha captura un periodo de inicio y final
# por ejemplo si es del 18 de Abril al 31 de Mayo
# se capturaria 18043105
@control=<CTRL>;
# abrimos el archivo y lo pasamos a una matriz
$linea=pop(@control);
# para dividirla, es necesario convertirla a variable escalar
# con pop sacamos la primera linea
@tokens=split(//,$linea);
# despues la dividimos para tener los miembros independientes
# y poderlos manipular
$d1=@tokens[0];
$d2=@tokens[1];
$m1=@tokens[2];
$m2=@tokens[3];
$d3=@tokens[4];
$d4=@tokens[5];
$m3=@tokens[6];
$m4=@tokens[7];
# asignamos cada miembro a una variable
$diaini=$d1.$d2;
$diafin=$d3.$d4;
$mesini=$m1.$m2;
$mesfin=$m3.$m4;
# formamos los dias y los meses
@meses=("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre");
# creamos una matriz con los nombres de los meses
@losmeses=("01","02","03","04","05","06","07","08","09","10","11","12");
# otra matriz con los numeros de los meses
foreach $i(@losmeses)
{
if ($mesini eq $i)
{
$mes1=$meses[$i-1];
}
if ($mesfin eq $i)
{
$mes2=$meses[$i-1];
}
}
# hacemos la comparacion con lo tecleado y despues imprimimos el resultado
print "$diaini de $mes1 al $diafin de $mes2";
close (CTRL);
#! /usr/contrib/bin/perl
################################################################
# #
# buscapina2000.pl #
# #
################################################################
# Este script pide una palabra y dice si tiene cierta letra
print "Hola, dame una palabra por favor:";
$la_palabra=<stdin>;chop($la_palabra);
if ($la_palabra=~/a/)
{
print "La frase que me diste contiene por lo menos una letra \"a\"\n";
}
else
{
print "La frase que me diste no contiene ninguna letra \"a\"\n";
}
print "Adios...\n";
#####################################################################
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#####################################################################
# A continuacion veremos un script que hace uso de algunos programas
anteriores de Perl (checa.pl y lafecha.pl), puedes agregar otro
script que te borre los archivos temporales (algo facil para ti).
clear
echo "Shell-Script para visualizar el Total de Archivos de Respaldo"
echo "Dame la fecha: \c"
read fecha
clear
echo $fecha > lafecha.txt
echo "Desplegando informacion del \c"
lafecha.pl
rm lafecha.txt
echo "\nTotal de archivos por almacen:"
cd hgo
ls *$fecha* >texto.txt 2>errores.txt
cp texto.txt /buzon
cd ..
print "HIDALGO";
checa.pl
echo "\n"
limpia.sh
# El Script limpia puede contener algo similar a esto:
echo "Borrando temporales\c"
rm /buzon/hidalgo/texto.txt 2> /buzon/errores.txt
rm /buzon/hidalgo/errores.txt 2> /buzon/errores.txt
# la linea que sigue da un efecto muy sencillo, pero muy bueno de proceso
# cuando borras muchos archivos.
echo ".\c"
# aqui pueden ir mas directorios
rm errores.txt
rm texto.txt
# se supone que se corre desde /buzon
echo "[0k]"
---ENTREVISTA CON BJARNE STROUSTRUP---
Fuente: SET No.15
El 1 de Enero de 1998, Bjarne Stroustrup dio una entrevista a la revista
de informatica del IEEE.
Naturalmente, los editores pensaron que el estaba dando una vision
restrospectiva de los siete a~os de dise~o orientado a objetos, usando el
lenguaje que el mismo habia creado.
Al finalizar la entrevista, el entrevistador consiguio mas de lo que habia
pactado en un principio, y consecuentemente, el editor decidio suprimir
los contenidos 'por el bien de la industria'. Pero como suele suceder,
la informacion se filtro...
Aqui esta una completa trancripcion de lo que se dijo, no editado, no
ensayado, es decir que no es como las entrevistas planeadas...
Lo encontrareis interesante...
Int: Bien, hace unos pocos a~os que cambio el mundo del dise§o de
software, como se siente mirando atras?
BS: En este momento estaba pensando en aquellos dias, justo antes de que
llegases. Los recuerdas? Todo el mundo escribia en C y el problema
era que eran demasiado buenos... Las Universidades eran demasiado
buenas ense~andolo tambien. Se estaban graduando programadores
competentes a una velocidad de vertigo. Esa era la causa del problema.
Int: Problema?
BS: Si, problema. Recuerdas cuando todos programaban en Cobol?
Int: Desde luego. Yo tambien lo hice.
BS: Bien, al principio, esos tipos eran como semidioses. Sus salarios
eran altos, y eran tratados como la realeza...
Int: Aquellos fueron buenos tiempos, eh?
BS: Exacto. Pero, que paso? IBM se canso de ello, e invirtio millones en
entrenar a programadores, hasta el punto que podias comprar una docena
por medio dolar...
Int: Eso es por lo que me fui. Los salarios bajaron en un a~o hasta el
punto de que el trabajo de periodista esta mejor pagado.
BS: Exactamente. Bien, lo mismo paso con los programadores de C...
Int: Ya veo, pero adonde quiere llegar?
BS: Bien, un dia, mientras estaba sentado en la oficina, pensaba en este
peque~o esquema, que podria inclinar la balanza un poquito. Pense
'Que ocurriria si existiese un lenguaje tan complicado, tan dificil
de aprender, que nadie fuese capaz de inundar el mercado de
programadores?' Empece cogiendo varias ideas del X10, ya sabes,
X windows. Es una autentica pesadilla de sistemas graficos, que solo
se ejecutaba en aquellas cosas Sun 3/60... tenia todos los ingredientes
que yo buscaba. Una sintaxis ridiculamente compleja, funciones oscuras
y estructuras pseudo-OO. Incluso ahora nadie escribe en codigo nativo
para las X-Windows. Motif es el unico camino a seguir si quieres
mantener la cordura.
Int: Esta bromeando?
BS: Ni un pelo. De hecho, existe otro problema... Unix esta escrito en C,
Lo que significa que un programador en C puede convertirse facilmente
en un programador de sistemas. Recuerdas el dinero que un
programador de sistemas solia conseguir?
Int: Puede apostar por ello. Es lo que solia hacer yo...
BS: Ok, por lo tanto, este nuevo lenguaje tenia que divorciarse por si
mismo de Unix, ocultando las llamadas al sistema. Esto podria permitir
a tipos que solo conocian el DOS ganarse la vida decentemente...
Int: No me puedo creer que haya dicho eso...
BS: Bueno, ha llovido mucho desde entonces. Ahora creo que la mayoria de la
gente se habra figurado que C++ es una perdida de tiempo, pero
debo decir que han tardado mas en darse cuenta de lo que pensaba.
Int: Entonces, que hizo exactamente?
BS: Se suponia que tenia que ser una broma, nunca pense que la gente se
tomase el libro en serio. Cualquiera con dos dedos de frente puede
ver que la programacion orientada a objetos es anti intuitiva, ilogica
e ineficiente...
Int: Que?!?!
BS: Y como el codigo reutilizable... cuando has oido de una compa~ia que
reutilice su codigo?
Int: Bien, nunca, pero...
BS: Entonces estas de acuerdo. Recuerda, algunos lo intentaron al principio.
Habia esa compa~ia de Oregon, creo que se llamaba Mentor Graphics, que
revento intentando reescribir todo en C++ en el 90 o 91. Lo siento
realmente por ellos, pero pense que los demas aprenderian de sus errores.
Int: Obviamente no lo hicieron, verdad?
BS: Ni lo mas minimo. El problema es que la mayoria de las empresas se
callaron sus mayores disparates, y explicar 30 millones de dolares de
perdidas a los accionistas podria haber sido dificil... Demosles el
reconocimiento que merecen, finalmente consiguieron hacer que funcionase
Int: Lo hicieron? Bien eso demuestra que la OO funciona...
BS: Casi. El ejecutable era tan gigantesco que tardaba unos cinco
minutos en cargar en una estacion de trabajo de HP con 128 MB de
RAM. Iba tan rapido como un triciclo. Crei que seria un escollo
insalvable pero nadie se preocupo. SUN y HP estaban demasiado alegres de
vender enormes y poderosas maquinas con gigantescos recursos para
ejecutar programas triviales. Ya sabes, cuando hicimos nuestro primer
compilador de C++, en AT&T, compile el clasico 'Hello World', y no me
podia creer el tama~o del ejecutable. 2.1 MB.
Int: Que ?!?!. Bueno, los compiladores han mejorado mucho desde entonces...
BS: Lo han hecho? Intentalo en la ultima version de g++, la diferencia
no sera mayor que medio mega. Ademas existen multitud de ejemplos
actuales en todo el mundo. British Telecom tuvo un desastre mayor en
sus manos, pero, afortunadamente, se deshicieron de ello y comenzaron
de nuevo. Tuvieron mas suerte que Australian Telecom. Ahora he oido
que Siemens esta construyendo un dinosaurio y se empiezan a preocupar
porque los recursos hardware no hacen mas que crecer para hacer
funcionar ejecutables tipicos. No es una delicia la herencia multiple?
Int: Bien, pero C++ es un lenguaje avanzado ...
BS: Realmente crees eso ?!?!?! Te has sentado alguna vez y te has puesto a
trabajar en un proyecto C++? Esto es lo que sucede: Primero he puesto
las suficientes trampas para asegurarme de que solo los proyectos mas
triviales funcionen a la primera. Coge la sobrecarga de operadores. Al
final del proyecto casi todos los modulos lo tienen, normalmente los
programadores sienten que deberian hacerlo asi porque es como les
ense~aron en sus cursos de aprendizaje. El mismo operador entoces
significa cosas diferentes en cada modulo. Intenta poner unos cuantos
juntos, cuando tengas unos cientos de modulos. Y para la ocultacion de
datos. Dios, a veces no puedo parar de reirme cuando oigo los problemas
que algunas empresas han tenido al hacer a sus modulos comunicarse entre
si. Creo que el termino 'sinergetico' fue especialmente creado para
retorcer un cuchillo en las costillas del director de proyecto...
Int: Tengo que decir que me siento bastante pasmado por todo esto. Dice
que consiguio subir el salario de los programadores? Eso es inmoral.
BS: No del todo. Cada uno tiene su opcion. Yo no esperaba que la cosa se
me fuese tanto de las manos. De cualquier forma acerte. C++ se esta
muriendo ahora, pero los programadores todavia conservan sus sueldos
altos. Especialmente esos pobres diablos que tienen que mantener toda
esta majaderia. Comprendes que es imposible mantener un gran modulo en
C++ si no lo has escrito tu mismo?
Int: Como?
BS: Estas fuera de juego, verdad? Recuerdas 'typedef'?
Int: Si, desde luego.
BS: Recuerdas cuanto tiempo se perdia buscando a tientas en las cabeceras
sola para darse cuenta de que 'RoofRaised' era un numero de doble
precision? Bien, imagina el tiempo que te puedes tirar para encontrar
todos los typedefs implicitos en todas las clases en un gran proyecto.
Int: En que se basa para creer que ha tenido exito?
BS: Te acuerdas de la duracion media de un proyecto en C?. Unos 6 meses.
No mucho para que un tipo con una mujer e hijos pueda conseguir un
nivel de vida decente. Coge el mismo proyecto, realizalo en
C++ y que obtienes? Te lo dire. Uno o dos a~os. No es grandioso?
Mucha mas seguridad laboral solo por un error de juicio. Y una
cosa mas. Las universidades no han estado ense~ando C desde hace
mucho tiempo, lo que produce un descenso del numero de buenos
programadores en C. Especialmente de los que saben acerca de la
programacion en sistemas Unix. Cuantos tipos sabrian que hacer con
un 'malloc', cuando han estado usando 'new' durante estos a~os y
nunca se han preocupado de de chequear el codigo de retorno?. De hecho
la mayoria de los programadores en C++ pasan de los codigos que les
devuelven las funciones. Que paso con el '-1'? Al menos sabias
que tenias un error, sin enredarte con 'throw', 'catch', 'try'...
Int: Pero seguramente la herencia salve un monton de tiempo?
BS: Lo hace? Te has fijado en la diferencia entre un proyecto en C y el
mismo en C++? La etapa en la que se desarrolla un plan en un
proyecto en C++ es tres veces superior. Precisamente para asegurarse
de que todo lo que deba heredarse, lo hace, lo que no, no. Y aun asi
sigue dando fallos. Quien ha oido hablar de la perdida de memoria en un
programa en C? Ahora se ha creado una autentica industria especializada
en encontrarlas. Muchas empresas se rinden y sacan el producto,
sabiendo que pierde como un colador, simplemente para reducir el gasto
de buscar todas esas fugas de memoria.
Int: Hay herramientas...
BS: La mayoria escritas en C++.
Int: Si publicamos esto, probablemente le lincharan. Se da cuenta?
BS: Lo dudo. Como dije, C++ esta en su fase descendente ahora y ninguna
compa~ia en su sano juicio comenzaria un proyecto en C++ sin una prueba
piloto. Eso deberia convencerles de que es un camino al desastre.
Si no lo hace, entonces se merecen todo lo que les pase.
Ya sabes?, yo intente convencer a Dennis Ritchie a reescribir Unix en
C++...
Int: Oh Dios. Que dijo?
BS: Afortunadamente tiene un buen sentido del humor. Creo que tanto
el como Brian se figuraban lo que estaba haciendo en aquellos dias,
y nunca empezaron el proyecto. Me dijo que me ayudaria a escribir
una version en C++ de DOS, si estaba interesado...
Int: Lo estaba?
BS: De hecho ya he escrito DOS en C++, te pasare una demo cuando pueda.
Lo tengo ejecutandose en una Sparc 20 en la sala de ordenadores.
Va como un cohete en 4 CPUs, y solo ocupa 70 megas de disco...
Int: Como se comporta en un PC?
BS: Ahora estas bromeando. No has visto Windows '95? Creo que es mi
mayor exito. Casi acaba con la partida antes de que estuviese preparado
Int: Ya sabes, la idea de Unix++ me ha hecho pensar. Quizas haya
alguien ahi fuera intentandolo.
BS: No despues de leer esta entrevista.
Int: Lo siento, pero no nos veo capaces de publicar esto.
BS: Pero es la historia del siglo. Solo quiero ser recordado por mis
compa~eros programadores, por lo que he hecho por ellos. Sabes
cuanto puede conseguir un programador de C++ hoy dia?
Int: Lo ultimo que oi fue algo como unos $70 - $80 la hora para uno
realmente bueno...
BS: Lo ves? Y se los gana a pulso. Seguir la pista de todo lo que he
puesto en C++ no es facil. Y como dije anteriormente, todo
programador en C++ se siente impulsado por alguna promesa mistica
a usar todos los elementos del lenguaje en cada proyecto. Eso
ciertamente me molesta a veces, aunque sirva a mi proposito
original. Casi me ha acabado gustando el lenguaje tras todo este tiempo.
Int: Quiere decir que no era asi antes?
BS: Lo odiaba. Parece extra~o, no estas de acuerdo? Pero cuando los
beneficios del libro empezaron a llegar... bien, te haces una idea...
Int: Solo un minuto. Que hay de las referencias?. Debe admitir que
mejoro los punteros de C...
BS: Hmm. Siempre me he preguntado por eso. Originalmente crei que lo
habia hecho. Entonces, un dia estaba discutiendo esto con un tipo que
escribe en C++ desde el principio. Dijo que no podia recordar cuales
de sus variables estaban o no referenciadas, por lo que siempre
usaba punteros. Dijo que el peque~o asterisco se lo recordaba.
Int: Bien, llegados a este punto suelo decir 'muchas gracias' pero hoy
no parece muy adecuado.
BS: Prometeme que publicaras esto. Mi conciencia esta dando lo mejor
de mi mismo estos dias.
Int: Se lo hare saber, pero creo que se lo que dira mi editor...
BS: Quien se lo creeria de todas formas?... De todos modos, puedes
enviarme una copia de la cinta.?
Int: Descuide, lo hare.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*