Programación de ns: problemas de mezclar C++ con Tcl sin dosis elevadas de cafeína

Technorati Tags: , , ,

Las cosas que pasan cuando se programan módulos de ns, que requiere mezclar los lenguajes C++ y Tcl, que tienen una sintaxis bastante diferente.

ns@autoslocos:~/ns-allinone-2.29-dev/ns-2.29$ make
g++ -c -Wall -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DLINUX_TCP_HEADER -DUSE_SHM -DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_11 -DHAVE_OTCL_H -DHAVE_LIBTK8_4 -DHAVE_TK_H -DHAVE_LIBTCL8_4 -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO_SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I/home/ns/ns-allinone-2.29/tclcl-1.17 -I/home/ns/ns-allinone-2.29/otcl-1.11 -I/home/ns/ns-allinone-2.29/include -I/home/ns/ns-allinone-2.29/include -I/usr/include/pcap -I./tcp -I./sctp -I./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./routing -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./satellite -I./wpan -I./amor -I./OBS -I./monitor -o amor/rtProtoamor.o amor/rtProtoamor.cc
amor/rtProtoamor.cc: In member function ‘virtual void VarianceTimer::expire(Event*)’:
amor/rtProtoamor.cc:32: error: expected `(‘ before ‘{’ token
amor/rtProtoamor.cc:33: error: expected `;’ before string constant
amor/rtProtoamor.cc:33: aviso: statement es una referencia, no una llamada, a la función ‘puts’
amor/rtProtoamor.cc:33: aviso: statement no tiene efecto
amor/rtProtoamor.cc:34: error: expected primary-expression before ‘else’
amor/rtProtoamor.cc:34: error: expected `;’ before ‘else’
make: *** [amor/rtProtoamor.o] Error 1

Código causante del error:

void AMORTimer::expire (Event *e) {
Tcl & tcl = Tcl::instance();
tcl.evalf(«%s calcula-costes», agente_->name());
const char * resultString = tcl.result();
int cambios = atoi(resultString);

if {$cambios == 0} {
puts «No hay cambios»
} else {
puts «Hay cambios»
}
resched(delay);
}

Cualquier parecido con la realidad es pura coincidencia.

Share

Introducción a OBS

Technorati Tags: , , , ,

La última vez que hablé sobre OBS me limité a poner algunos enlaces interesantes donde se habla de esta técnica de conmutación para redes ópticas.

Ya llevo bastante tiempo trabajando en esta temática, y de hecho el Proyecto Fin de Carrera va bastante avanzado. Así que toca contar con mis palabras de forma resumida de qué va esto de la Conmutación de Ráfagas Ópticas, ya que tal vez a alguien le interese.

Decir que la aplicabilidad de todos estos conceptos suele limitarse a las redes troncales y metropolitanas, es decir, las que transportan el tráfico de una ciudad o de un país.

Sigue leyendo

Share

Los estilos del Wu Shu Chino (I)

Technorati Tags: , , , ,

¿Qué es Wu Shu?

Definimos el Wu Shu como «Artes Marciales Chinas», también conocidas como Kung Fu (Gong Fu en la transliteración Pinyin). Realmente, el significado de este último término es «un trabajo bien hecho» o «habilidad para hacer algo». Se usa a veces para referirse a la habilidad marcial de alguien. Por el contrario, el significado tradicional de Wu Shu es «el arte de partir la lanza», siendo la lanza el arma más poderosa de las antiguas armas chinas. En la actualidad lo veremos traducido como «artes marciales» en los diccionarios.

Transliteraciones

Las transcripciones de los ideogramas chinos a caracteres latinos son muy variadas, siendo las más extendidas la Wade-Giles, creada por los ingleses y que se aproxima bastante a la pronunciación, y la Pinyin, creada por el gobierno chino. En este artículo usaré la notación Pinyin, escribiendo entre paréntesis la transcripción en Wade-Giles sin los tonos (que esa es otra, existen 4 tonos más el atonal para las sílabas).

Decir que yo no hablo chino, por lo que puede que me equivoque con algo.

Sigue leyendo

Share