From tony at tony.tzo.com Tue Aug 1 10:17:04 2000 From: tony at tony.tzo.com (Tony Rodriguez) Date: Wed Aug 4 23:59:18 2004 Subject: [Q] $_ $[ y ... ? In-Reply-To: <00072821335603.24261@asterix> References: <00072817052001.09603@ns> <00072821335603.24261@asterix> Message-ID: <00080111214201.21965@ns> Hola > Tienes un malentendido con el $[ porque no significa el primer índice _del_ > arreglo sino de _todos_ los arreglos en el alcance. No está en modo alguno > ligado con ningún arreglo particular, es simplemente una forma de modificar la > semántica de los arreglos para que comiencen en 0, 1, 42 o cualquier número que > resulte conveniente al programador. > Gracias por la aclaratoria. Conocia el punto pero no esta de mas ;-) > > ¿Cómo podrías determinar primero que un arreglo está siendo accesado y segundo > que hay un iterador aplicado a él? Con un contador. ¿Qué sentido tiene > implementar _permanentemente_ un contador en _todos_ los bucles que involucren > un arreglo, si en la _mayoría_ de los casos nadie lo va a usar? Ninguno, > porque pecharías la eficiencia notablemente a cambio de muy poca > conveniencia. ¿Cómo manejas el caso en el cuál se manipulan _varios_ arreglos en > una iteración? > > foreach (@a,@b,@c,@d,@e) { ... } Mil gracias por toda esta informacion. En realidad los casos en los que sea necesario son pocos para arriesgar el rendimiento de esta sentencia. Fue mas que todo cuestion de curiosidad. Lo que pasa es que pense que el compilador tenia que llavar almacenado el indice en alguna parte para poder accesar al arreglo. Pero con este ejemplo que me distes ( donde incluye varios arrays ), y el cual no habia tomado en cuenta, logre comprender mejor la situacion. Mil gracias y saludos. Tony. ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From tony at tony.tzo.com Tue Aug 1 10:21:50 2000 From: tony at tony.tzo.com (Tony Rodriguez) Date: Wed Aug 4 23:59:18 2004 Subject: [Q] ½ OFF-Topic. Acerca del cliente de mail -> pronto. Message-ID: <00080111401302.21965@ns> Saludos. Disculpen las molestias. La pregunta es un poco Off-Topic y es referente al cliente de mail llamado pronto que esta basado en perl/Gtk. He tenido cantidad de problemas con el y de hecho no he logrado bajar mails con el nunca. Al principio pense que podria ser a causa del perl que tenia 5.005... y como ayer actualice a 5.6 volvi a intentar pero nada. COMENTARIO: Actualice debido a que durante el fin de semana en mi apto., note que en perl 5.6, entre otras cosas, los botones de perl/Tk ya tenian asociados la tecla enter por defecto. Ok, el error es con el modulo DateManip. El problema es que empieza a bajar mails y alterminar el primero se cierra la ventana y no guarda el mensaje. Necesito su experiencia para decifrar los siguientes mensajes. Sera algo con mi distro? Gracias por su atencion. Tony. ERROR: Date::Manip unable to determine TimeZone. Date::Manip::Date_TimeZone called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 628 Date::Manip::Date_Init() called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 746 Date::Manip::ParseDateString('Wed, 2 Aug 2000 00:22:47 +1000') called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 1666 Date::Manip::UnixDate('Wed, 2 Aug 2000 00:22:47 +1000', '%s') called at /usr/lib/pronto/prontolib.pl line 227 main::date_to_localdate('Wed, 2 Aug 2000 00:22:47 +1000') called at /usr/lib/pronto/prontolib.pl line 429 main::save_message('DBI::db=HASH(0x862f0ac)', 'Return-Path: colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From cumache at yahoo.com Tue Aug 1 14:49:31 2000 From: cumache at yahoo.com (Cesar Castillo) Date: Wed Aug 4 23:59:18 2004 Subject: =?X-UNKNOWN?Q?Re=3A_=5BQ=5D_=BD_OFF-Topic=2E__Acerca_del_cl?= =?X-UNKNOWN?Q?iente_de_mail_-=3E_pronto=2E?= In-Reply-To: <00080111401302.21965@ns> Message-ID: Saludos el problema es que tienes que setear tu variable TZ a GMT o crear el archivo /etc/TIMEZONE con ese valor.( leete el archivo Manip.pm para ver en donde mas busca el timezone) tambien sirve man Date::manip ( si lo instalastes donde se debe ) dewa mata! On Tue, 1 Aug 2000, Tony Rodriguez wrote: > Saludos. > > Disculpen las molestias. La pregunta es un poco Off-Topic y es referente al > cliente de mail llamado pronto que esta basado en perl/Gtk. > > He tenido cantidad de problemas con el y de hecho no he logrado bajar mails con > el nunca. Al principio pense que podria ser a causa del perl que tenia > 5.005... y como ayer actualice a 5.6 volvi a intentar pero nada. > COMENTARIO: Actualice debido a que durante el fin de semana en mi apto., note > que en perl 5.6, entre otras cosas, los botones de perl/Tk ya tenian asociados > la tecla enter por defecto. > > Ok, el error es con el modulo DateManip. El problema es que empieza a bajar > mails y alterminar el primero se cierra la ventana y no guarda el mensaje. > Necesito su experiencia para decifrar los siguientes mensajes. Sera algo con > mi distro? Gracias por su atencion. Tony. > > ERROR: Date::Manip unable to determine TimeZone. > Date::Manip::Date_TimeZone called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 628 > Date::Manip::Date_Init() called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 746 > Date::Manip::ParseDateString('Wed, 2 Aug 2000 00:22:47 +1000') called at /usr/local/lib/perl5/site_perl/5.6.0/Date/Manip.pm line 1666 > Date::Manip::UnixDate('Wed, 2 Aug 2000 00:22:47 +1000', '%s') called at > /usr/lib/pronto/prontolib.pl line 227 > main::date_to_localdate('Wed, 2 Aug 2000 00:22:47 +1000') called at /usr/lib/pronto/prontolib.pl line 429 > main::save_message('DBI::db=HASH(0x862f0ac)', 'Return-Path: ------------------------------------------------------------------------ > Enviar e-mail a colocando en el cuerpo: > "UNSUBSCRIBE caracas-pm-list" para desuscribirse. > "INFO caracas-pm-list" para conocer las reglas de etiqueta. > ------------------------------------------------------------------------ > #################################################################### ## ## ## Cesar Anibal Castillo ## ## Email : anibal@ldc.usb.ve cumache@yahoo.com ## ## Cargo : Consultor-Analista ## ## Compa~nia: Computacion UNIXSupport ## ## Telefono Ofic.: 563-1503 , 564-4644. ## ## ## #################################################################### ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From tony at tony.tzo.com Wed Aug 2 09:32:35 2000 From: tony at tony.tzo.com (Tony Rodriguez) Date: Wed Aug 4 23:59:18 2004 Subject: [Q] ½ OFF-Topic. Acerca del cl iente de mail -> pronto. In-Reply-To: References: Message-ID: <00080210380900.28034@ns> > el problema es que tienes que setear tu variable TZ a GMT o crear el > archivo /etc/TIMEZONE con ese valor.( leete el archivo Manip.pm para ver > en donde mas busca el timezone) tambien sirve man Date::manip ( si lo > instalastes donde se debe ) Gracias, ya logre hacerlo funcionar... no con el /etc/TIMEZONE pero si editando el Manip.pm. Muchas Gracias. Ahora que estamos en este orden de ideas me gustaria preguntar algo que aun me intriga. Logro hacer funcionar el programa pero si y solo si en la opcion: Edit-Options->Ficha HTML la casilla de verificacion: "Don't use an HTML widget to display mail" esta activada. Si no es asi, el pronto muere miserablemente con tan solo intentar entrar a algun folder. El mensaje que recibo es: Usage: Gtk::HTML::begin(html, url) at /usr/bin/pronto-main line 2674 Alguna sugerencia. Gracias por todo. Tony. ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From vdaniel at trompo.com Wed Aug 2 01:59:55 2000 From: vdaniel at trompo.com (Daniel van Balen) Date: Wed Aug 4 23:59:18 2004 Subject: =?iso-8859-1?Q?=5BQ=5D_=BD_OFF-Topic=2E_Acerca_del_cl_iente_de_mail_-=3E?= =?iso-8859-1?Q?_pronto=2E?= In-Reply-To: <00080210380900.28034@ns>; from tony@tony.tzo.com on Wed, Aug 02, 2000 at 10:32:35AM -0400 References: <00080210380900.28034@ns> Message-ID: <20000802105955.F22779@vdaniel> > Edit-Options->Ficha HTML > la casilla de verificacion: > "Don't use an HTML widget to display mail" > esta activada. > > Si no es asi, el pronto muere miserablemente con tan solo intentar entrar a > algun folder. El mensaje que recibo es: > > Usage: Gtk::HTML::begin(html, url) at /usr/bin/pronto-main line 2674 > Suena a que no estan pasando los parametros que son al begin... revisa la linea 2674 de pronto-mail a ver como lo llaman. Podr?a ser un problema de la versi?n de Gtk::HTML que tienes instalado: mayor o menor al que usa la gente de prontomail. -spiff ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From cumache at yahoo.com Wed Aug 2 14:51:20 2000 From: cumache at yahoo.com (Cesar Castillo) Date: Wed Aug 4 23:59:18 2004 Subject: =?X-UNKNOWN?Q?Re=3A_=5BQ=5D_=BD_OFF-Topic=2E_Acerca_del_cl_?= =?X-UNKNOWN?Q?iente_de_mail_-=3E_pronto=2E?= In-Reply-To: <00080210380900.28034@ns> Message-ID: On Wed, 2 Aug 2000, Tony Rodriguez wrote: > > el problema es que tienes que setear tu variable TZ a GMT o crear el > > archivo /etc/TIMEZONE con ese valor.( leete el archivo Manip.pm para ver > > en donde mas busca el timezone) tambien sirve man Date::manip ( si lo > > instalastes donde se debe ) > > Gracias, ya logre hacerlo funcionar... no con el /etc/TIMEZONE pero si editando > el Manip.pm. Muchas Gracias. en el /etc/TIMEZONE debias colocar TZ=GMT., pero bueno ya te sirve :) ahora una pregunta: sabe alguien porque $date_ayer=Date_GetPrev($date,undef,0,$hora,undef,undef) no me devuelve el dia anterior? considerando que $date es el dia de hoy, $hora es la hora segun el man deberia funcionar, pero me devuelve el mismo dia lo que hago es: ... $date=localtime(time); ($day, $month, $num, $time, $year) = split(/\s+/,$date); ($hora,$minuto,$segundo)= split(/:/,$time); $date_ayer=Date_GetPrev($date,undef,0,$hora,undef,undef) ... la unica forma que logre resolverlo fue mandando como parametro el dia de la semana anterior, para calcular la fecha del dia de semana anterior ... $date=localtime(time); ($day, $month, $num, $time, $year) = split(/\s+/,$date); ($hora,$minuto,$segundo)= split(/:/,$time); $dia_semana=UnixDate($date,"%w")-1; $date_ayer=Date_GetPrev ($date,($dia_semana<1) ? 1 : $dia_semana,0, $hora,undef,undef); ... alguna idea? > > Ahora que estamos en este orden de ideas me gustaria preguntar algo que aun me > intriga. Logro hacer funcionar el programa pero si y solo si en la opcion: > > Edit-Options->Ficha HTML > la casilla de verificacion: > "Don't use an HTML widget to display mail" > esta activada. > > Si no es asi, el pronto muere miserablemente con tan solo intentar entrar a > algun folder. El mensaje que recibo es: > > Usage: Gtk::HTML::begin(html, url) at /usr/bin/pronto-main line 2674 concuerdo con daniel de que es un error de pasaje de parametros dewa mata!!!( hasta luego!!!) #################################################################### ## ## ## Cesar Anibal Castillo ## ## Email : anibal@ldc.usb.ve cumache@yahoo.com ## ## Cargo : Consultor-Analista ## ## Compa~nia: Computacion UNIXSupport ## ## Telefono Ofic.: 563-1503 , 564-4644. ## ## ## #################################################################### ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From emhn at telcel.net.ve Fri Aug 11 19:41:50 2000 From: emhn at telcel.net.ve (Ernesto Hernandez-Novich) Date: Wed Aug 4 23:59:18 2004 Subject: Cuantos Lunes Tiene el MES In-Reply-To: <017401c003d8$24ececa0$1f1d2cc8@soporte> References: <017401c003d8$24ececa0$1f1d2cc8@soporte> Message-ID: <00081121430403.16831@asterix> On Fri, 11 Aug 2000, Rafael Fonseca wrote: > Estoy desarrollando una aplicación en la que necesito calcular > el monto a deducir por Seguro Social, el mismo depende del número de > lunes que posea el MES en cuestion. > Deduccion =SalarioBAse * Nº de Lunes del Mes * %Deduc. > > MI pregunta es como realizo la rutina para obtener este Valor > (Nº de Lunes en Un Mes). ¿Existe algun método que me permita hacer esto?. a. Solución general elegante :-) El algoritmo general es sencillo para determinar cuantos D (lunes, martes, miércoles, etc.) tiene un mes: 1. Determinar qué día es el _primer_ D (lunes) del mes (X). 2. Determinar qué día es el _último_ D (lunes) del mes (Y). 3. Determinar cuántas semanas hay entre X e Y. 4. Sumar 1. No usar Perl para resolver este problema es dañino para la salud. El siguiente programa te muestra cuántos lunes hay en cada mes del año en curso. #!/usr/bin/perl use Date::Manip; $TZ = "GMT"; # La zona horaria es irrelevante pero necesaria. @m = qw( jan feb mar apr may jun jul aug sep oct nov dec ); foreach (@m) { $f = ParseDate("1st monday in $_"); $l = ParseDate("last monday in $_"); $s = (split /:/,DateCalc($f,$l,\$error,1))[2] + 1; # $error no se usa print "Hay $s lunes en $_\n"; } man Date::Manip para más detalles. Si tu instalación Perl no tiene el módulo Date::Manip, puedes bajar el módulo de CPAN; si no estás usando Perl, úsalo :-) b. Solución después de 4 segundos observando un calendario completo mientras se mastica una Oreo fudge. En un mes tiene que haber al menos cuatro lunes y no más de cinco (la demostración se deja de ejercicio al lector). Trato de determinar en cuál día caerá el quinto lunes del mes, y si no existe pues tiene cuatro. Para esta solución, uso un módulo diferente, Date::Calc (este seguro que lo tienes que bajar de CPAN). use Date::Calc qw(Nth_Weekday_of_Month_Year); foreach (1..12) { print "Hay "; if (Nth_Weekday_of_Month_Year(2000,$_,1,5)) { print "5"; } else { print "4"; } print " lunes en $_\n"; } La funcion Nth_Weekday_of_Month_Year($y,$m,$d,$n), retorna el $n-esimo día de la semana que sea $d (lunes es 1), en el mes $m (1 a 12) del año $y. Si el día _no_ existe, retorna una lista vacía (haciendo falso el valor booleano del if). Para los amigos de los benchmarks, esta segunda solución es 233 veces más rápida que la primera (según el módulo Benchmark de Perl, con 500 iteraciones sin los print). El módulo Date::Manip es 100% Perl, lo cual hace que su extrema flexibilidad sacrifique en velocidad; Date::Calc tiene rutinas escritas en C, con lo que es muy rápido, pero no es tan flexible en términos de operaciones. Si estás implementando tu solución en otro lenguaje, podrías examinar el código de los módulos y aprovechar los algoritmos presentes. No te lo recomiendo si quieres terminar el programa en lo que queda de siglo... los algoritmos para cálculo de fechas son muy interesantes (tanto que Donald Knuth les dedica _varios_ papers de investigación) pero muy complicados de implementar -- Ernesto Hernández-Novich - Running Linux 2.2.16 i686 - Unix: Live free or die! One thing is to be the best, and another is to be the most popular. -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d+(-) s+: a C+++$ UBLAVHIOSC++++$ P++++$ L+++$ E- W+ N++ ?o ?K w--- O- M- V PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G>++ e++ h+ r+ y++ -----END GEEK CODE BLOCK----- ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From emhn at telcel.net.ve Wed Aug 30 15:59:14 2000 From: emhn at telcel.net.ve (Ernesto Hernández-Novich) Date: Wed Aug 4 23:59:18 2004 Subject: Genoma Humano: Perl + Linux [P] [OFF-TOPIC] In-Reply-To: <006901c006c0$045f0f00$85efc4a1@padre> References: <006901c006c0$045f0f00$85efc4a1@padre> Message-ID: <00083017080306.11285@freakazoid> On Tue, 15 Aug 2000, you wrote: > Hace algunas semanas, Ernesto Hernández-Novich mencionó que se usó Perl en > el desarrollo del proyecto del Genoma Humano. ¿Tienen más información al > respecto? ¿Algún enlace que visitar? http://www.ddj.com/articles/1997/9718/9718e/9718e.htm -- Ernesto Hernández-Novich - Running Linux 2.2.16 i686 - Unix: Live free or die! -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d+(-) s+: a C+++$ UBLAVHIOSC++++$ P++++$ L+++$ E- W+ N++ ?o ?K w--- O- M- V PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G>++ e++ h+ r+ y++ -----END GEEK CODE BLOCK----- ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------ From emhn at telcel.net.ve Thu Aug 31 07:57:51 2000 From: emhn at telcel.net.ve (Ernesto Hernández-Novich) Date: Wed Aug 4 23:59:18 2004 Subject: Genoma Humano: Perl + Linux [P] [OFF-TOPIC] In-Reply-To: <00083017080306.11285@freakazoid> References: <006901c006c0$045f0f00$85efc4a1@padre> <00083017080306.11285@freakazoid> Message-ID: <0008310859120B.11285@freakazoid> On Tue, 15 Aug 2000, you wrote: > Hace algunas semanas, Ernesto Hernández-Novich mencionó que se usó Perl en > el desarrollo del proyecto del Genoma Humano. ¿Tienen más información al > respecto? ¿Algún enlace que visitar? Gracias a Delmiro Fernández por suministrar otro enlace con más información http://mathbio.nimr.mrc.ac.uk/ -- Ernesto Hernández-Novich - Running Linux 2.2.16 i686 - Unix: Live free or die! -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d+(-) s+: a C+++$ UBLAVHIOSC++++$ P++++$ L+++$ E- W+ N++ ?o ?K w--- O- M- V PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G>++ e++ h+ r+ y++ -----END GEEK CODE BLOCK----- ------------------------------------------------------------------------ Enviar e-mail a colocando en el cuerpo: "UNSUBSCRIBE caracas-pm-list" para desuscribirse. "INFO caracas-pm-list" para conocer las reglas de etiqueta. ------------------------------------------------------------------------