From banjo79 at gmail.com Fri Jul 13 13:01:22 2007 From: banjo79 at gmail.com (Carlo Filosa) Date: Fri, 13 Jul 2007 22:01:22 +0200 Subject: [Roma.pm] Programmazione porta parallela Message-ID: <6d8605e70707131301y39843337la0e586b8a4d4b0b6@mail.gmail.com> Ciao a tutti, sto iniziando la programmazione in perl e mi interessa sapere se: ? possibile programmare la porta parallela per leggere/scrivere i dati per applicazioni di automazione industriale??? ho cercato nei vari manuali ma non sono riuscito nell'impresa. Vi ringrazio tutti -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070713/f9e3d7c6/attachment.html From boxlinux at gmail.com Fri Jul 13 15:22:57 2007 From: boxlinux at gmail.com (alex at boxlinux) Date: Fri, 13 Jul 2007 23:22:57 +0100 Subject: [Roma.pm] Programmazione porta parallela In-Reply-To: <6d8605e70707131301y39843337la0e586b8a4d4b0b6@mail.gmail.com> References: <6d8605e70707131301y39843337la0e586b8a4d4b0b6@mail.gmail.com> Message-ID: <75030ba0707131522s202b692dvd6b2763aec643c3b@mail.gmail.com> http://linux.dd.com.au/quest/os-perl/parallelport/ Il 13/07/07, Carlo Filosa ha scritto: > Ciao a tutti, > > sto iniziando la programmazione in perl e mi interessa sapere se: > > ? possibile programmare la porta parallela per leggere/scrivere i dati per > applicazioni di automazione industriale??? > > ho cercato nei vari manuali ma non sono riuscito nell'impresa. > > Vi ringrazio tutti > > > > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > -- ---------------------------------------------------------------- Alessio Porcacchia Debian Consultant www.debian.org/consultants/porcacchia mobile +353873259473 --------------------------------------------------------------------------------------------------------------------------------------------------------- Hanlon's Razor :?Never attribute to malice that which can be adequately explained by stupidity.? ---------------------------------------------------------------------------------------------------------------------------------------------------------- From hunternet at alice.it Mon Jul 16 09:04:40 2007 From: hunternet at alice.it (Fabrizio Cardarello) Date: Mon, 16 Jul 2007 18:04:40 +0200 Subject: [Roma.pm] xml + tag name Message-ID: <469B9718.5040706@alice.it> Salve sto cercado un modo per ricavare i nomi dei tag utilizzando XML:Simple, ma non ne vengo a capo. Avete qualche altra soluzione/modulo da propormi!? Ciao Fabrizio From oha at oha.it Tue Jul 17 02:27:40 2007 From: oha at oha.it (Oha) Date: Tue, 17 Jul 2007 11:27:40 +0200 Subject: [Roma.pm] xml + tag name Message-ID: <200707170927.l6H9ReG9027635@vivaldi32.register.it> >Salve sto cercado un modo per ricavare i nomi dei tag utilizzando >XML:Simple, ma non ne vengo a capo. se ricordo bene, ritorna una struttura di hash di hash. in perl, un hash puo' esser usato come array quini se $ref contiene il nodo che ti interessa dovresti ottenere il nome del nodo come $ref[0] vado a memoria, non ho il modulo installato dove sono ora ciao Oha From dada at perl.it Tue Jul 17 03:49:46 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 17 Jul 2007 11:49:46 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <200707170927.l6H9ReG9027635@vivaldi32.register.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> Message-ID: <469C9ECA.1090307@perl.it> Oha ha scritto: > se ricordo bene, ritorna una struttura di hash di hash. > in perl, un hash puo' esser usato come array > > quini se $ref contiene il nodo che ti interessa > dovresti ottenere il nome del nodo come $ref[0] > > vado a memoria, non ho il modulo installato dove sono ora > stai fuori come uno zerbino, oha. un hash NON pu? essere usato come array e $ref[0] ? tutt'altra cosa. per ricavare i tag usando XML::Simple puoi basarti sull'esempio che trovi qua sotto. cheers, Aldo use XML::Simple; my $data; { undef $/; $data = ; } my $x = XMLin( $data, KeepRoot => 1 ); walktree(0, $x); sub walktree { my($level, $node) = @_; foreach my $tag (keys %$node) { print " " x $level, "$tag\n"; walktree($level+1, $node->{$tag}) if ref($node->{$tag}) eq 'HASH'; } } __DATA__ From d.ortolani at ecosystemspa.com Tue Jul 17 04:07:20 2007 From: d.ortolani at ecosystemspa.com (Ortolani Dante) Date: Tue, 17 Jul 2007 12:07:20 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <469C9ECA.1090307@perl.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> Message-ID: <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> mi sa molto di HOP WAY! LucaS > per ricavare i tag usando > XML::Simple puoi basarti sull'esempio che trovi qua sotto. > > cheers, Aldo > > use XML::Simple; > my $data; { undef $/; $data = ; } > my $x = XMLin( $data, KeepRoot => 1 ); > > walktree(0, $x); > > sub walktree { my($level, $node) = @_; foreach my $tag (keys %$node) > { print " " x $level, "$tag\n"; walktree($level+1, $node->{$tag}) if > ref($node->{$tag}) eq 'HASH'; } } > > __DATA__ > > > > > > Luca Dante Ortolani ------------------------------------- Direzione Amministrativa e Commerciale Ecosystem S.p.A. From hunternet at alice.it Tue Jul 17 04:18:28 2007 From: hunternet at alice.it (Fabrizio Cardarello) Date: Tue, 17 Jul 2007 13:18:28 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <469B9718.5040706@alice.it> References: <469B9718.5040706@alice.it> Message-ID: <469CA584.9060807@alice.it> grazie ho risolto cosi questa mattina keys %{$data_xml} e lo faccio ricorsivo in modo che mi ricavo tutte le chiavi che sono poi i tag xml. Ciao Fabrizio From flavio at polettix.it Tue Jul 17 05:16:18 2007 From: flavio at polettix.it (Flavio Poletti) Date: Tue, 17 Jul 2007 14:16:18 +0200 (CEST) Subject: [Roma.pm] xml + tag name In-Reply-To: <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> Message-ID: <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> Uhm... perch?? Non capisco quale sarebbe la non-HOP way, in questo caso. Ciao, Flavio. > mi sa molto di HOP WAY! > LucaS > >> per ricavare i tag usando >> XML::Simple puoi basarti sull'esempio che trovi qua sotto. >> >> cheers, Aldo >> >> use XML::Simple; >> my $data; { undef $/; $data = ; } >> my $x = XMLin( $data, KeepRoot => 1 ); >> >> walktree(0, $x); >> >> sub walktree { my($level, $node) = @_; foreach my $tag (keys %$node) >> { print " " x $level, "$tag\n"; walktree($level+1, $node->{$tag}) if >> ref($node->{$tag}) eq 'HASH'; } } >> >> __DATA__ >> >> >> >> >> >> > > > Luca Dante Ortolani > ------------------------------------- > Direzione Amministrativa e Commerciale > Ecosystem S.p.A. > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > From dada at perl.it Tue Jul 17 06:34:40 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 17 Jul 2007 14:34:40 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> Message-ID: <469CC570.8080709@perl.it> Flavio Poletti ha scritto: > Uhm... perch?? Non capisco quale sarebbe la non-HOP way, in questo caso. > se mi permettete una sterile quanto oziosa (quanto bonaria :-) polemica, pare che oggi, nei salotti buoni del Perl, se non parli di calcolo lambda o Best Practices sei assolutamente out. per me, che sono notoriamente vecchio e demod?, la P sta (soprattutto) per "pratico", non (solo) per "pippementali" o "punizionedivina". non ce l'ho ovviamente (solo) con LucaS, al quale sardonicamente rispondo che "la ricorsione fa funzionale e non impegna", n? con i poveri lambdacammellari di Pugs, n? tantomento con quel povero cristo di Conway. ce l'ho con tutti contemporaneamente :-) cheers, Aldo From ema_zep at libero.it Mon Jul 23 03:48:45 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 12:48:45 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> Message-ID: <46A4878D.5020403@libero.it> Flavio Poletti wrote: > Uhm... perch?? Non capisco quale sarebbe la non-HOP way, in questo caso. Un'implementazione puramente iterativa(*). Molto piu` inelegante dell'implementazione ricorsiva di Aldo, molto piu` out nei salotti buoni (non solo quelli del Perl), ma anche molto piu` efficiente, visto che Perl non ha la tail recursion optimization (purtroppo :-( (*) Riporto la prima che mi viene in mente. Sarebbe possibile anche una variante basata sul costrutto goto &func, piu` compatta pero` meno efficiente. use strict; use warnings; use XML::Simple; my $data; { undef $/; $data = ; } my $root = XMLin( $data, KeepRoot => 1 ); my @siblings; push @siblings, [ 0, $root, [keys %$root] ]; while ( @siblings ) { my ($level, $node, $remaining_tags) = @{ pop @siblings }; while ( my $tag = shift @{ $remaining_tags } ) { print "\t" x $level, "$tag\n"; if ( ref( my $child = $node->{$tag} ) ) { push @siblings, [ $level , $node , $remaining_tags ]; push @siblings, [ $level + 1, $child, [keys %$child] ]; last } } } __DATA__ From flavio at polettix.it Mon Jul 23 04:16:56 2007 From: flavio at polettix.it (Flavio Poletti) Date: Mon, 23 Jul 2007 13:16:56 +0200 (CEST) Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4878D.5020403@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> Message-ID: <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> Uhm, non sono cos? sicuro che HOP voglia dire ricorsione, e non-HOP voglia dire iterazione. Nonostante la ricorsione sia un tema centrale, viene comunque trattato il tema della trasformazione di una soluzione ricorsiva in una iterativa con il "metodo dell'agenda" (se non ricordo male), che sostanzialmente cerca di implementare quelle parti dello stack che servono effettivamente all ricorsione. Mi sarebbe sembrata una soluzione molto pi? "HOP" se si fosse basata sugli iteratori, ad esempio. Per questo la domanda :) Ciao, Flavio. > Flavio Poletti wrote: > >> Uhm... perch?? Non capisco quale sarebbe la non-HOP way, in questo caso. > > Un'implementazione puramente iterativa(*). > > Molto piu` inelegante dell'implementazione ricorsiva di Aldo, molto piu` > out nei salotti buoni (non solo quelli del Perl), ma anche molto piu` > efficiente, visto che Perl non ha la tail recursion optimization > (purtroppo :-( > > (*) > Riporto la prima che mi viene in mente. > Sarebbe possibile anche una variante basata sul costrutto goto &func, > piu` compatta pero` meno efficiente. > > use strict; > use warnings; > > use XML::Simple; > > my $data; > { undef $/; $data = ; } > > my $root = XMLin( $data, KeepRoot => 1 ); > > my @siblings; > push @siblings, [ 0, $root, [keys %$root] ]; > > while ( @siblings ) { > my ($level, $node, $remaining_tags) = @{ pop @siblings }; > while ( my $tag = shift @{ $remaining_tags } ) { > print "\t" x $level, "$tag\n"; > if ( ref( my $child = $node->{$tag} ) ) { > push @siblings, [ $level , $node , $remaining_tags ]; > push @siblings, [ $level + 1, $child, [keys %$child] ]; > last > } > } > } > __DATA__ > > > > > > > > > > > > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > From ema_zep at libero.it Mon Jul 23 04:32:27 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 13:32:27 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> Message-ID: <46A491CB.9040104@libero.it> Flavio Poletti wrote: > Uhm, non sono cos? sicuro che HOP voglia dire ricorsione, e non-HOP voglia > dire iterazione. Sono d'accordo anch'io. Per? diciamo che una soluzione puramente iterativa e senza closure di sorta, come quella proposta, ? sicuramente non-HOP. Altrimenti oltre che la tua domanda non ho capito neanche HOP (niente di piu` probabile ;-) Ciao, Emanuele. From dada at perl.it Mon Jul 23 05:56:55 2007 From: dada at perl.it (Aldo Calpini) Date: Mon, 23 Jul 2007 13:56:55 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A491CB.9040104@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> Message-ID: <46A4A597.5010907@perl.it> Emanuele Zeppieri ha scritto: > Altrimenti oltre che la tua domanda non ho capito neanche HOP (niente di piu` probabile ;-) > HOP sta per "Higher Order Perl", un libro di Dominus che presenta tecniche di programmazione di "ordine pi? elevato", per lo pi? prese in prestito dalla programmazione funzionale, applicate al Perl. sono molto "HOP" le closure, gli iteratori, il currying, in generale il trattare oggetti di tipo codice come first-class objects, la programmazione senza side effects (funzioni "pure"), il polimorfismo e l'utilizzo smodato della ricorsivit?. poi probabilmente qualcuno te ne potr? dire ancora di pi?, non avendo io nemmeno letto il libro (anzi, a proposito, LucaS, la prossima volta che ci vediamo me lo presti? :-) cheers, Aldo From ema_zep at libero.it Mon Jul 23 05:39:54 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 14:39:54 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4A597.5010907@perl.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4A597.5010907@perl.it> Message-ID: <46A4A19A.5050004@libero.it> Aldo Calpini wrote: > Emanuele Zeppieri ha scritto: >> Altrimenti oltre che la tua domanda non ho capito neanche HOP (niente di piu` probabile ;-) >> > > HOP sta per "Higher Order Perl", un libro di Dominus che presenta > tecniche di programmazione di "ordine pi? elevato", per lo pi? prese in > prestito dalla programmazione funzionale, applicate al Perl. S?, appunto, tratta essenzialmente di funzioni di ordine superiore (higher-order functions, da cui il nome del libro), per cui no-closure => no-HOP... ... Ma solo adesso ho capito (forse) l'obiezione iniziale di Flavio: intendeva dire a Luca "Questa ? gi? un'implementazione non-HOP, altrimenti quale sarebbe un'implementazione non-HOP?". Ho capito bene? (Flavio) Tutto sommato stavolta mi ci sono voluti soltanto 3 messaggi (sempre che abbia finalmente capito), qualche volta va anche peggio. Ciao, Emanuele. From flavio at polettix.it Mon Jul 23 06:12:20 2007 From: flavio at polettix.it (Flavio Poletti) Date: Mon, 23 Jul 2007 15:12:20 +0200 (CEST) Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4A19A.5050004@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4A597.5010907@perl.it> <46A4A19A.5050004@libero.it> Message-ID: <20873.129.192.97.5.1185196340.squirrel@upmail.polettix.it> > ... Ma solo adesso ho capito (forse) l'obiezione iniziale di Flavio: > intendeva dire a Luca "Questa ? gi? un'implementazione non-HOP, > altrimenti quale sarebbe un'implementazione non-HOP?". > Ho capito bene? (Flavio) S?, per? vorrei precisare che ho evitato questa crudezza di linguaggio per non farmi picchiare da [LucaS] alla prossima cena :D Ciao, Flavio. From mazzaro at ieee.org Mon Jul 23 08:03:26 2007 From: mazzaro at ieee.org (Silvio Mazzaro) Date: Mon, 23 Jul 2007 17:03:26 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A491CB.9040104@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> Message-ID: <46A4C33E.1020906@ieee.org> Emanuele Zeppieri ha scritto: > Per? diciamo che una soluzione puramente iterativa e senza closure di > sorta, come quella proposta, ? sicuramente non-HOP. > Il Perl rimane comunque Higher Order (per definizione, lo e' anche il C): http://en.wikipedia.org/wiki/Higher-order_function Indipendentemente dal tipo di soluzione utilizzata.... e' una proprieta' del linguaggio. A presto, Silvio From ema_zep at libero.it Mon Jul 23 09:24:32 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 18:24:32 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4C33E.1020906@ieee.org> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> Message-ID: <46A4D640.5020705@libero.it> Silvio Mazzaro wrote: > Emanuele Zeppieri ha scritto: >> Per? diciamo che una soluzione puramente iterativa e senza closure di >> sorta, come quella proposta, ? sicuramente non-HOP. >> > > Il Perl rimane comunque Higher Order (per definizione, lo e' anche il C): > > http://en.wikipedia.org/wiki/Higher-order_function > > Indipendentemente dal tipo di soluzione utilizzata.... e' una proprieta' > del linguaggio. Francamente non capisco la pertinenza di quest'osservazione... Nessuno, n? io n? altri, in questo thread (ma io non l'ho mai fatto neanche altrove) ha mai affermato che in Perl non si potessero implementare funzioni di ordine superiore (visto che per giunta c'hanno scritto, appunto, un intero libro ;-) Quello di cui si parlava, era se una particolare soluzione fosse del tipo di quelle suggerite in HOP (il libro di Dominus) oppure se fosse di tipo "tradizionale" (cio? senza l'uso di funzioni di ordine superiore). Se gli dai una letta (non ? semplicissimo, ma ? *molto* istruttivo) capisci quali sono le soluzioni HOP-like: http://hop.perl.plover.com/ Altrimenti c'? sempre l'ottimo articolo di Luca: http://www.perl.it/documenti/articoli/2005/09/iterators.html Ciao, Emanuele. From mazzaro at ieee.org Mon Jul 23 09:54:10 2007 From: mazzaro at ieee.org (Silvio Mazzaro) Date: Mon, 23 Jul 2007 18:54:10 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4D640.5020705@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> Message-ID: <46A4DD32.3040803@ieee.org> Emanuele Zeppieri ha scritto: > Francamente non capisco la pertinenza di quest'osservazione... > Semplicemente ho letto il Thread (interamente), notando (non riferendomi necessariamente a te) un po di confusione nella definizione di "Higher Order".. ed ho colto l'occasione per fare qualche precisazione (appoggiandomi a Wikipedia). IMHO parlare di HOP non ha senso, il Perl e' sempre HO. L'uso di mappe di funzioni in una certa soluzione non cambia le caratteristiche del linguaggio. Secondo me (ovviamente se ne puo' discutere) e' scorretto parlare di soluzioni HOP e non HOP. > Quello di cui si parlava, era se una particolare soluzione fosse del > tipo di quelle suggerite in HOP (il libro di Dominus) oppure se fosse di > tipo "tradizionale" (cio? senza l'uso di funzioni di ordine superiore). > E' per questo che sono intervenuto.... (ammetto di essere stato un po pedante) :-) Ma, mi ripeto, il non uso di Higher Order Functions, non implica che il linguaggio non sia Higher Order (in senso categorico). Qualcuno poi ha mischiato un po le carte riferendosi (secondo me impropriamente) alla ricorsione ed al lambda calcolo.... > Se gli dai una letta (non ? semplicissimo, ma ? *molto* istruttivo) > capisci quali sono le soluzioni HOP-like: > http://hop.perl.plover.com/ > > Conosco bene il libro.... per chi invece fosse interessato alla definizione (un po piu' seria) di linguaggio di ordine superiore (e non solo) consiglio l'intramontabile: http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=8094 Un Salutone, Silvio From ema_zep at libero.it Mon Jul 23 10:19:19 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 19:19:19 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4DD32.3040803@ieee.org> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> <46A4DD32.3040803@ieee.org> Message-ID: <46A4E317.4060207@libero.it> Silvio Mazzaro wrote: > Semplicemente ho letto il Thread (interamente), notando (non riferendomi > necessariamente a te) un po di confusione nella definizione di "Higher > Order".. ed ho colto l'occasione > per fare qualche precisazione (appoggiandomi a Wikipedia). > > IMHO parlare di HOP non ha senso, il Perl e' sempre HO. > > L'uso di mappe di funzioni in una certa soluzione non cambia le > caratteristiche del linguaggio. E chi avrebbe mai detto il contrario, di grazia?! :-) > Secondo me (ovviamente se ne puo' discutere) e' scorretto parlare di > soluzioni HOP e non HOP. E perch? mai?! Si tratta di banali locuzioni convenzionali: con "soluzioni HOP" per brevit? intendiamo "le soluzioni suggerite da Dominus nel suo libro" e con "non-HOP" intendiamo "le soluzioni che non fanno uso di funzioni di ordine superiore". Come vedi "HOP" e "non-HOP" ? molto pi? sintetico (e noi siamo perlisti o caporali? ;-) > E' per questo che sono intervenuto.... (ammetto di essere stato un po > pedante) :-) Ma si figuri ;-) Piuttosto, sugli algoritmi proposti (e su quelli ventilati) ci sarebbe molto da dire invece... Ciao, Emanuele. From mazzaro at ieee.org Mon Jul 23 10:42:27 2007 From: mazzaro at ieee.org (Silvio Mazzaro) Date: Mon, 23 Jul 2007 19:42:27 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4E317.4060207@libero.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> <46A4DD32.3040803@ieee.org> <46A4E317.4060207@libero.it> Message-ID: <46A4E883.3090104@ieee.org> Emanuele Zeppieri ha scritto: >> Secondo me (ovviamente se ne puo' discutere) e' scorretto parlare di >> soluzioni HOP e non HOP. >> > > E perch? mai?! > Te lo spiego tra un attimo.... :-) > Si tratta di banali locuzioni convenzionali: con "soluzioni HOP" per > brevit? intendiamo "le soluzioni suggerite da Dominus nel suo libro" e > con "non-HOP" intendiamo "le soluzioni che non fanno uso di funzioni di > ordine superiore". > Ecco, ci sei cascato pure te.... :-) Il libro che citate in continuazione, sfrutta le caratteristiche Higher Order del Perl "solo in alcuni punti". Potrei dirti che (come accade per altri linguaggi) mediamente sfrutta molto di piu' le proprieta' di ricorsivita' (per le quali oltre ad essere HO il Perl e' anche REC), ma che non hanno nulla a che vedere con mappe funzionali. HOP (ossia IL LIBRO) e' IMHO un "calderone" di argomenti che puo' facilmente confondere chi non ha studiato la teoria dei linguaggi: ecco quindi che (come puo' succedere) ci si ritrova ad identificare le soluzioni di Dominus come "Higher Order", cosa secondo me piuttosto errata e sgradevole :-). Personalmente, leggere un codice REC e sentirlo definire HO a causa del libro citato mi fa venire i brividi... ;-) Un Salutone, Silvio From ema_zep at libero.it Mon Jul 23 11:09:20 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Mon, 23 Jul 2007 20:09:20 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4E883.3090104@ieee.org> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> <46A4DD32.3040803@ieee.org> <46A4E317.4060207@libero.it> <46A4E883.3090104@ieee.org> Message-ID: <46A4EED0.9000107@libero.it> Silvio Mazzaro wrote: > Emanuele Zeppieri ha scritto: >>> Secondo me (ovviamente se ne puo' discutere) e' scorretto parlare di >>> soluzioni HOP e non HOP. >>> >> E perch? mai?! >> > > Te lo spiego tra un attimo.... :-) > >> Si tratta di banali locuzioni convenzionali: con "soluzioni HOP" per >> brevit? intendiamo "le soluzioni suggerite da Dominus nel suo libro" e >> con "non-HOP" intendiamo "le soluzioni che non fanno uso di funzioni di >> ordine superiore". >> > > Ecco, ci sei cascato pure te.... :-) Come un allocco. Meno male che ce chi me lo spiega ;-) Un saluto, Emanuele. From d.ortolani at ecosystemspa.com Tue Jul 24 02:08:26 2007 From: d.ortolani at ecosystemspa.com (Ortolani Dante) Date: Tue, 24 Jul 2007 10:08:26 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> Message-ID: <1185264506Ak0F7PHZcb7528knEnq8DpUk8mqkKX0ZfUVDoJMc@ecosystemspa.com> ...la verit? ? che i salotti buoni del Perl non sono poi tanto lontani da questa lista, visto che da buoni perlisti (domanda: ma pure gli altri fanno cos????) ci si spulciano e pesano sempre le parole. Pensare che (chi me l'avesse detto!) ho scritto quel "HOP WAY" cos?, con molta leggerezza, semplicemente perch? walktree() di dada assomigliava ad uno degli esempi di Dominus che mi sembra si chiamasse walkdir(). Personalmente non avendo fatto studi appropriati, so poco di HO o di REC, ma di certo conosco bene il valore di HOP di Dominus che ha cambiato notevolemente il mio modo di sviluppare. Ci voleva il caldo ad accendere un bel flame! Saluti a tutti LucaS Luca Dante Ortolani ------------------------------------- Direzione Amministrativa e Commerciale Ecosystem S.p.A. From ema_zep at libero.it Tue Jul 24 02:41:53 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 24 Jul 2007 11:41:53 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <1185264506Ak0F7PHZcb7528knEnq8DpUk8mqkKX0ZfUVDoJMc@ecosystemspa.com> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <1185264506Ak0F7PHZcb7528knEnq8DpUk8mqkKX0ZfUVDoJMc@ecosystemspa.com> Message-ID: <46A5C961.6040308@libero.it> Ortolani Dante wrote: > Ci voleva il caldo ad accendere un bel flame! Anche l'astinenza da porchetta ha fatto la sua parte ;-) Ciao, Emanuele. From dada at perl.it Tue Jul 24 03:45:28 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 24 Jul 2007 11:45:28 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A4DD32.3040803@ieee.org> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> <46A4DD32.3040803@ieee.org> Message-ID: <46A5D848.2040007@perl.it> dice bene LucaS, non sono solo gli ettari di vegetazione a risentire del clima torrido. pare che per? la Protezione Civile non abbia un apposito programma per prevenire gli incendi sulle mailing list :-) quindi, essendo io particolarmente incivile, prover? a gettare un po' di benzina sull'argomento. ? ovvio che tutto nasce sicuramente dalla leggerezza con cui LucaS ha definito il mio snippet "HOP way". rimprovero per? a Silvio altrettanta leggerezza nel non capire che, appunto, non si stava necessariamente dicendo "la ricorsione ? higher order", unita ad eguale pesantezza nel voler sottolineare che "il Perl ? sempre HO". tutti sappiamo che HO (come anche ricorsivit?, closure, currying etc) ? una propriet? del linguaggio, ma penso neanche Silvio possa negare che ci sono tecniche, metodologie, "pattern" di programmazione che ne fanno uso (a volte giustamente, altre volte in maniera forzata) e altre che non lo fanno (a volte giustamente, altre volte in maniera forzata - come l'esempio di Emanuele :-). pertanto, la frase "? scorretto parlare di soluzioni HOP e non HOP" non mi convince affatto. il libro di Dominus (che, ripeto, io _non_ ho letto!) presenta una serie di "pattern" che fanno uso appunto di HO, ricorsivit?, closure, currying e chi pi? ne ha pi? ne metta. immagino dia anche indicazioni su cosa usare e cosa non usare, quando, e perch?. a questo punto sarebbe, come sostiene Silvio, da rimproverare anche la leggerezza di Dominus nell'aver intitolato "Higher Order Perl" un libro che non presenta _soltanto_ pattern di "higher order programming". ma non credo sia questo il caso. si ricordi che il titolo originale del libro era "Perl Advanced Techniques Handbook", e ritengo che il titolo finale sia stato scelto pi? per rinforzare un "pun" e per motivi estetici (tipo l'acronimo HOP) che perch? Dominus non sia in grado di distinguere HO da REC o perch? il suo studio della teoria dei linguaggi non sia serio. poi sono d'accordo che sia facile cadere in becere identificazioni del tipo "? ricorsivo, ? funzionale", e che questo possa far benire i brividi. ma i giudizi "tranchant" di Silvio, che sembra dare per scontato che ci siamo cascati tutti, mi danno ugualmente i brividi (e co' sto caldo...). per finire in bellezza, beccatevi sta versione sguaiatamente HOPpica del "modo per ricavare i nomi dei tag utilizzando XML::Simple" (ormai Fabrizio Cardarello si sar? pentito di averlo chiesto :-): cheers, Aldo use XML::Simple; my $data; { undef $/; $data = ; } my $x = XMLin( $data, KeepRoot => 1 ); sub isa_tree { my($arg) = @_; return ref($arg) eq 'HASH'; } sub walktree(&$\%) { my($func, $depth, $tree) = @_; while(my($k, $v) = each %$tree) { walk($func, $depth, $k, $v); } } sub walk(&$$$) { my($func, $depth, $k, $v) = @_; $func->($depth, $k); walktree(\&$func, $depth+1, %$v) if isa_tree($v); } walktree { print " " x $_[0], "$_[1]\n" } 0, %$x; __DATA__ From oha at oha.it Tue Jul 24 03:09:48 2007 From: oha at oha.it (Oha) Date: Tue, 24 Jul 2007 12:09:48 +0200 Subject: [Roma.pm] xml + tag name Message-ID: <200707241009.l6OA9mqS002472@vivaldi35.register.it> >efficiente, visto che Perl non ha la tail recursion optimization a quanto ricordo, la tail recursion e' applicabile solo se la ricorsione e' loop-invariant se ricordo bene, quindi, in questo caso la ricorsione avviene piu' volte per ogni stato dello stack, e non sarebbe dunque possibile fare tail recursion. la soluzione di usare un loop (push su una pila di di cose "da fare") a sua volta potrebbe non esser efficiente (per grandi strutture dati, la pila potre diventare enorme) una soluzione e' farsi un vero e proprio stack applicativo, mi capito' di scrivere codice del genere in C usando puntatori a struct. senza usare OOP un esempio in perl e' quanto segue: $ref = XMLin(''); my @stack = ([$ref, [keys %$ref]]); my $sp = 0; while($sp>=0) { my $r = $stack[$sp][0]; my $next = shift @{$stack[$sp][1]}; if($next) { print "child $next...n"; $sp++; my $r2 = $r->{$next}; $stack[$sp] = [$r2, [keys %$r2]]; } else { $sp--; } } ogni elemento di @stack contiene lo "stato" dello stack in quel punto. la "shift" simula un ciclo prelevando il prossimo elemento nella lista di cose da fare, e $sp (come potra' suggerire il nome) e' lo stack pointer. Oha From mazzaro at ieee.org Tue Jul 24 03:48:07 2007 From: mazzaro at ieee.org (Silvio Mazzaro) Date: Tue, 24 Jul 2007 12:48:07 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5D848.2040007@perl.it> References: <200707170927.l6H9ReG9027635@vivaldi32.register.it> <469C9ECA.1090307@perl.it> <1184666840ZCTkDmMniNR42cY0CBy94JqbwQ85gE45vepwxzmU@ecosystemspa.com> <41402.129.192.97.5.1184674578.squirrel@upmail.polettix.it> <46A4878D.5020403@libero.it> <9230.129.192.97.5.1185189416.squirrel@upmail.polettix.it> <46A491CB.9040104@libero.it> <46A4C33E.1020906@ieee.org> <46A4D640.5020705@libero.it> <46A4DD32.3040803@ieee.org> <46A5D848.2040007@perl.it> Message-ID: <46A5D8E7.7050206@ieee.org> Aldo Calpini ha scritto: > quindi, essendo io particolarmente incivile, prover? a gettare un po' di > benzina sull'argomento. > Ahahha... fai bene... :-) > pertanto, la frase "? scorretto parlare di soluzioni HOP e non HOP" non > mi convince affatto. > Perche' sei entrato anche te nel circolo vizioso generato dal titolo del libro... :-) Ovvio che per soluzioni HOP e non HOP mi riferivo a quest'ultimo (come ho gia' scritto qualche mail fa) che, mi ripeto, e' un "calderone" di "pattern" (come li definisci tu) e non solo di HO functions... da li la confusione. Rimane il fatto (e qui possiamo flammare all'infinito :-) ) che fare uso di soluzioni con HO functions, tail recursion e chi piu' ne ha piu' ne metta... etichettandole come soluzioni HOP o, se volete, "alla Dominus"... e' piuttosto scorretto... se mi parli di "currying" riferendoti a Strachey o allo stesso Haskell Curry mi sta pure bene... ma se per parlare di "recursions, callbacks, iterators, HO functions...." mi tiri fuori Dominus ed il suo libro... usando (mi ripeto) HOP (nel senso del libro, non nel "vero" significato di funzione di ordine superiore) come definizione per una soluzione ricorsiva in Perl... beh... oltre ai brividi mi cascano pure le braccia... :-) Comunque leggendo la tua Mail credo che ci siamo capiti.... > il libro di Dominus (che, ripeto, io _non_ ho letto!) Allora dovresti leggerlo.... se no che Flame vuoi portare avanti.... :-) Un Salutone, Silvio From ema_zep at libero.it Tue Jul 24 04:11:57 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 24 Jul 2007 13:11:57 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <200707241009.l6OA9mqS002472@vivaldi35.register.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> Message-ID: <46A5DE7D.5070608@libero.it> Oha wrote: >> efficiente, visto che Perl non ha la tail recursion optimization > > a quanto ricordo, la tail recursion e' applicabile solo se la ricorsione e' loop-invariant Ricordi bene. > se ricordo bene, quindi, in questo caso la ricorsione avviene piu' > volte per ogni stato dello stack, e non sarebbe dunque possibile fare > tail recursion. In realt? sarebbe possibile, se avessimo per ogni nodo un puntatore al padre (per? certamente quella mostrata da Aldo non ? tail-recursion, quindi non ? ottimizzabile in automatico). Ora non credo che nella struttura di dati tirata fuori da XML::Simple ci sia il puntatore al padre, per? potremmo aggiungerlo con una visita in ampiezza (iterativa) molto veloce. Solo che se utilizziamo la tail-recursion per evitare l'occupazione di memoria (lineare nel numero di nodi interni) sullo stack, e poi risprechiamo altrettanta memoria (asintoticamente) per il puntatore al padre, allora ? un cazzo e tutt'uno, per usare un inglesismo. Quindi percorrere questa strada non ha in effetti molto senso (bench? in linea teorica sia possibile). > la soluzione di usare un loop (push su una pila di di cose "da fare") > a sua volta potrebbe non esser efficiente (per grandi strutture dati, > la pila potre diventare enorme) Qui invece davvero non ti capisco. Se la pila diventa enorme lo diventa anche nella tua soluzione ed anche nella soluzione ricorsiva, pari pari, non si scappa ;-) L'occupazione di memoria sullo stack ? la stessa in tutte le soluzioni: una soluzione iterativa, in assenza di puntatori al padre, deve gestirsi *per forza* uno stack, e la soluzione ricorsiva gestisce anch'essa n? pi? n? meno uno stack (sia pure "dietro le quinte"), necessario all'interprete perl per allocare le chiamate ricorsive. > una soluzione e' farsi un vero e proprio stack applicativo, > mi capito' di scrivere codice del genere in C usando puntatori a struct. > senza usare OOP un esempio in perl e' quanto segue: Che cosa vuol dire uno stack applicativo?! :-) In realt? stai utilizzando uno stack (pressoch?) identico a quello che ho utilizzato io e a quello necessario a qualsiasi altra soluzione iterativa, e altrettanto identico (almeno come dimensioni asintotiche) a quello utilizzato dall'interprete perl per allocare le chiamate ricorsive. > $ref = XMLin(''); > > my @stack = ([$ref, [keys %$ref]]); > > my $sp = 0; > while($sp>=0) > { > my $r = $stack[$sp][0]; > my $next = shift @{$stack[$sp][1]}; > if($next) > { > print "child $next...n"; > $sp++; > my $r2 = $r->{$next}; > $stack[$sp] = [$r2, [keys %$r2]]; > } > else > { > $sp--; > } > } > > ogni elemento di @stack contiene lo "stato" dello stack in quel punto. > >la "shift" simula un ciclo prelevando il prossimo elemento nella lista di cose da fare, > >e $sp (come potra' suggerire il nome) e' lo stack pointer. Non so che vantaggi possa avere quest'implementazione e non so neanche con quale altra soluzione la stai confrontando, n? su quale piano (velocit?, occupazione di memoria?) Peraltro la pop() ? leggermente pi? veloce della shift(), per cui, a meno di vincoli sull'ordine di visita dei nodi, ti conviene usare quella per la gestione dinamica dello stack. Per quanto mi riguarda, la soluzione pi? veloce in assoluto che sono riuscito a trovare, puramente iterativa, ? la seguente: my @nodes; sub iterative { @nodes = @_; foreach my $node ( @nodes ) { foreach my $tag (keys %$node) { print "$tag\n"; push @nodes, $node->{$tag} if ref $node->{$tag} } } } itarative( XMLin( $data, KeepRoot => 1 ) ); E' di uno sfolgorante 8% pi? veloce di quella ricorsiva di Aldo (alla faccia delle sue "forzature" ;-) poi non rischia di incorrere nel warning di deep-recursion di perl, ed ? sguaiatamente non-HOPpica. Lo stack non viene mai deallocato, ma in realt? non serve perch? ? il limite superiore di occupazione di memoria che conta, e quello, come gi? detto, ? invariante per qualsiasi soluzione. La visita ? diversa (? in ampiezza) e non c'? indentazione nella stampa, ma fornisce l'elenco dei tag come originariamente richiesto. In realt? la ricorsione del Perl ? molto pi? veloce di quanto ricordassi, e in questo caso ? piuttosto difficile fare di meglio, infatti la mia soluzione rispetto a quella di Aldo contiene in definitiva solo microottimizzazioni, cercando in realt? di emulare il pi? fedelmente possibile la ricorsione di perl. Se qualcuno sa fare di meglio si accomodi (use Benchmark) ;-) P.S. Il tuo client web-mail, perch? non lo butti? Ciao, Emanuele. From dada at perl.it Tue Jul 24 05:47:23 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 24 Jul 2007 13:47:23 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5DE7D.5070608@libero.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> Message-ID: <46A5F4DB.2080208@perl.it> Emanuele Zeppieri ha scritto: > E' di uno sfolgorante 8% pi? veloce di quella ricorsiva di Aldo (alla > faccia delle sue "forzature" ;-) poi non rischia di incorrere nel > warning di deep-recursion di perl, ed ? sguaiatamente non-HOPpica. > ecco, CI SEI CASCATO! :-) tu mi definisci tout-court l'utilizzo del pattern pi? computazionalmente efficiente come una "non-forzatura"? nel caso di strutture innestate gerarchicamente, il pattern _naturale_ ? l'utilizzo di una funzione ricorsiva. poi uno pu? avere i suoi motivi per non utilizzare la ricorsione (ignoranza, traumi infantili, dogmi religiosi, quel che sia). ma se il linguaggio ti mette a disposizione lo strumento e non lo usi per fare quel lavoro l?, ? - in termini assoluti - una forzatura. ben diverso ? il discorso se il codice (o il contesto nel quale il codice deve girare) ha dei requisiti prestazionali, o di scalabilit?, stringenti o desiderabili che siano. ben venga sapere che la tua soluzione ? 8% pi? veloce e non "bomba" con pi? di un centinaio di livelli di profondit?: se devo mettere su un servizio che processa N-mila file XML, di grandezza arbitraria, e in parallelo, probabilmente la user?. ma senza saper n? leggere n? scrivere, trovo che la soluzione meno forzata (pi? intuitiva, pi? facile da leggere, pi? manutenibile) sia quella ricorsiva che ho postato io qualche centinaio di ettari di terreno bruciato fa :-) cheers, Aldo From ema_zep at libero.it Tue Jul 24 05:06:56 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 24 Jul 2007 14:06:56 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5F4DB.2080208@perl.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> <46A5F4DB.2080208@perl.it> Message-ID: <46A5EB60.2020501@libero.it> Aldo Calpini wrote: > Emanuele Zeppieri ha scritto: >> E' di uno sfolgorante 8% pi? veloce di quella ricorsiva di Aldo (alla >> faccia delle sue "forzature" ;-) poi non rischia di incorrere nel >> warning di deep-recursion di perl, ed ? sguaiatamente non-HOPpica. >> > > ecco, CI SEI CASCATO! :-) > > tu mi definisci tout-court l'utilizzo del pattern pi? computazionalmente > efficiente come una "non-forzatura"? > > nel caso di strutture innestate gerarchicamente, il pattern _naturale_ ? > l'utilizzo di una funzione ricorsiva. poi uno pu? avere i suoi motivi > per non utilizzare la ricorsione (ignoranza, traumi infantili, dogmi > religiosi, quel che sia). ma se il linguaggio ti mette a disposizione lo > strumento e non lo usi per fare quel lavoro l?, ? - in termini assoluti > - una forzatura. > > ben diverso ? il discorso se il codice (o il contesto nel quale il > codice deve girare) ha dei requisiti prestazionali, o di scalabilit?, > stringenti o desiderabili che siano. ben venga sapere che la tua > soluzione ? 8% pi? veloce e non "bomba" con pi? di un centinaio di > livelli di profondit?: se devo mettere su un servizio che processa > N-mila file XML, di grandezza arbitraria, e in parallelo, probabilmente > la user?. > > ma senza saper n? leggere n? scrivere, trovo che la soluzione meno > forzata (pi? intuitiva, pi? facile da leggere, pi? manutenibile) sia > quella ricorsiva che ho postato io qualche centinaio di ettari di > terreno bruciato fa :-) Il perl lo padroneggi, non c'? che dire, ma con l'email hai ancora parecchie difficolt?, e alquanto inaspettate, devo dire ;-) Proviamo a rileggere quello che ho scritto nel mio *primo* messaggio, a incendio non ancora divampato: Emanuele Zeppieri ha scritto: > Un'implementazione puramente iterativa(*). > > Molto piu` inelegante dell'implementazione ricorsiva di Aldo, molto piu` > ^^^^^^^^^^ > out nei salotti buoni... Allora, dov'? che avrei mai detto che la soluzione iterativa ? pi? intuitiva di quella ricorsiva?! E, quando ho parlato dell'8% di speed-up, tentando (inutilmente) con l'aggiunta di uno smile di rimarcarne la risibilit?, non si capiva che scherzavo? E non ? bastato neanche il fatto di averla definita "sguaiatamente non-HOPpica"? Allora, chi sarebbe quello che c'? cascato? :-) Ciao, Emanuele. Ciao, Emanuele. From dada at perl.it Tue Jul 24 06:20:38 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 24 Jul 2007 14:20:38 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5EB60.2020501@libero.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> <46A5F4DB.2080208@perl.it> <46A5EB60.2020501@libero.it> Message-ID: <46A5FCA6.3080008@perl.it> Emanuele Zeppieri ha scritto: > Allora, chi sarebbe quello che c'? cascato? :-) > ...like an allock :-) ok, lo ammetto, stavo disperatamente tentando di rianimare la flammella che rischiava di spegnersi. ma pensavo, visto che siamo tutti qua a discettare dell'HIP e dell'HOP (battuta rubata ad oha), e dato che so per certo che anche panet ? nei paraggi, perch? non andiamo tutti quanti a prenderci a schiaffi ricorsivamente davanti a una bella biretta (tanto offre panet)? io settimana prossima sono a disposizione, prima mi risulta ostico. cheers, Aldo From d.ortolani at ecosystemspa.com Tue Jul 24 06:39:13 2007 From: d.ortolani at ecosystemspa.com (Ortolani Dante) Date: Tue, 24 Jul 2007 14:39:13 +0100 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5FCA6.3080008@perl.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> <46A5F4DB.2080208@perl.it> <46A5EB60.2020501@libero.it> <46A5FCA6.3080008@perl.it> Message-ID: <1185280753ky5Of9XB0xoK1WDvHguQBsLHvzf3QX9MwYsB4KiU@ecosystemspa.com> > ok, lo ammetto, stavo disperatamente tentando di rianimare la > flammella... piromane/perlomane che non sei altro! > io settimana prossima sono a disposizione, prima mi risulta ostico. comandi! LucaS Luca Dante Ortolani ------------------------------------- Direzione Amministrativa e Commerciale Ecosystem S.p.A. From ema_zep at libero.it Tue Jul 24 06:15:05 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 24 Jul 2007 15:15:05 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5FCA6.3080008@perl.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> <46A5F4DB.2080208@perl.it> <46A5EB60.2020501@libero.it> <46A5FCA6.3080008@perl.it> Message-ID: <46A5FB59.4020708@libero.it> Aldo Calpini wrote: > ok, lo ammetto, stavo disperatamente tentando di rianimare la flammella > che rischiava di spegnersi.ma pensavo, visto che siamo tutti qua a > discettare dell'HIP e dell'HOP (battuta rubata ad oha), e dato che so > per certo che anche panet ? nei paraggi, perch? non andiamo tutti quanti > a prenderci a schiaffi ricorsivamente davanti a una bella biretta (tanto > offre panet)? > io settimana prossima sono a disposizione, prima mi risulta ostico. Questo s? che ? parlare :-) Fino alla prima settimana di agosto ci sono pi? o meno sempre, disposto a spostamenti anche di medio raggio (Ariccia), automunito, motomunito, max. seriet? no perditempo. From oha at oha.it Wed Jul 25 02:33:24 2007 From: oha at oha.it (Oha) Date: Wed, 25 Jul 2007 11:33:24 +0200 Subject: [Roma.pm] xml + tag name Message-ID: <200707250933.l6P9XO9N003026@vivaldi32.register.it> >per certo che anche panet ? nei paraggi, perch? non andiamo tutti quanti >a prenderci a schiaffi ricorsivamente davanti a una bella biretta (tanto >offre panet)? ma, ma... secondo me panet e' condizionato! (non soffrendo il caldo, evita di entrare nel merito) cmq dannazione, posso partecipare alla birra anche da remoto? Oha From balestra at cesmail.net Wed Jul 25 13:02:52 2007 From: balestra at cesmail.net (Marco Balestra) Date: Wed, 25 Jul 2007 22:02:52 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <46A5FCA6.3080008@perl.it> References: <200707241009.l6OA9mqS002472@vivaldi35.register.it> <46A5DE7D.5070608@libero.it> <46A5F4DB.2080208@perl.it> <46A5EB60.2020501@libero.it> <46A5FCA6.3080008@perl.it> Message-ID: On 24/lug/07, at 15:20, Aldo Calpini wrote: > che rischiava di spegnersi. ma pensavo, visto che siamo tutti qua a > discettare dell'HIP e dell'HOP *siete*... io in pratica skippo :-D > (battuta rubata ad oha), e dato che so > per certo che anche panet ? nei paraggi Questa settimana e la prossima sono sempre qui, poi Marsa Alam aspettami! :-))) > a prenderci a schiaffi ricorsivamente davanti a una bella biretta > (tanto > offre panet)? Quando vuoi, sai che non mi tiro mai indietro se c'? da offrire schiaffi ricorsivi! :-DDD > io settimana prossima sono a disposizione, prima mi risulta ostico. Ok -- Marco Balestra IT consultant balestra at cesmail.net From balestra at cesmail.net Wed Jul 25 13:04:07 2007 From: balestra at cesmail.net (Marco Balestra) Date: Wed, 25 Jul 2007 22:04:07 +0200 Subject: [Roma.pm] xml + tag name In-Reply-To: <200707250933.l6P9XO9N003026@vivaldi32.register.it> References: <200707250933.l6P9XO9N003026@vivaldi32.register.it> Message-ID: <8CD2F265-CF16-4508-8F05-5899BF1D955D@cesmail.net> On 25/lug/07, at 11:33, Oha wrote: > ma, ma... secondo me panet e' condizionato! (non soffrendo il > caldo, evita di entrare nel merito) condizionato ? vero, ma queste giornate di lavoro mi fanno sudare lo stesso... Ah, come mi manca lavorare invece di passare il tempo tra meeting, telefonate, mail e videoconferenze :-((( -- Marco Balestra IT consultant balestra at cesmail.net From dada at perl.it Mon Jul 30 08:12:09 2007 From: dada at perl.it (Aldo Calpini) Date: Mon, 30 Jul 2007 16:12:09 +0100 Subject: [Roma.pm] CALL FOR BEER Message-ID: <46ADFFC9.9010304@perl.it> aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. domani entro le 18 deliberiamo data ed ora. il luogo, a meno di unanime consenso verso altra destinazione, ? quello proposto da panet ("la tana del luppolo", via dei gordiani 22). marted? 31 luglio 2007 dada mercoled? 01 agosto 2007 dada gioved? 02 agosto 2007 dada venerd? 03 agosto 2007 cheers, Aldo From flavio at polettix.it Mon Jul 30 07:24:42 2007 From: flavio at polettix.it (Flavio Poletti) Date: Mon, 30 Jul 2007 16:24:42 +0200 (CEST) Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46ADFFC9.9010304@perl.it> References: <46ADFFC9.9010304@perl.it> Message-ID: <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> > aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. > domani entro le 18 deliberiamo data ed ora. il luogo, a meno di unanime > consenso verso altra destinazione, ? quello proposto da panet ("la tana > del luppolo", via dei gordiani 22). marted? 31 luglio 2007 dada, polettix mercoled? 01 agosto 2007 dada, polettix gioved? 02 agosto 2007 dada venerd? 03 agosto 2007 > cheers, > Aldo > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > From boxlinux at gmail.com Mon Jul 30 07:19:42 2007 From: boxlinux at gmail.com (alex at boxlinux) Date: Mon, 30 Jul 2007 15:19:42 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46ADFFC9.9010304@perl.it> References: <46ADFFC9.9010304@perl.it> Message-ID: <75030ba0707300719q6eeeb236k7c40e567a5083cdf@mail.gmail.com> Il 30/07/07, Aldo Calpini ha scritto: > > aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. > domani entro le 18 deliberiamo data ed ora. il luogo, a meno di unanime > consenso verso altra destinazione, ? quello proposto da panet ("la tana > del luppolo", via dei gordiani 22). > > marted? 31 luglio 2007 > dada > > mercoled? 01 agosto 2007 > dada > > gioved? 02 agosto 2007 > dada > > venerd? 03 agosto 2007 > > > cheers, > Aldo > _______________________________________________ > Roma mailing list > Roma at pm.org > http://mail.pm.org/mailman/listinfo/roma > non ci saro' per motivi di distanza comunque vi saro' vicino e andro a bere alla salute vostra in qualche pub di dublino ciao AP -- ---------------------------------------------------------------- Alessio Porcacchia Debian Consultant www.debian.org/consultants/porcacchia mobile +353873259473 --------------------------------------------------------------------------------------------------------------------------------------------------------- Hanlon's Razor :?Never attribute to malice that which can be adequately explained by stupidity.? ---------------------------------------------------------------------------------------------------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070730/8e15e199/attachment.html From dubya at sub-culture.ch Mon Jul 30 07:47:10 2007 From: dubya at sub-culture.ch (Christoph Wernli) Date: Mon, 30 Jul 2007 16:47:10 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> Message-ID: <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> > aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. > domani entro le 18 deliberiamo data ed ora. il luogo, a meno di unanime > consenso verso altra destinazione, ? quello proposto da panet ("la tana > del luppolo", via dei gordiani 22). marted? 31 luglio 2007 dada, polettix mercoled? 01 agosto 2007 dada, polettix, cris gioved? 02 agosto 2007 dada, cris venerd? 03 agosto 2007 Salute! -c -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070730/59c13442/attachment.html From malattia at linux.it Mon Jul 30 10:43:25 2007 From: malattia at linux.it (Mattia Dongili) Date: Tue, 31 Jul 2007 02:43:25 +0900 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <75030ba0707300719q6eeeb236k7c40e567a5083cdf@mail.gmail.com> References: <46ADFFC9.9010304@perl.it> <75030ba0707300719q6eeeb236k7c40e567a5083cdf@mail.gmail.com> Message-ID: <20070730174325.GB16232@inferi.kami.home> On Mon, Jul 30, 2007 at 03:19:42PM +0100, alex at boxlinux wrote: > Il 30/07/07, Aldo Calpini ha scritto: > > > > aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. > > domani entro le 18 deliberiamo data ed ora. il luogo, a meno di unanime > > consenso verso altra destinazione, ? quello proposto da panet ("la tana > > del luppolo", via dei gordiani 22). ... > non ci saro' per motivi di distanza > comunque vi saro' vicino e andro a bere alla salute vostra in qualche pub di > dublino e io da tokyo allora :) peccato che i mongers tokiesi siano poco attivi... -- mattia :wq! From balestra at cesmail.net Mon Jul 30 13:56:32 2007 From: balestra at cesmail.net (Marco Balestra) Date: Mon, 30 Jul 2007 22:56:32 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> Message-ID: <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> On 30/lug/07, at 16:47, Christoph Wernli wrote: > marted? 31 luglio 2007 > dada, polettix, panet > > mercoled? 01 agosto 2007 > dada, polettix, cris (, forse panet) > > gioved? 02 agosto 2007 > dada, cris > > venerd? 03 agosto 2007 -- Marco Balestra IT consultant balestra at cesmail.net -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070730/e26cf33b/attachment.html From boxlinux at gmail.com Mon Jul 30 14:39:04 2007 From: boxlinux at gmail.com (alex at boxlinux) Date: Mon, 30 Jul 2007 22:39:04 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <20070730174325.GB16232@inferi.kami.home> References: <46ADFFC9.9010304@perl.it> <75030ba0707300719q6eeeb236k7c40e567a5083cdf@mail.gmail.com> <20070730174325.GB16232@inferi.kami.home> Message-ID: <75030ba0707301439x2b4ee90h272f96d9a1e638f0@mail.gmail.com> Il 30/07/07, Mattia Dongili ha scritto: > > On Mon, Jul 30, 2007 at 03:19:42PM +0100, alex at boxlinux wrote: > > Il 30/07/07, Aldo Calpini ha scritto: > > > > > > aggiungete il vostro nome sotto il giorno (o i giorni) che preferite. > > > domani entro le 18 deliberiamo data ed ora. il luogo, a meno di > unanime > > > consenso verso altra destinazione, ? quello proposto da panet ("la > tana > > > del luppolo", via dei gordiani 22). > ... > > non ci saro' per motivi di distanza > > comunque vi saro' vicino e andro a bere alla salute vostra in qualche > pub di > > dublino > > e io da tokyo allora :) > peccato che i mongers tokiesi siano poco attivi... ma che e' ! O_o una diaspora di tecnici italiani in giro per il mondo? -- ---------------------------------------------------------------- Alessio Porcacchia Debian Consultant www.debian.org/consultants/porcacchia mobile +353873259473 --------------------------------------------------------------------------------------------------------------------------------------------------------- Hanlon's Razor :?Never attribute to malice that which can be adequately explained by stupidity.? ---------------------------------------------------------------------------------------------------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/roma/attachments/20070730/3e207aa4/attachment.html From ema_zep at libero.it Mon Jul 30 17:04:03 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 31 Jul 2007 02:04:03 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> Message-ID: <46AE7C73.9060100@libero.it> >> marted? 31 luglio 2007 >> dada, polettix, panet, emazep >> >> mercoled? 01 agosto 2007 >> dada, polettix, cris (, forse panet), emazep >> >> gioved? 02 agosto 2007 >> dada, cris, emazep >> >> venerd? 03 agosto 2007 > From dada at perl.it Tue Jul 31 06:36:02 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 31 Jul 2007 14:36:02 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46AE7C73.9060100@libero.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> Message-ID: <46AF3AC2.5080003@perl.it> errata corrige!!! marted? 31 luglio 2007 polettix, panet, emazep mercoled? 01 agosto 2007 dada, polettix, cris (, forse panet), emazep gioved? 02 agosto 2007 dada, cris, emazep (venerd? lo scancelliamo, tanto n'c'? nessuno) cheers, Aldo From balestra at cesmail.net Tue Jul 31 08:18:08 2007 From: balestra at cesmail.net (Marco Balestra) Date: Tue, 31 Jul 2007 17:18:08 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46AF3AC2.5080003@perl.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> Message-ID: On 31/lug/07, at 15:36, Aldo Calpini wrote: > marted? 31 luglio 2007 > polettix, panet, emazep > > mercoled? 01 agosto 2007 > dada, polettix, cris (, forse panet), emazep Allora, che si fa? Sia stasera che domani? Forza che stasera ho la moglie fuori per cena, ne approfitto :-) -- Marco Balestra IT consultant balestra at cesmail.net From dada at perl.it Tue Jul 31 09:46:45 2007 From: dada at perl.it (Aldo Calpini) Date: Tue, 31 Jul 2007 17:46:45 +0100 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> Message-ID: <46AF6775.7060708@perl.it> Marco Balestra ha scritto: > Allora, che si fa? Sia stasera che domani? > > Forza che stasera ho la moglie fuori per cena, ne approfitto :-) io stasera sono fuori a caccia di chelonidi (? una storia lunga e penosa, un giorno ve la racconter?). visto che ci sono tutti gli altri, compreso LucaS, fatevene una alla mia salute. cheers, Aldo From ema_zep at libero.it Tue Jul 31 08:57:51 2007 From: ema_zep at libero.it (Emanuele Zeppieri) Date: Tue, 31 Jul 2007 17:57:51 +0200 Subject: [Roma.pm] CALL FOR BEER In-Reply-To: <46AF6775.7060708@perl.it> References: <46ADFFC9.9010304@perl.it> <54618.129.192.97.5.1185805482.squirrel@upmail.polettix.it> <9b16401b0707300747m74cdbdc1n8bb4dd14c8909d7f@mail.gmail.com> <806BBA2A-E107-46AA-B95A-CA9FD74D2744@cesmail.net> <46AE7C73.9060100@libero.it> <46AF3AC2.5080003@perl.it> <46AF6775.7060708@perl.it> Message-ID: <46AF5BFF.1090006@libero.it> Aldo Calpini wrote: > Marco Balestra ha scritto: >> Allora, che si fa? Sia stasera che domani? >> >> Forza che stasera ho la moglie fuori per cena, ne approfitto :-) > > io stasera sono fuori a caccia di chelonidi (? una storia lunga e > penosa, un giorno ve la racconter?). visto che ci sono tutti gli altri, > compreso LucaS, fatevene una alla mia salute. Non sia mai, facciamo domani che vicino alla birra ci mettiamo pure una zuppetta di chelonidi (slurp!)