david | 4 Jul 11:12
Favicon
Gravatar

Script de freecampus

Buenas

Acabo de visitar la web de CRySoL (la receta de David sobre listados de código en LaTeX con el paquete
listings me está viniendo fenomenal :-)) cuando he visto que hay un comentario acerca del script de
Greasemonkey de Free-Campus que ya no está disponible. La máquina dejó de existir, y como tengo tan
mala cabeza ni me acordé de cambiar el enlace... lo siento :-S. Desde aquí muchas gracias al usuario Lk2
que fue tan majo de hacer pública una copia :-). El caso es que hace tiempo lo subí también a
http://userscripts.org; es un sitio genial porque hay miles de scripts de Greasemonkey para un montón
de webs. Llevan trabajando un montón de años, y da la impresión de que es un sitio serio en el sentido de
que no vaya a desaparecer en un futuro lejano. El enlace sería
http://userscripts.org/scripts/show/9533, por si a alguien le puede servir útil.

Comenté hace un tiempo que me es imposible volver a acceder a la web de CRySoL porque creo que olvidé la
contraseña, y cuando solicito una nueva no me llega el correo (puede ser que o bien haya un correo viejo que
no lleve a ningún sitio, o que no me lleguen...). El caso es que me gustaría poder volver a loguearme para
participar en alguna que otra discusión interesante que he visto, y para cambiar el enlace de la receta de
Red-Campus. ¿Podría alguno de los administradores echarme una mano por favor?

Muchas gracias, que paséis un buen verano :-)


¡Hasta luego!
Buenas

Acabo de visitar la web de CRySoL (la receta de David sobre listados de código en LaTeX con el paquete
listings me está viniendo fenomenal :-)) cuando he visto que hay un comentario acerca del script de
Greasemonkey de Free-Campus que ya no está disponible. La máquina dejó de existir, y como tengo tan
mala cabeza ni me acordé de cambiar el enlace... lo siento :-S. Desde aquí muchas gracias al usuario Lk2
que fue tan majo de hacer pública una copia :-). El caso es que hace tiempo lo subí también a
(Continue reading)

Ricardo | 5 May 19:44

Party Quijote 2009

Hola a todos,

Este año se va a organizar la 4ª Edición de Party Quijote, en esta 
ocasión se celebrará en Toledo del 16 al 19 de Julio.

Como pioneros que fuisteis en la celebración del 2006, me gustaría poder 
contar con vuestra ayuda para organizar algún taller de software libre, 
como una install party, presentación de alguna herramienta, o lo que se 
os ocurra. Todos aquellos que colaboren montando algún taller, charla, 
tendran acceso gratuito a la party :P

Tenéis mas información en : www.partyquijote.com

También pediros un favor,  si podéis poner una noticia en la web, para 
darle mayor difusión al evento :)

Un saludo y espero noticias vuestras :)

-- 
--

-- 
Ricardo Monsalve Nicolás
Comité Organizador Party Quijote 2009

Replicar/Copiar Fedora Core instalado

Hola a todos:

Por exigencias del guión necesito replicar un sistema fedora core 9 un
tanto particular. Este kernel tiene módulos muy específicos, se ha
compilado adrede para un determinado host, ... Vamos que como hay que
instalarlo en bastantes racks lo suyo sería tener un CD/DVD generado a
propósito para este fin. La idea es conseguir un cd autoarrancable que
incluya exactamente la misma configuración del equipo que antes he
descrito, esto es: .img del kernel, modulos cargados, configuracion
del /etc y demás, esquema de particiones, ... y los datos del /home, si
es posible.

Para ello estoy utilizando mondo, con su comando mondoarchive. Al
generar la iso del sistema "clonado" e intentar instalarlo, la
instalación falla. No pego el error porque no puedo reproducirlo desde
aqui. El problema es que no se escribe nada en el disco duro del rack
desde el cd generado por mondo. Y aquí me quedo. No sé si utilizar mondo
es una buena idea o existen otras utilidades/herramientas que hagan
esto.

Perdón por el ladrillazo.

Un saludo, Arturo.

PD: No lo posteo en el linkedIn porque de momento no ha tenido mucho
exito el grupo CRySoL.
Hola a todos:

(Continue reading)

Ignacio Arriaga | 7 Mar 14:26

Problema con tarjeta broadcom

Saludos,

Tengo un problema con la tarjeta wireless de mi ordenador de sobremesa. 
Utilizo debian sid, y la versión del kernel que tengo es la 2.6.26-1-686.

El modelo de la tarjeta es el siguiente:

Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN 
Controller (rev 03)

Para las tarjetas de marca broadcom existe un paquete debian llamado 
b43-fwcutter que se encarga de descargar el driver de la página web del 
fabricante e instalarlo en el sistema. La versión que tengo de ese 
paquete es la 1:011-7. El módulo b43 que es el que corresponde al modelo 
de mi tarjeta también está activado.

La salida del comando iwconfig es la siguiente:

lo        no wireless extensions.

eth1      no wireless extensions.

eth0      no wireless extensions.

wlan0_rename  IEEE 802.11  ESSID:""  
          Mode:Managed  Frequency:2.462 GHz  Access Point: Not-Associated   
          Tx-Power=20 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
(Continue reading)

Gravatar

[PyGtk] Hacer destroy a un widget y cargar otro en su lugar

Hola, estoy haciendo una pequeña interfaz para una aplicación con PyGtk+, prescindiendo de Glade y añadiendo todos los widget necesarios "a pelo".

Mi problema es que una vez creada la interfaz, tengo una barra de menus, donde tengo un widget MenuItem que al ser activado llamara a una retrollamada que quiero que destruya un widget HBox que ocupa el centro de la interfaz y que cargue otro widget HBox con un gtk.Label y un gtk.ComboEntryList. El problema es que parece ser que no obtengo bien la instancia o no consigo que la interfaz lo muestre y refresque los nuevos widgets con show() o realize().

Me gustaría saber si es posible hacer esto y como hacerlo o bien si se puede realizar por algún otro método. (que no sea utilizando Notebook) porque tendria que cargar varias hojas, ya hago esa operación varias veces.

La clase simplificada de mi aplicación es esta (lo importante esta en el método on_activate_generate):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk

class GestyRoute(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self)
       
        self.set_title('Gesty Route') # + Version
        self.set_default_size(750, 500)
        self.set_position(gtk.WIN_POS_CENTER)
        self.set_gravity(gtk.gdk.GRAVITY_CENTER)
        self.set_border_width(0)
       
        self.connect("delete_event", self.on_delete_event)
        self.connect("destroy_event", self.on_destroy_event)

        self.add(self.__add_content())
        self.show_all()
       
    def __create_menubar(self):

        setting = gtk.ImageMenuItem('Configuración')
        setting.set_image(gtk.image_new_from_stock(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_MENU))
        exit    = gtk.ImageMenuItem('Salir')
        exit.set_image(gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU))
       
        menu_archive = gtk.Menu()
        menu_archive.append(setting)
        menu_archive.append(exit)

        archive = gtk.MenuItem('Archivo')
        archive.set_submenu(menu_archive)
       
        generate =gtk.MenuItem('Generar')
        generate.connect('activate',self.on_activate_generate)
       
        menu_route = gtk.Menu()
        menu_route.append(generate)
       
        route = gtk.MenuItem('Rutas')
        route.set_submenu(menu_route)

        menubar = gtk.MenuBar()
        menubar.append(archive)
        menubar.append(route)

        return menubar   
   
    def on_activate_generate(self,item):
       # print "RUTA"
        #print self.get_children()[0].get_children()[1].destroy()
        #self.get_children()[0].get_children()[1].pack_start(gtk.Label("HOla"),False,False,0)
        #self.show_now()
        print self.subcontent
        self.subcontent.destroy()
        #print self.subcontent
        #self.subcontent.unrealize()
        print self.subcontent
        #self.subcontent = gtk.VBox(False,0)
        #print self.subcontent
        #self.subcontent = ''
       
        vbox = gtk.VBox(0,False)
        vbox.pack_start(gtk.ComboBoxEntry(),False,False,0)
        vbox.pack_start(gtk.Label("Hola"),False,False,0)
        self.subcontent.pack_start(vbox,False,False,0)
        #self.subcontent = gtk.Label("Hola")
        print self.subcontent
        self.subcontent.show_all() # No se muestra ningun widget
        self.show_all()
   
    def __create_statusbar(self):
        statusbar = gtk.Statusbar()
        context_id = statusbar.get_context_id('statusbar main')
        statusbar.push(context_id,"Barra de estado: Aplicación cargada.")
        return statusbar 
       
    def __add_content(self):
        vbox = gtk.VBox(False, 0)
        vbox = gtk.VBox(False, 0)
        vbox.set_border_width(0)

        self.menubar = self.__create_menubar()
        vbox.pack_start(self.menubar, False, False, 0)
        self.subcontent = self.__create_subcontent_initial()
        vbox.pack_start(self.subcontent, True, True, 0)

        self.statusbar = self.__create_statusbar()
        vbox.pack_end(self.statusbar, False, False, 0)
       
        return vbox
   
    def __create_subcontent_initial(self):
        return gtk.HBox(False,0)
       
    def on_delete_event(self, widget, data = None):
        gtk.main_quit()
        return False

    def on_destroy_event(self, widget, data = None):
        gtk.main_quit()
        return False
       
if __name__ == '__main__':
    try:
        GestyRoute()
        gtk.main()
    except KeyboardInterrupt:
        print "Programa cancelado por teclado."
        import sys
        sys.exit(1)



--
Shakaran
Blog: www.shakaran.es
Mi proyecto de juego de rol online: www.apogeus.es

<div><p>Hola, estoy haciendo una peque&ntilde;a interfaz para una aplicaci&oacute;n con PyGtk+, prescindiendo de Glade y a&ntilde;adiendo todos los widget necesarios "a pelo".<br><br>Mi problema es que una vez creada la interfaz, tengo una barra de menus, donde tengo un widget MenuItem que al ser activado llamara a una retrollamada que quiero que destruya un widget HBox que ocupa el centro de la interfaz y que cargue otro widget HBox con un gtk.Label y un gtk.ComboEntryList. El problema es que parece ser que no obtengo bien la instancia o no consigo que la interfaz lo muestre y refresque los nuevos widgets con show() o realize().<br><br>Me gustar&iacute;a saber si es posible hacer esto y como hacerlo o bien si se puede realizar por alg&uacute;n otro m&eacute;todo. (que no sea utilizando Notebook) porque tendria que cargar varias hojas, ya hago esa operaci&oacute;n varias veces.<br><br>La clase simplificada de mi aplicaci&oacute;n es esta (lo importante esta en el m&eacute;todo on_activate_generate):<br><br>#!/usr/bin/env python<br># -*- coding: utf-8 -*-<br><br>import gtk<br><br>class GestyRoute(gtk.Window):<br>

&nbsp;&nbsp;&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gtk.Window.__init__(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.set_title('Gesty Route') # + Version<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.set_default_size(750, 500)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.set_position(gtk.WIN_POS_CENTER)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.set_gravity(gtk.gdk.GRAVITY_CENTER)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.set_border_width(0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect("delete_event", self.on_delete_event)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.connect("destroy_event", self.on_destroy_event)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.add(self.__add_content())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.show_all()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def __create_menubar(self):<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setting = gtk.ImageMenuItem('Configuraci&oacute;n')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setting.set_image(gtk.image_new_from_stock(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_MENU))<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit&nbsp;&nbsp;&nbsp; = gtk.ImageMenuItem('Salir')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit.set_image(gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menu_archive = gtk.Menu()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menu_archive.append(setting)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menu_archive.append(exit)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; archive = gtk.MenuItem('Archivo')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; archive.set_submenu(menu_archive)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; generate =gtk.MenuItem('Generar')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; generate.connect('activate',self.on_activate_generate)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menu_route = gtk.Menu()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menu_route.append(generate)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route = gtk.MenuItem('Rutas')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route.set_submenu(menu_route)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menubar = gtk.MenuBar()<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menubar.append(archive)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; menubar.append(route)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return menubar&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def on_activate_generate(self,item):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # print "RUTA"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #print self.get_children()[0].get_children()[1].destroy()<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.get_children()[0].get_children()[1].pack_start(gtk.Label("HOla"),False,False,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.show_now()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print self.subcontent<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.subcontent.destroy()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #print self.subcontent<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.subcontent.unrealize()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print self.subcontent<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.subcontent = gtk.VBox(False,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #print self.subcontent<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.subcontent = ''<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox = gtk.VBox(0,False)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.pack_start(gtk.ComboBoxEntry(),False,False,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.pack_start(gtk.Label("Hola"),False,False,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.subcontent.pack_start(vbox,False,False,0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.subcontent = gtk.Label("Hola")<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print self.subcontent<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.subcontent.show_all() # No se muestra ningun widget<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.show_all()<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def __create_statusbar(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusbar = gtk.Statusbar()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context_id = statusbar.get_context_id('statusbar main')<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statusbar.push(context_id,"Barra de estado: Aplicaci&oacute;n cargada.")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return statusbar&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def __add_content(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox = gtk.VBox(False, 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox = gtk.VBox(False, 0)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.set_border_width(0)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.menubar = self.__create_menubar()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.pack_start(self.menubar, False, False, 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.subcontent = self.__create_subcontent_initial()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.pack_start(self.subcontent, True, True, 0)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.statusbar = self.__create_statusbar()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbox.pack_end(self.statusbar, False, False, 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return vbox<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def __create_subcontent_initial(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return gtk.HBox(False,0)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def on_delete_event(self, widget, data = None):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gtk.main_quit()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return False<br><br>&nbsp;&nbsp;&nbsp; def on_destroy_event(self, widget, data = None):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gtk.main_quit()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return False<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>if __name__ == '__main__':<br>&nbsp;&nbsp;&nbsp; try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GestyRoute()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gtk.main()<br>&nbsp;&nbsp;&nbsp; except KeyboardInterrupt:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print "Programa cancelado por teclado."<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import sys<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys.exit(1)<br><br><br clear="all"><br>-- <br>Shakaran<br>Blog: <a href="http://www.shakaran.es" target="_blank">www.shakaran.es</a><br>Mi proyecto de juego de rol online: <a href="http://www.apogeus.es" target="_blank">www.apogeus.es</a><br></p></div>

Re: Violación de segmento según arquitectura

Si, en las dos versiones. En la primera donde solo almaceno en img un
valor a la vez también inicializo, pero no lo escribí por descuido:

img = (unsigned char *) malloc(sizeof(unsigned char));

On Mon, 29 Dec 2008 22:31:30 +0100
"Sergio Pérez Camacho" <djbrue <at> gmail.com> wrote:

> reservas*
> 
> El 29 de diciembre de 2008 22:31, Sergio Pérez Camacho
> <djbrue <at> gmail.com>escribió:
> 
> > Revervas memoria correctamente para img ???
> >
> >
> >
| 29 Dec 18:28

Re: Violación de segmento según arquitectura

La verdad es que el fflush lo hice porque daba la violación de segmento y era para ver si con él se eliminaba...

Miraré lo del ensamblador, aunque no tengo yo muy claro para que me puede valer, el único puntero que uso ahí es el de FILE... ¿debo reservar su memoria con malloc antes de abrirlo y demás? Yo creo que con fopen se sobreescribe el puntero y tengo reservado suficiente memoria como para no "violar segmentos" :D

Saludos

El 29 de diciembre de 2008 16:23, Z80user <z80user <at> gmail.com> escribió:
No se si se podra, pero yo para depurar aveces uso nemocodigos de ensamblador dentro de codigo en C

long dir;
int x[2]={1,2};
asm
{  PUSH AX
   MOV AX,X[0]
   MOV dir=AX
   POP AX
}
print ("La direccion es: %h ",dir);

creo que es la H la que da el valor en hexadecimal
aunque esto es codigo para x86, seria adaptarlo para que hiciese lo mismo en el ARM.

prueba tambien a hacerlo sin el fflush(f). en teoria creo recordar que cuando se cierra un fichero tambien se fuerza a vaciar el buffer, o para depurar algo mas, haz que despues del fflush se inserte un byte de control, (los programas lo deberian ignorar)

Para depurar en C en un PC, suelo mirar el codigo ensamblador que genera, aunque hay que sabe ensamblador para entenderlo (fue asi como aprendi C, el dia que encontre el depurador en ensamblador)

<div>
<p>La verdad es que el fflush lo hice porque daba la violaci&oacute;n de segmento y era para ver si con &eacute;l se eliminaba...<br><br>Mirar&eacute; lo del ensamblador, aunque no tengo yo muy claro para que me puede valer, el &uacute;nico puntero que uso ah&iacute; es el de FILE... &iquest;debo reservar su memoria con malloc antes de abrirlo y dem&aacute;s? Yo creo que con fopen se sobreescribe el puntero y tengo reservado suficiente memoria como para no "violar segmentos" :D<br><br>Saludos<br><br></p>
<div class="gmail_quote">El 29 de diciembre de 2008 16:23, Z80user <span dir="ltr">&lt;<a href="mailto:z80user <at> gmail.com">z80user <at> gmail.com</a>&gt;</span> escribi&oacute;:<br><blockquote class="gmail_quote">
No se si se podra, pero yo para depurar aveces uso nemocodigos de ensamblador dentro de codigo en C<br><br>long dir;<br>int x[2]={1,2};<br>asm<br>{&nbsp; PUSH AX<br>&nbsp;&nbsp; MOV AX,X[0]<br>&nbsp;&nbsp; MOV dir=AX<br>&nbsp;&nbsp; POP AX<br>}<br>print ("La direccion es: %h ",dir);<br><br>creo que es la H la que da el valor en hexadecimal<br>aunque esto es codigo para x86, seria adaptarlo para que hiciese lo mismo en el ARM.<br><br>prueba tambien a hacerlo sin el fflush(f). en teoria creo recordar que cuando se cierra un fichero tambien se fuerza a vaciar el buffer, o para depurar algo mas, haz que despues del fflush se inserte un byte de control, (los programas lo deberian ignorar)<br><br>Para depurar en C en un PC, suelo mirar el codigo ensamblador que genera, aunque hay que sabe ensamblador para entenderlo (fue asi como aprendi C, el dia que encontre el depurador en ensamblador)<br>
</blockquote>
</div>
<br>
</div>

Violación de segmento según arquitectura

Buenas a todos/as

Aunque creo que esta lista no es la más apropiada, escribo aquí porque
la lista de C++/C no funciona...

Estoy haciendo un programa que descarga una imagen JPG a través de un
socket y la guarda en un fichero en disco.

El programa funciona perfectamente en x86, pero al compilarlo y
ejecutarlo en un ARM (el Chumby más concretamente :P) da una violación
de segmento bastante rarita...

Como el Chumby no tiene GDB ni nada parecido me he puesto a depurar un
poco a la "Pepe el guarro" metiendo printf por bastantes sitios, y cual
es mi sorpresa al descubrir que quien provoca la violación de segmento
es la llamada a fclose para cerrar el descriptor del fichero.

Mi código hace algo parecido a esto:

FILE *f = fopen(IMAGE, "wb");

// escribo la imagen

fflush(f);
fclose(f);

Pues bien, si yo coloco un printf antes o después del "flush", se
imprime correctamente, pero si lo coloco tras el fclose, falla
estrepitosamente.

He comprobado si el fichero se escribía complemente en disco, y es así:
el fichero está en la ubicación indicada con el tamaño esperado y la
imagen está completa, es decir, permite abrirla con cualquier programa
que muestre/manipule JPG.

¿Alguien podría decirme como solucionar este extraño (para mi) suceso?

Nuevo grupo en LinkedIn

Hola a todos:

No sé si alguno seréis usuarios de la red social/profesional LinkedIn,
pero acabo de crear el grupo CRySoL [1] para que todo aquel que quiera
pueda unirse a él. Ahora mismo soy creador/administrador, si alguien
está interesado en labores de administración le doy de altas sin
problemas.

Espero que entre todos podamos darle más empuje a nuestra
asociación/secta y que se nos conozca en mas sitios.

Sin mas, me gustaría felicitaros las pascuas a todos y que tengáis un
buen 2009.

Un saludo, Arturo.

[1] http://www.linkedin.com/groups?gid=1312457

Hola a todos:

No sé si alguno seréis usuarios de la red social/profesional LinkedIn,
pero acabo de crear el grupo CRySoL [1] para que todo aquel que quiera
pueda unirse a él. Ahora mismo soy creador/administrador, si alguien
está interesado en labores de administración le doy de altas sin
problemas.

Espero que entre todos podamos darle más empuje a nuestra
asociación/secta y que se nos conozca en mas sitios.

Sin mas, me gustaría felicitaros las pascuas a todos y que tengáis un
buen 2009.

Un saludo, Arturo.

[1] http://www.linkedin.com/groups?gid=1312457

Ignacio Díez | 1 Dec 18:55

el ordenador se queda frito

Hola, crysoleros:

	Acabo de comprar un ordenador y le he instalado una debian unstable. Todo iría 
perfecto, si no fuera porque al cabo de un tiempo aleatorio, el ordenador se 
cuelga. Completamente congelado.

	Si arranco el kernel con acpi=off, parece que no hay problema. ¿Sabéis qué 
puede ser?

  Placa: ASUS P5QL Pro
     µP: Intel Dual Core
kernel: Linux 2.6.26
    RAM: 4 GB DDR 2 (2x2GB)

	Nacho
Attachment (ignacio_diez.vcf): text/x-vcard, 322 bytes
Hola, crysoleros:

	Acabo de comprar un ordenador y le he instalado una debian unstable. Todo iría 
perfecto, si no fuera porque al cabo de un tiempo aleatorio, el ordenador se 
cuelga. Completamente congelado.

	Si arranco el kernel con acpi=off, parece que no hay problema. ¿Sabéis qué 
puede ser?

  Placa: ASUS P5QL Pro
     µP: Intel Dual Core
kernel: Linux 2.6.26
    RAM: 4 GB DDR 2 (2x2GB)

	Nacho
Ignacio Díez | 21 Nov 10:31

(offtopic) curiosidades con icegrid-gui

esto es un poco off-topic, pero a falta de una lista de correo sobre ICE o, aún 
mejor, una lista de correo sobre programación en general (en lugar de las dos 
que hay dedicadas a C y Python) he decidido mandarlo aquí.

El caso es que estoy trabajando con icegrid-gui y he observado lo siguiente: 
arranco un nodo y le parcheo un servidor, con "Patch Distribution". Después lo 
inicio con "Start". Sale todo perfecto e instantáneo.

Ahora resulta que modifico el ejecutable y lo tengo que volver a distribuir. 
Paro el servidor de icepatch, re-ejecuto el icepatch2calc y vuelvo a darle a 
"Patch Distribution". ¡Ahora tarda muchísimo! Pero no es que lo envíe a 2 B/s, 
sino que tarda un montón en empezar a enviarlo. Se queda "dormido" (por decirlo 
de alguna forma), hasta que le viene en gana enviarlo.

Pero no sólo eso. Además, cuando por fin está distribuido el nuevo ejecutable, 
al intentar iniciarlo, muchas veces me encuentro con un error que me dice que 
no se ha podido iniciarlo y ha saltado el timeout. Y a reintentarlo hasta que 
le apetece funcionar.

En resumen, la primera vez que despliego un ejecutable sale todo perfecto, pero 
las siguientes, tarda la vida. ¿Por qué puede ser?

Reitero mi sugerencia a los admins de la creación de una lista de correo de 
PROGRAMACIÓN en general (y actividades afines).

	Nacho.
Attachment (ignacio_diez.vcf): text/x-vcard, 322 bytes
esto es un poco off-topic, pero a falta de una lista de correo sobre ICE o, aún 
mejor, una lista de correo sobre programación en general (en lugar de las dos 
que hay dedicadas a C y Python) he decidido mandarlo aquí.

El caso es que estoy trabajando con icegrid-gui y he observado lo siguiente: 
arranco un nodo y le parcheo un servidor, con "Patch Distribution". Después lo 
inicio con "Start". Sale todo perfecto e instantáneo.

Ahora resulta que modifico el ejecutable y lo tengo que volver a distribuir. 
Paro el servidor de icepatch, re-ejecuto el icepatch2calc y vuelvo a darle a 
"Patch Distribution". ¡Ahora tarda muchísimo! Pero no es que lo envíe a 2 B/s, 
sino que tarda un montón en empezar a enviarlo. Se queda "dormido" (por decirlo 
de alguna forma), hasta que le viene en gana enviarlo.

Pero no sólo eso. Además, cuando por fin está distribuido el nuevo ejecutable, 
al intentar iniciarlo, muchas veces me encuentro con un error que me dice que 
no se ha podido iniciarlo y ha saltado el timeout. Y a reintentarlo hasta que 
le apetece funcionar.

En resumen, la primera vez que despliego un ejecutable sale todo perfecto, pero 
las siguientes, tarda la vida. ¿Por qué puede ser?

Reitero mi sugerencia a los admins de la creación de una lista de correo de 
PROGRAMACIÓN en general (y actividades afines).

	Nacho.

Gmane