| Auteur | Message |
|---|---|
|
le: 18. 03. 2005 [12:52]
|
|
|
roger@infomed.sld.cu
Roger Peña Escob
Auteur du fil
Inscrit depuis: 31.12.1969
Interventions: 0
|
hi everybody yesterday night i was working on a clabel, tring to get working a new isi= s DB in clabel, everything was fine until i try to get the terms, i got nothing when i debug the php page, php complain about "maximun memory allocation,= more than 8 MB" thought, i realice that the function was who make the error, then i "disc= over" that the function isis_terms just output _all_ the terms, i was working with a DB = of 80000+ records my next step was to modify the function in order to be able to use an int= erval, an start and a count variables, i did the new function and works just fine, so i s= tart paging the terms and .... guest what, i found that the function just become crasy w= hen hit a terms like "[S.A.]" or [S.A] , i can see those terms with openisis binary, but = never with php-openisis any idea? roger ---------------------------------------------------------------------- Nodo central de la red Infomed (http://www.sld.cu) Usuario linux: 97152 (http://counter.li.org) Miembro del grupo de coordinacion de LinuxCuba (http://www.linux.cu) "Whatever you do will be insignificant, but it is very important that you do it." Gandhi ---------------------------------------------------------------------- ------------------------------------------------- Este mensaje fue enviado usando el servicio de correo en web de Infomed http://webmail.sld.cu ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [14:11]
|
|
|
braulio
Braulio Solano Rojas
Inscrit depuis: 16.05.2008
Interventions: 2
|
Hola I did not understand very well everything you said... > when i debug the php page, php complain about "maximun memory allocation, > more than 8 MB" ...but this is very common. Just change your php.ini. V.G.: memory_limit = 16M http://www.php.net/manual/en/ini.core.php#ini.memory-limit Good luck. B. ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [15:19]
|
|
|
roger@infomed.sld.cu
Roger Peña Escob
Auteur du fil
Inscrit depuis: 31.12.1969
Interventions: 0
|
Mensaje citado por braulio@solsoft.co.cr: > Hola > > I did not understand very well everything you said... creo que es mejor irse para el espanhol lo que decia era que la funcion isis_terms() devuelve _todos_ los termino= s, y los devuelve en un array(), por tanto, es cuestion de tiempo llegar al limite de memor= y_limit, no importa si pongo 8MB o 16, en algun momento lo voy a alcanzar la situacion seria diferente si yo pudiera pasarle dos parametros: inicio= y cantidad de terminos a devolver esto ultimo ya lo hice, pues es una muy ligera modificacion a la funcion = que existe hoy en dia, y funciona lo segundo que descubri fue que la existencia de tres terminos de la form= a: [S.A.] o [S.A] realmente implica que la funcion devuelva cualquier cantid= ad de terminos , pero con la peculiaridad de que a ellos no, y es muy interesante pues es = un gatillo, si esos terminos caen en el rango de los terminos a entregar pues pum se da = el problema sin embargo, los terminos los veo con el openisis ejecutable la base con que estoy probando pesa 38 MB en mst mas los otros ficheros,= pasa de los 45 Mb, si fuera mas chiquita pues te invitaba a que la vieras tratare hoy de dar mas debug, pero la verdad es que mis conocimientos no = son tan grandes como para definir a fondo donde esta el lio y por que cu roger ---------------------------------------------------------------------- Nodo central de la red Infomed (http://www.sld.cu) Usuario linux: 97152 (http://counter.li.org) Miembro del grupo de coordinacion de LinuxCuba (http://www.linux.cu) "Whatever you do will be insignificant, but it is very important that you do it." Gandhi ---------------------------------------------------------------------- ------------------------------------------------- Este mensaje fue enviado usando el servicio de correo en web de Infomed http://webmail.sld.cu ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [16:40]
|
|
|
braulio
Braulio Solano Rojas
Inscrit depuis: 16.05.2008
Interventions: 2
|
Hola. > esto ultimo ya lo hice, pues es una muy ligera modificacion a la funcion > que existe hoy en > dia, y funciona > lo segundo que descubri fue que la existencia de tres terminos de la > forma: > [S.A.] o [S.A] realmente implica que la funcion devuelva cualquier > cantidad de terminos , > pero con la peculiaridad de que a ellos no, y es muy interesante pues es > un gatillo, si > esos terminos caen en el rango de los terminos a entregar pues pum se da > el problema > > sin embargo, los terminos los veo con el openisis ejecutable Pues sucede que nunca he utilizado el punto, pero entiendo que significa que habrán n palabras de distancia entre términos. Sin embargo aquí no veo el espacio, o sea que no entiendo muy bien de qué estás hablando ni en inglés ni en español. > la base con que estoy probando pesa 38 MB en mst mas los otros ficheros, > pasa de los 45 > Mb, si fuera mas chiquita pues te invitaba a que la vieras > > tratare hoy de dar mas debug, pero la verdad es que mis conocimientos no > son tan grandes > como para definir a fondo donde esta el lio y por que Puedes compilar PHP como Command Line Interpreter con símbolos de depuración. Poner isis como extensión estática, no compartida. Y utilizar GDB para depurar. Si utilizas bien trace y breakpoint condicionales entonces muy probablemente llegues al meollo del asunto. Suerte. B. ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [16:53]
|
|
|
roger@infomed.sld.cu
Roger Peña Escob
Auteur du fil
Inscrit depuis: 31.12.1969
Interventions: 0
|
Mensaje citado por braulio@solsoft.co.cr: > > > lo segundo que descubri fue que la existencia de tres terminos de la > > forma: > > [S.A.] o [S.A] realmente implica que la funcion devuelva cualquier > > cantidad de terminos , > > pero con la peculiaridad de que a ellos no, y es muy interesante pues= es > > un gatillo, si > > esos terminos caen en el rango de los terminos a entregar pues pum se= da > > el problema > > > > sin embargo, los terminos los veo con el openisis ejecutable > > Pues sucede que nunca he utilizado el punto, pero entiendo que signific= a > que habr=E1n n palabras de distancia entre t=E9rminos. Sin embargo aqu= =ED no > veo el espacio, o sea que no entiendo muy bien de qu=E9 est=E1s habland= o ni en > ingl=E9s ni en espa=F1ol. > a ver. no estoy realizando ninguna busqueda solo estoy recuperando los _terminos del diccionario_ $terminos =3D isis_terms($root,$dbid); $terminos es un arreglo cuyos elementos son los _terminos del diccionario= _, no es asi? bien, resulta que la funcion isis_terms "explota" (mal funciona) cuando l= e toca recuperar, meter en el array(), al termino [S.A.] , lo se porque voy probando termin= o a termino hasta llegar a el, aun cuando php-openisis _nunca_ me lo muestra se que e= xiste porque openisis _si_ me lo muestra me explique ahora? todo es alrededor de este codigo: for (i=3D0; i<result.set.len; i++ ) { if (add_next_index_stringl(return_value, result.set.field[i]= .val, result.set.field[i].len, 1) =3D=3D FAILURE) { zend_error(E_WARNING, "I can't successfuly complete the a= rray!"); RETURN_FALSE; } } cuando "i" coincide con la posicion donde esta esta el primero de los ter= minos conflictivos, pum, aparece el problema > Puedes compilar PHP como Command Line Interpreter con s=EDmbolos de > depuraci=F3n. Poner isis como extensi=F3n est=E1tica, no compartida. = Y > utilizar GDB para depurar. Si utilizas bien trace y breakpoint > condicionales entonces muy probablemente llegues al meollo del asunto. intentare hacer algo de eso quisiera tambien tracudirme/entender esa parte de codigo de la funcion is= is_terms() que escribi arriba, para tratar de entender mejor porque explota ver como pincha la funcion add_next_index_stringl() saludos roger ---------------------------------------------------------------------- Nodo central de la red Infomed (http://www.sld.cu) Usuario linux: 97152 (http://counter.li.org) Miembro del grupo de coordinacion de LinuxCuba (http://www.linux.cu) "Whatever you do will be insignificant, but it is very important that you do it." Gandhi ---------------------------------------------------------------------- ------------------------------------------------- Este mensaje fue enviado usando el servicio de correo en web de Infomed http://webmail.sld.cu ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [19:41]
|
|
|
braulio
Braulio Solano Rojas
Inscrit depuis: 16.05.2008
Interventions: 2
|
First I wish you all a happy holy week. ¡Felices Pascuas! > a ver. > no estoy realizando ninguna busqueda > solo estoy recuperando los _terminos del diccionario_ > > $terminos = isis_terms($root,$dbid); > > $terminos es un arreglo cuyos elementos son los _terminos del > diccionario_, no es asi? Ups. Ando, sinceramente, un poco cansado... y con el corazón roto. Oups. I am, honestly, a little bit tired... and heart broken. > bien, resulta que la funcion isis_terms "explota" (mal funciona) cuando le > toca recuperar, > meter en el array(), al termino [S.A.] , lo se porque voy probando termino > a termino > hasta llegar a el, aun cuando php-openisis _nunca_ me lo muestra se que > existe porque > openisis _si_ me lo muestra > > me explique ahora? Si. Yes. > todo es alrededor de este codigo: > for (i=0; i<result.set.len; i++ ) > { > if (add_next_index_stringl(return_value, > result.set.field[i].val, result.set.field[i].len, 1) == FAILURE) > { > zend_error(E_WARNING, "I can't successfuly complete the > array!"); > RETURN_FALSE; > } > } > > cuando "i" coincide con la posicion donde esta esta el primero de los > terminos > conflictivos, pum, aparece el problema Rarísimo y no sé a qué se deba. result.set es un conjunto de OpenIsis. i es un índice y debería estar bien. val el valor y len el largo. return_value es un arreglo del mundo de PHP, no del mundo de C. ¿Qué es pum? Weird and I don't know what causes this. result.set is an OpenIsis set. i is an index and should be fine. val the value and len the length. return_value is an array of the PHP world, not of the C world. What is pum? > intentare hacer algo de eso Ojalá. "May God want this." > quisiera tambien tracudirme/entender esa parte de codigo de la funcion > isis_terms() que > escribi arriba, para tratar de entender mejor porque explota ver como > pincha la funcion add_next_index_stringl() La extensión pareciera ser algo simple, pero no es trivial en lo absoluto. Requiere un conocimiento del API de OpenIsis y del API del Zend Engine al mismo tiempo. De hecho, he notado que en los sitios que utilizan la extensión nunca se menciona nada sobre ella ni sobre su creador, lo que me hace sentir que se ha valorado poco ese trabajo y su importancia. :'( Leete esto: http://www.zend.com/apidoc/zend.variables.array.php The extension seems to be simple, but it is not trivial at all. It requires knowledge about the OpenIsis API and the Zend Engine API at the same time. In fact, I have noticed that in sites that uses the extension it is never mentioned anything about it or his creator, which makes me feel that the work done and his importance has been under-rated. :'( Read this: http://www.zend.com/apidoc/zend.variables.array.php Hasta pronto, See ya, B. ------------------------------------------ Posted to Phorum via PhorumMail |
|
le: 18. 03. 2005 [20:39]
|
|
|
roger@infomed.sld.cu
Roger Peña Escob
Auteur du fil
Inscrit depuis: 31.12.1969
Interventions: 0
|
Mensaje citado por Braulio Jos=E9 Solano Rojas <braulio@solsoft.co.cr>: > First I wish you all a happy holy week. =A1Felices Pascuas! > > > a ver. > > no estoy realizando ninguna busqueda > > solo estoy recuperando los _terminos del diccionario_ > > > > $terminos =3D isis_terms($root,$dbid); > > > > $terminos es un arreglo cuyos elementos son los _terminos del > > diccionario_, no es asi? > > Ups. Ando, sinceramente, un poco cansado... y con el coraz=F3n roto. > Oups. I am, honestly, a little bit tired... and heart broken. > yo tambien estoy cansado, he tenido una semana muy intensa asi que dejare la revision para el fin de semana > > bien, resulta que la funcion isis_terms "explota" (mal funciona) cuan= do le > > toca recuperar, > > meter en el array(), al termino [S.A.] , lo se porque voy probando te= rmino > > a termino > > hasta llegar a el, aun cuando php-openisis _nunca_ me lo muestra se q= ue > > existe porque > > openisis _si_ me lo muestra > > > > me explique ahora? > > Si. > Yes. > > > todo es alrededor de este codigo: > > for (i=3D0; i<result.set.len; i++ ) > > { > > if (add_next_index_stringl(return_value, > > result.set.field[i].val, result.set.field[i].len, 1) =3D=3D FAILURE) > > { > > zend_error(E_WARNING, "I can't successfuly complete t= he > > array!"); > > RETURN_FALSE; > > } > > } > > > > cuando "i" coincide con la posicion donde esta esta el primero de los > > terminos > > conflictivos, pum, aparece el problema > > Rar=EDsimo y no s=E9 a qu=E9 se deba. result.set es un conjunto de Ope= nIsis. i > es un =EDndice y deber=EDa estar bien. val el valor y len el largo. ret= urn_value > es un arreglo del mundo de PHP, no del mundo de C. =BFQu=E9 es pum? > Weird and I don't know what causes this. result.set is an OpenIsis set= . i > is an index and should be fine. val the value and len the length. > return_value is an array of the PHP world, not of the C world. What is = pum? > be asi reproducir el sonido que hace una explosion, o algun sonido fuerte y sorp= resivo que te asusta > La extensi=F3n pareciera ser algo simple, pero no es trivial en lo abso= luto. > Requiere un conocimiento del API de OpenIsis y del API del Zend Engine = al > mismo tiempo. De hecho, he notado que en los sitios que utilizan la > extensi=F3n nunca se menciona nada sobre ella ni sobre su creador, lo q= ue me > hace sentir que se ha valorado poco ese trabajo y su importancia. :'( si, yo he visto unas cuantas veces el codigo, se ve simple pero es comple= jo, simple porque cuando he tenido necesidad de modificarlo lo he podido entender y ver el = flujo de la logica, complejo porque cuando he querido mejorarlo (soporte de escritura= ) no he entendido ni "pitocha" como hacerlo bueno, espero que aunque modesto, te sirva de alegria conocer este url: http://biblio.casadelasamericas.org/clabel/opac/search_opac_query.php es la primera vez que tengo el placer de poner en un lugar publico a clab= el, y por regla le pongo en el pie de cada pagina: "Este sistema se distribuye bajo licencia GPL y usa OpenIsis (PHP-OpenIsi= s)" es minusculo, pero esta presente, que mas te gustaria que pusiera, estoy = en la entera disposicion de agregar cualquier cantidad de citas (que el cliente pueda = aguantar para hacer que el mundo conozca el esfuerzo que tu y el equipo de openisi= s han realizado y que, ami juicio, otras fuerzas del mundo CDS/ISIS tratan de acallar les contare la experiencia del fin de semana el lunes saludos roger ---------------------------------------------------------------------- Nodo central de la red Infomed (http://www.sld.cu) Usuario linux: 97152 (http://counter.li.org) Miembro del grupo de coordinacion de LinuxCuba (http://www.linux.cu) "Whatever you do will be insignificant, but it is very important that you do it." Gandhi ---------------------------------------------------------------------- ------------------------------------------------- Este mensaje fue enviado usando el servicio de correo en web de Infomed http://webmail.sld.cu ------------------------------------------ Posted to Phorum via PhorumMail |