miércoles, febrero 25, 2004

gualá!!!
Ya chica el lanzar desde un SMART_ASSERT el depurador. Bueno esta probado desde un programita muy tonto. ¿Que pasará en un entorno MT?
El codigo al final queda con alto tan tonto como esto:

pid_t ppid = getpid();
char spid[64];
sprintf(spid,"%ld",ppid);

// Se lanza el xterm en un proceso hijo
// Nota: se podria usar vfork

pid_t pid = fork();
if(pid == 0 )
{
execlp("xterm","xterm","-e","gdb","program",spid,0);
}
else if (pid == -1)
{
// Hay un error. No hacemos nada
}
else
{
// El padre
// Se queda esperando por el hijo lanzado
waitpid(pid,0,0);
}
Bueno ya estoy dentro de econozco, he metido informacion sobre mi y he invitado a gente. A ver como evoluciona...
Una cosa que me ha llamado la atención respecto a otra red de bastante exito que habia visto es que te puedes registrar sin necesitad de ser invitado.

Bueno, cambiando de tema. He ma comentado una libreria de depuración JJ: http://libcwd.sourceforge.net/
No se que tal estará, pero lo que me ha llamado la atención, es una de las ultimas funcionalidades que incorporan:
"Two new features have been added: read_rcfile() and attach_gdb(). The first reads initialization from an rcfile (allowing to set which debug channels should be on or off for example) and the second opens an xterm with an attached gdb session in it, allowing you to start to debug the application from that point (especially handy for threaded applications)."

En mi proyecto actual estamos usando la macro SMART_ASSERT de Alexandrescu, pero no se como en HP-UX saltar al depurador. Esto me ha dado la idea. Lo que hay que hacer es lanzar un procesos que sea un xterm ejecutando una sesion gdb que esté depurando el proceso desde el cual estamos lanzando todo. La caña ¿no?

Como ando un poco ocioso voy a ver si lo pruebo.

JJ, tiene por lo visto un memory leak que tiene que resolver y Electric Fence no le sirve, ya que por lo visto sólo sirve para malloc y free.
Le he pasado los siguientes enlaces:

Redes de contactos


Hace poco supe de ellas. Es una nueva forma de contactar con peña solo que a través de contactos comunes.
Me llamó la atención, pero claro no lo puede probar ya que para entrar en la red, necesitas que te inviten.
No ha pasado mucho tiempo y ya he recibido una invitación a una de ellas:

https://www.econozco.com

Seguro que dentro de poco empezarán a pulular. ¿Cual será la mejor? ¿Cuales sobreviviran? Por de pronto voy a trastear un poco con esta a ver que tal esta...

martes, febrero 24, 2004

Electric Fence



¡Vaya! gracias a una combersacion mínima mantenida con JJ a salido este nombre a colacion. Era la libería que usabamos para chequear la memoria. Vamos evitar memory leaks y tal.

Una descripcion de la libreria:
"Electric Fence (efence) stops your program on the exact instruction that overruns (or underruns) a malloc() memory buffer. GDB will then display the source-code line that causes the bug. It works by using the virtual-memory hardware to create a red-zone at the border of each buffer - touch that, and your program stops. Catch all of those formerly impossible-to-catch overrun bugs that have been bothering you for years."
Mas links:
Hace tiempo estuvimos investigando sobre la posibilidad de montar un empresa. Una de las cosas que estuvimos mirando fue sobre el tema de la pagina web. En ese momento mire diseños web open source. Listo aqui algunos que me gustaron en ese momento:

Sliqua by Phalsh:

http://www.oswd.org/browse.php?page=1&sort=ratingdesc

Extent by antipop:

http://www.oswd.org/viewdesign.phtml?id=13&referer=/search.php?type=designer&designer=antipop&x=24&y=1

Los de whompy me gustan:

http://www.oswd.org/search.php?type=designer&designer=whompy&x=25&y=7

Tweedy by artwitz:

http://www.oswd.org/viewdesign.phtml?id=5&referer=/search.php?type=designer&designer=artwiz&x=12&y=0

wanker: http://www.oswd.org/viewdesign.phtml?id=752&referer=/browse.php?page=1&sort=ratingdesc

Pasilda (este es muy similar a uno de whompy): http://www.oswd.org/viewdesign.phtml?id=1027&referer=/browse.php?page=1&sort=ratingdesc

droll (y este tb mola): http://www.oswd.org/viewdesign.phtml?id=473&referer=/browse.php?page=1&sort=ratingdesc

Como se puede ver en la lista, prima el fondo no oscuro y si es oscuro azulado.
En www.oswd.org hay muchisimos diseños.
Unos links:

  • La distribucion de linux knowpix
  • Presentacioes de jornadas de hispalinux y +, aqui.
  • Sobre wiki, weblog y foros, aqui.
  • ¿Que es wiki?
  • articulo sobre cambios en la paginacion del kernel 2.2 al 2.4 de linux
  • conversor de html a pdf y postscript

Una revisate electronica de divulgacion cientifica

http://www.divulgon.com.ar/
Estas naviades habia un par de gadgets que queria tener, uno era una camara digital y el segundo era un radio digital que tb grabara mp3.
Un ejemplo del segundo aqui.
Lo que pasa es que al final como andaba muy justo de pasta pues no ha podido ser ni el primero ni el segundo. Asi es la vida...

Una gran frase


"La vida no es como la imaginas, es como la vives"

Valores por defecto en la BD


En el proyecto que nos llevamos entre manos las entidades se pueden hacer persistentes en la BD. De los atributos que se hacen persistentes hay algunos que son opcionales.
Cuando se diseño la solución se decidió que estos valores opcionales en las entidades fueran punteros.
La idea esta bastante bien, pero el manejo es un poco engorroso. Me gustaría algun dia darle mas vueltas al asunto. Otras opciones podrían ser:

  • Usar valores por defecto
  • Usar clases recubriento

Tareas programadas en windows



Vaya mierda con las tareas programadas de windows, que no me lanzan una aplicacion cada cierto tiempo.
El minimo rango es 1 dia. Puta mierda.

La solución sería el lanzar al iniciar la sesión una aplicacion mia que tenga un timer dentro. Lo suyo sería que se quedase 'residente'.


Y como me he decido a aprovechar este rato de ocio, vamos a ir metiendo cosillas que tenia pendientes.


Y para acabar otros links que tenia por ahí en un correo:


Como ando un poco ocioso voy a dejar constanci a aqui de algunas cosillas que ultimamente he conocido. Claro, como siempre estamos hablando de unix, y mas en concreto de HP-UX.

* DEPURACION
- gdb
- wdb

* COLAS
ipcs -> permite ver el estado de las facilidades
para la interconexion de procesos
ipcs -q -> saca solo info de las colas

* SOCKETS
lsof -i tcp:
netstat -an -> mas rapido que solo con -a, ya que no
resuelve los nombres

* SYSTEM CALLS
truss/tusc -> permite trazar las llamads al sistema

* ORACLE
Se tiene un procesos hijo por cada conexion. Estos hijos
se hacen con fork => se copian los recursos => puede que
no se pueda volver a usar un puerto (por ejemplo el CORBA
de escucha con un POA persistente) si no se matan estos
procesos oracle (tendran como padre el PID 1).
Ejemplo:

ps -efugeiser2b | grep oraclegeiser | grep ' 1'

* SYSTEM
lsof -> lista ficheros abiertos
lsof -p -> muestra los ficheros abiertos por un proceso
Parece ser que ahora a la comunidad libre le esta dando por crear un nuevo sistema de versiones que mejore el CVS.
Habrá que seguirle la pista, a ver como va evolucionando:
  • Subversion personal
  • http://subversion.tigris.org/