From e9427749 at stud4.tuwien.ac.at Sat May 3 14:43:48 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Sat, 03 May 2008 23:43:48 +0200
Subject: [Vienna-pm] Escapen von Shellparametern
In-Reply-To: <200804300835.58663.daxim@cpan.org>
References: <4815D266.5010004@foo.at>
<48161510.6080903@stud4.tuwien.ac.at> <48175686.20201@stud4.tuwien.ac.at>
<200804300835.58663.daxim@cpan.org>
Message-ID: <481CDC94.8050004@stud4.tuwien.ac.at>
Hi, ?!
Lars D?????? ??? ?:
> Josef Schmid ?:
>> IO::Plumbing scheint auch recht nett zu sein.
>> Und IPC::Run
> Und String::ShellQuote.
Psssst!!
Man erz?hlt doch den Leuten ? das wonach sie fragen,
sondern - wenn man nett ist - das was sie brauchen! ?
Und Proc::SafePipe vom selben Autor ist doch viel passender.
Achja, eins meiner Lieblingsmodule kann das eigentlich auch,
und ich habe es glatt vergessen zu erw?hnen:
? P?e?r?l?6?:?:?S?l?u?r?p?
z.B.:
use Perl6::Slurp;
my $content = slurp '-|', 'tail', -20, $filename;
?, Josef
From gg at urxn.at Sat May 3 16:09:39 2008
From: gg at urxn.at (Gerhard Gonter)
Date: Sun, 04 May 2008 01:09:39 +0200
Subject: [Vienna-pm] TechSocialMeet am 5.5.2008
In-Reply-To: <20080419071415.GA9200@d610.chello.at>
References: <20080419071415.GA9200@d610.chello.at>
Message-ID: <481CF0B3.5030404@urxn.at>
Thomas Klausner wrote:
> Das naechste monatliche Meeting findet am 5.5., 19:00 statt.
> (Gerhard, kannst du den Raum bitte wieder reservieren?)
Der Raum ist reserviert.
mfg, GG
From michael.kroell at uibk.ac.at Sun May 4 13:45:45 2008
From: michael.kroell at uibk.ac.at (=?ISO-8859-1?Q?Michael_Kr=F6ll?=)
Date: Sun, 04 May 2008 22:45:45 +0200
Subject: [Vienna-pm] TechSocialMeet am 5.5.2008
In-Reply-To: <481CF0B3.5030404@urxn.at>
References: <20080419071415.GA9200@d610.chello.at> <481CF0B3.5030404@urxn.at>
Message-ID: <481E2079.6020706@uibk.ac.at>
Gerhard Gonter wrote:
> Thomas Klausner wrote:
>
>> Das naechste monatliche Meeting findet am 5.5., 19:00 statt.
>> (Gerhard, kannst du den Raum bitte wieder reservieren?)
>
> Der Raum ist reserviert.
F?r 20:30 ist im Tin-Tan, Florianigasse (1 oder 2) auf vienna.pm reserviert.
lg,
michael
--
063A F25E B064 A98F A479 1690 78CD D023 5E2A 6688
http://zis.uibk.ac.at/.m/uibk.ac.at_pgp_pubkey.asc
From jozef at kutej.net Mon May 5 00:36:04 2008
From: jozef at kutej.net (Jozef Kutej)
Date: Mon, 05 May 2008 09:36:04 +0200
Subject: [Vienna-pm] TechSocialMeet am 5.5.2008
In-Reply-To: <4816E889.1090802@uibk.ac.at>
References: <20080419071415.GA9200@d610.chello.at>
<4816E889.1090802@uibk.ac.at>
Message-ID: <481EB8E4.4010701@kutej.net>
Michael Kr?ll wrote:
> F?r eine potentielle Reservierung dort - wer kommt denn aller?
>
Ich komme auch.
Jozef.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20080505/400b1e05/attachment.bin
From gooly at gmx.at Mon May 5 04:34:30 2008
From: gooly at gmx.at (Calli)
Date: Mon, 5 May 2008 13:34:30 +0200
Subject: [Vienna-pm] Nachtrag zu Escapen von Shellparametern: Fehler oder
Feature?
In-Reply-To: <48161510.6080903@stud4.tuwien.ac.at>
References: <4815D266.5010004@foo.at> <48160841.1070607@foo.at>
<48161510.6080903@stud4.tuwien.ac.at>
Message-ID: <200805051334.30779.gooly@gmx.at>
Am Montag, 28. April 2008 schrieb Josef Schmid:
> Stefan Weiss schrieb:
> ich glaub ab 5.6 (oder ab 5.8?)
> my $result=do {
> open(my $fh,'-|','faxjob','--from',$from,'--faxnum',$num,...) or
> die; local $/; <$fh>
> };
>
hab das mal versucht mit `curl -I` - hmm:
also aus der Schleife 1 (s.u) liefert die Zeile
open(my $fh,'-|','curl', '-I',$u )
auf der Konsole einen unerw?nschten overhead:
% Total % Received % Xferd Average Speed ..
...
0 20891 0 0 ...
Die Gleiche kommt bei Schleife 2 (s.u.) mit Zeile:
my $size = $1
if ( `curl -I $u` =~ /.+?Length:\D*?(\d+)\D*/g );
Mit einem 2>/dev/null kann ich den verhindern, aber nur bei version 2
bzw. Schleife 3:
my $size = $1
if ( `curl -I $u 2>/dev/null`
=~ /.+?Length:\D*?(\d+)\D*/ );
Hier
open(my $fh,'-|','curl', '-I',$u,'2>/dev/null/' ) or die "uups";
klappt das nicht - warum?
# die Schleife 1
foreach my $u ( @urls ) {
my $size = do {# , '|','grep','Length'
open(my $fh,'-|','curl', '-I',$u ) or die "uups";
local $/; local $_ = <$fh>;
/.+?Length:\D*?(\d+)\D*/;
$1;
};
print "$u => $size b\n";
last;
} else {
print "\n$u => "
}
}
# Schleife 2
foreach my $u ( @urls ) {
my $size = $1
if ( `curl -I $u` =~ /.+?Length:\D*?(\d+)\D*/g );
print "$u => $size b\n";
}
# Schleife 3
foreach my $u ( @urls ) {
my $size = $1
if ( `curl -I $u 2>/dev/null`
=~ /.+?Length:\D*?(\d+)\D*/ );
print "$u => $size b\n";
}
From lt at toetsch.at Mon May 5 04:51:31 2008
From: lt at toetsch.at (Leopold Toetsch)
Date: Mon, 5 May 2008 13:51:31 +0200
Subject: [Vienna-pm] Nachtrag zu Escapen von Shellparametern: Fehler
oder Feature?
In-Reply-To: <200805051334.30779.gooly@gmx.at>
References: <4815D266.5010004@foo.at> <48161510.6080903@stud4.tuwien.ac.at>
<200805051334.30779.gooly@gmx.at>
Message-ID: <200805051351.31110.lt@toetsch.at>
Am Montag, 5. Mai 2008 13:34 schrieb Calli:
[ stderr output ]
> Mit einem 2>/dev/null kann ich den verhindern, aber nur bei version 2
> bzw. Schleife 3:
> ?my $size = $1
> ? ? ? ? ? ? ? if ( `curl -I $u 2>/dev/null`
> ? ? ? ? ? ? ? ? ? ? ?=~ /.+?Length:\D*?(\d+)\D*/ );
>
> Hier
> ? ? ?open(my $fh,'-|','curl', '-I',$u,'2>/dev/null/' ) or die "uups";
> klappt das nicht - warum?
In der ersten Variante wird eine Subshell erzeugt, in der 2. nicht. S. auch:
$ perldoc perlipc
/Safe Pipe Opens
leo
From e9427749 at stud4.tuwien.ac.at Mon May 5 05:30:24 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Mon, 05 May 2008 14:30:24 +0200
Subject: [Vienna-pm]
=?utf-8?q?Zus=C3=A4tzlicher_Nachtrag_zu_Escapen_von_S?=
=?utf-8?q?hellparametern=3A_Fehler_oder_Feature=3F?=
In-Reply-To: <200805051351.31110.lt@toetsch.at>
References: <4815D266.5010004@foo.at>
<48161510.6080903@stud4.tuwien.ac.at> <200805051334.30779.gooly@gmx.at>
<200805051351.31110.lt@toetsch.at>
Message-ID: <481EFDE0.8010106@stud4.tuwien.ac.at>
Leopold Toetsch schrieb:
> Am Montag, 5. Mai 2008 13:34 schrieb Calli:
>
> [ stderr output ]
>
>> Mit einem 2>/dev/null kann ich den verhindern, aber nur bei version 2
>> bzw. Schleife 3:
>> my $size = $1
>> if ( `curl -I $u 2>/dev/null`
>> =~ /.+?Length:\D*?(\d+)\D*/ );
>>
>> Hier
>> open(my $fh,'-|','curl', '-I',$u,'2>/dev/null/' ) or die "uups";
>> klappt das nicht - warum?
>
> In der ersten Variante wird eine Subshell erzeugt, in der 2. nicht. S. auch:
>
> $ perldoc perlipc
>
> /Safe Pipe Opens
1.) Es gibt eine Menge von CPAN-Modulen f?r das saugen von Webseiten.
Ich glaub sogar einiges in den Core-Modulen.
Also ohne curl.
2.) n?chster L?sungsansatz: curl kennt die Option --silent
3.) Die Standard-Dateideskriptoren werden an den Kindprozess vererbt.
also nach dem "do {" ein "local *STDERR=IO::File('>','/dev/null');"
einf?gen, sollte auch helfen.
pfiateng,
Josef
From gooly at gmx.at Mon May 5 06:55:16 2008
From: gooly at gmx.at (Calli)
Date: Mon, 5 May 2008 15:55:16 +0200
Subject: [Vienna-pm]
=?utf-8?q?Zus=C3=A4tzlicher_Nachtrag_zu_Escapen_von_S?=
=?utf-8?q?hellparametern=3A_Fehler_oder_Feature=3F?=
In-Reply-To: <481EFDE0.8010106@stud4.tuwien.ac.at>
References: <4815D266.5010004@foo.at> <200805051351.31110.lt@toetsch.at>
<481EFDE0.8010106@stud4.tuwien.ac.at>
Message-ID: <200805051555.16938.gooly@gmx.at>
Am Montag, 5. Mai 2008 schrieb Josef Schmid:
> Leopold Toetsch schrieb:
> > Am Montag, 5. Mai 2008 13:34 schrieb Calli:
> >
> > [ stderr output ]
> >
> >> Mit einem 2>/dev/null kann ich den verhindern, aber nur bei
> >> version 2 bzw. Schleife 3:
> >> my $size = $1
> >> if ( `curl -I $u 2>/dev/null`
> >> =~ /.+?Length:\D*?(\d+)\D*/ );
> >>
> >> Hier
> >> open(my $fh,'-|','curl', '-I',$u,'2>/dev/null/' ) or die
> >> "uups"; klappt das nicht - warum?
> >
> > In der ersten Variante wird eine Subshell erzeugt, in der 2. nicht.
> > S. auch:
> >
> > $ perldoc perlipc
> >
> > /Safe Pipe Opens
>
> 1.) Es gibt eine Menge von CPAN-Modulen f?r das saugen von Webseiten.
> Ich glaub sogar einiges in den Core-Modulen.
> Also ohne curl.
ja aber auch nach (ein bi?chen) cpan-eln, hab ich in den abgefragten
headers keine File-Size gefunden - und curl ist ganz einfach :)
> 2.) n?chster L?sungsansatz: curl kennt die Option --silent
ok, das hatt ich in man ?berlesen, das geht.
> 3.) Die Standard-Dateideskriptoren werden an den Kindprozess vererbt.
> also nach dem "do {" ein "local
> *STDERR=IO::File('>','/dev/null');" einf?gen, sollte auch helfen.
das wird dann immer umst?dlicher..
Frage zu den backticks, bzw system und exec: welches 'schl?sseloch' f?r
Unerw?nschte mit Unerw?nschtem ?ffen die auf welche Weise eigentlich?
Oder anders gefragt, wann und wo w?rde es damit gef?hrlich werden?
Danke Calli
From hjp-vienna-pm-list at hjp.at Mon May 5 07:31:37 2008
From: hjp-vienna-pm-list at hjp.at (Peter J. Holzer)
Date: Mon, 5 May 2008 16:31:37 +0200
Subject: [Vienna-pm]
=?iso-8859-1?q?Zus=E4tzlicher_Nachtrag_zu_Escapen_von?=
=?iso-8859-1?q?_Shellparametern=3A_Fehler_oder_Feature=3F?=
In-Reply-To: <200805051555.16938.gooly@gmx.at>
References: <4815D266.5010004@foo.at> <200805051351.31110.lt@toetsch.at>
<481EFDE0.8010106@stud4.tuwien.ac.at>
<200805051555.16938.gooly@gmx.at>
Message-ID: <20080505143137.GC5922@hjp.at>
On 2008-05-05 15:55:16 +0200, Calli wrote:
> Frage zu den backticks, bzw system und exec: welches 'schl?sseloch' f?r
> Unerw?nschte mit Unerw?nschtem ?ffen die auf welche Weise eigentlich?
> Oder anders gefragt, wann und wo w?rde es damit gef?hrlich werden?
Stell Dir vor, das Script, das den URL checkt, ist ein CGI-Script (oder
mod_perl, oder suid, oder ...) und fragt den Benutzer nach dem URL. Der
Benutzer gibt ein:
http://www.example.net; rm -rf /
hp
--
_ | Peter J. Holzer | It took a genius to create [TeX],
|_|_) | Sysadmin WSR | and it takes a genius to maintain it.
| | | hjp at hjp.at | That's not engineering, that's art.
__/ | http://www.hjp.at/ | -- David Kastrup in comp.text.tex
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20080505/4c3f46c8/attachment.bin
From rgiersig at cpan.org Mon May 5 07:41:46 2008
From: rgiersig at cpan.org (Roland Giersig)
Date: Mon, 05 May 2008 16:41:46 +0200
Subject: [Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?
In-Reply-To: <20080430153148.GB5315@mama.devc.at>
References: <20080429171104.GB16597@mama.devc.at>
<20080429202713.GB24242@d610.chello.at>
<20080430035004.GA28390@mama.devc.at>
<20080430062023.GD24242@d610.chello.at>
<20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org>
<20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org>
<20080430152133.GA5315@mama.devc.at>
<20080430153148.GB5315@mama.devc.at>
Message-ID: <481F1CAA.7080003@cpan.org>
Mein Beileid, wenn das dein Job ist, f?r .NET eine Umsetzung zu finden...
Das gr??te Problem scheint zu sein, dass die Listen-Operatoren in Perl
rechts-nach-links funktionieren und .NET OO-m??ig links-nach-rechts,
also verkettete Methodenaufrufe. Aber das kann man nachbilden:
@cleverlies = from(@ListOfObjects)
->where({$_->score() > 85})
->select({$_->matrikelnr()});
from() baut ein Objekt aus den Argumenten und die Methoden f?hren dann
die Operationen durch, wobei sie Code-Refs als Parameter nehmen. Damit
l?sst sich alles nachbilden, da .NET eine normale OO-Syntax hat. Leider
gibts noch kein Object::DotNet::Query auf CPAN...
Falls es nicht so strikt sein muss, kommt man wie gesagt mit dem
Umdrehen der Reihenfolge und Aliasen f?r grep und map wahrscheinlich
recht weit, insbesonders wenn man List::Utils einbezieht.
LG, Roland
Robert Barta wrote:
> On Wed, Apr 30, 2008 at 05:21:33PM +0200, Robert Barta wrote:
>> On Wed, Apr 30, 2008 at 04:26:19PM +0200, Roland Giersig wrote:
>>> und wie schaut das aus?
>>>
>>> @cleverlies = select {$_->{matrikelnr}} where {$_->{marks} > 85} from
>>> @students;
>>>
>>> extra bonuspunkte f?r diejenigen, die jetzt lachend am boden liegen,
>>> weil sie die implementation von select, where und from schon vor augen
>>> haben... ;o)
>> Ja. Lustig. ;-/
>
> Fuer alle, die lustig aus der Huefte schiessen: Es geht um diese
> Liste von Operatoren:
>
> http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/standard_query_operators.doc
>
> \rho
>
>>> Robert Barta wrote:
>>>> On Wed, Apr 30, 2008 at 12:02:52PM +0200, Roland Giersig wrote:
>>>>> Oder das alles nur per SQL abhandeln, mit DBI und einer in-memory SQLite
>>>>> DB im Hintergrund.
>>>> Um SQL geht's eigentlich nicht...
>>>>
>>>>> Der Punkt ist: f?r wen sind diese Syntax-?berlegungen? F?r einen
>>>>> Maintainer, der mehr SQL als Perl versteht?
>>>> ... sondern um einen Weg (persistente) Collections ueber _ein und
>>>> denselben_ Mechanismus anzusprechen. D.h. bei
>>>>
>>>> @collection = from $s in @students .....
>>>>
>>>> ist es fuer den Programmierer egal, ob die Studis aus einer SQL
>>>> Datenkrank, aus dem memory oder einem XML Dokument, oder einem RDF
>>>> Graphen geholt werden.
>>>>
>>>>> Dem tust du keinen Gefallen,
>>>>> wenn du ihm SQL-ishe Perl-Syntax bietest, die dann doch nicht genau SQL
>>>>> ist. Da bist du besser dran, wenn du ihm einen Vereinfachungs-Wrapper um
>>>>> DBI schreibst, sodass die Operationen echtes SQL sind.
>>>> Right. Aber fuer das gibt's ja schon nen Haufen.
>>>>
>>>> \rho
>>>>
>>>>> Robert Barta wrote:
>>>>>> On Wed, Apr 30, 2008 at 08:20:23AM +0200, Thomas Klausner wrote:
>>>>>>>> auf in-memory Objekte, relational DBs, XML structures, und - das
>>>>>>>> interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
>>>>>>>> zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
>>>>>>>> aehnlicher wird, naja langsam).
>>>>>>> Naja, in Perl ist dieser Zugriffsmechanismus halt map, grep, each, etc,
>>>>>>> mit dem man auf in-memory Objekte, DBs, XML, ... zugreift.
>>>>>> D.h., ich koennte das 1) einmal sehr Perl-ish angehen und etwas an
>>>>>>
>>>>>> Tie::Array
>>>>>>
>>>>>> binden. Oder ...
>>>>>>
>>>>>>> In deinem konkreten Fall:
>>>>>>>
>>>>>>>> my @students = ....;
>>>>>>>> my @cleverlies = from $s in @students
>>>>>>>> where $s->{marks} > 85
>>>>>>>> select $s->{matrikelnr};
>>>>>>> koenntest du schon eine sub from { } machen, die die Parameterliste
>>>>>>> durchgeht, andere "keywords" wie 'where' und 'select' identifziert,
>>>>>> .... 2) 'from' in the namespace laden, oder ....
>>>>>>
>>>>>>> From: Stefan Weiss
>>>>>>> Um deinen Sourcecode so umzuschreiben, dass nachher Perl rauskommt,
>>>>>>> schau dir mal die Source Filter in "perldoc perlfilter" an, oder das
>>>>>>> Modul Filter::Simple.
>>>>>> .... 3) ein Praeprozessor einschieben.
>>>>>>
>>>>>> Klingt alles gangbar. Ich haette auch nicht notfalls vor
>>>>>>
>>>>>> @collection = new LINQ::TM ('from ...');
>>>>>>
>>>>>> zurueckgeschreckt.
>>>>>>
>>>>>>
>>>>>> 3) Bei preprocessors habe ich immer das Problem, dass sie nicht
>>>>>> leicht immer miteinander kombinierbar sind.
>>>>>>
>>>>>> 2) mit dem 'from' als Routine muss man analysieren, ob die Parameterliste
>>>>>> mit der Syntax, die ich erreichen will, halbwegs kompatibel ist. Bei
>>>>>>
>>>>>> $s->{marks} > 85
>>>>>>
>>>>>> hab ich schon das Problem, dass Perl das fuer mich auswerten will, bevor
>>>>>> 'from' zum Zug kommt.
>>>>>>
>>>>>> 1) Tie::Array ist halt SEHR perl-ish. Not bad per se, aber nicht Sinn der
>>>>>> Uebung hier.
>>>>>>
>>>>>>
>>>>>>
>>>>>> \rho
>>>>>>
>>>>>> _______________________________________________
>>>>>> Vienna-pm mailing list
>>>>>> Vienna-pm at pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>>>
>>>>> _______________________________________________
>>>>> Vienna-pm mailing list
>>>>> Vienna-pm at pm.org
>>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>>
>>> _______________________________________________
>>> Vienna-pm mailing list
>>> Vienna-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>
>> _______________________________________________
>> Vienna-pm mailing list
>> Vienna-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>
>
From e9427749 at stud4.tuwien.ac.at Mon May 5 07:55:54 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Mon, 05 May 2008 16:55:54 +0200
Subject: [Vienna-pm]
=?utf-8?q?Zus=C3=A4tzlicher_Nachtrag_zu_Escapen_von_S?=
=?utf-8?q?hellparametern=3A_Fehler_oder_Feature=3F?=
In-Reply-To: <200805051555.16938.gooly@gmx.at>
References: <4815D266.5010004@foo.at>
<200805051351.31110.lt@toetsch.at> <481EFDE0.8010106@stud4.tuwien.ac.at>
<200805051555.16938.gooly@gmx.at>
Message-ID: <481F1FFA.9020700@stud4.tuwien.ac.at>
Nochmals hi!
Calli schrieb:
> Am Montag, 5. Mai 2008 schrieb Josef Schmid:
>> Leopold Toetsch schrieb:
[...]
>>> S. auch:
>>> $ perldoc perlipc
>>> /Safe Pipe Opens
>> 1.) Es gibt eine Menge von CPAN-Modulen f?r das saugen von Webseiten.
>> Ich glaub sogar einiges in den Core-Modulen.
>> Also ohne curl.
> ja aber auch nach (ein bi?chen) cpan-eln, hab ich in den abgefragten
> headers keine File-Size gefunden - und curl ist ganz einfach :)
Falls nur Webseiten, reicht z.B.:
use LWP::UserAgent;
my $ua=new LWP::UserAgent;
my $size=$ua->head($url)->headers->content_length;
>> 2.) n?chster L?sungsansatz: curl kennt die Option --silent
> ok, das hatt ich in man ?berlesen, das geht.
Mal ehrlich, es w?re doch seltsam das ein Kommandozeilenprogramm
aus dem Unixumfeld, nicht die M?glichkeit bieten w?rde sich auch
an die Unixphilosophie "Nur eine nicht vorhandene Meldung ist eine gute
Meldung" zu halten, oder? ;-)
>> 3.) Die Standard-Dateideskriptoren werden an den Kindprozess vererbt.
>> also nach dem "do {" ein "local
>> *STDERR=IO::File('>','/dev/null');" einf?gen, sollte auch helfen.
> das wird dann immer umst?dlicher..
Hmm, eine Zeile mehr!
Sprich es ist ideal und es in eine eigene Funktion auszulagern ;-)!
Bzw. 4.) Es gibt diverses Zeugs in CPAN&Core-Modules unter IPC::*
> Frage zu den backticks, bzw system und exec: welches 'schl?sseloch' f?r
> Unerw?nschte mit Unerw?nschtem ?ffen die auf welche Weise eigentlich?
> Oder anders gefragt, wann und wo w?rde es damit gef?hrlich werden?
Ein Bsp. hast Du ja schon bekommen:
Peter J. Holzer schrieb:
> Stell Dir vor, das Script, das den URL checkt, ist ein CGI-Script (oder
> mod_perl, oder suid, oder ...) und fragt den Benutzer nach dem URL. Der
> Benutzer gibt ein: http://www.example.net; rm -rf /
Ein anderes hatte ich zuvor schon mal erw?hnt (Unicode).
Der eigentliche Punkt ist, es kann Dir keiner eine abgeschlossene,
taxative Liste davon geben. Sprich man kann sich _nie_ sicher sein,
alle Probleme erfasst zu haben.
W?hrend jedoch im Gegenzug etwas was gar nicht vorhanden ist
(weil Du es ja eigentlich eh gar nicht brauchst),
?blicherweise auch keine Probleme (zumindest dieser Art) macht.
pfiateng,
Josef
From e9427749 at stud4.tuwien.ac.at Mon May 5 08:09:33 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Mon, 05 May 2008 17:09:33 +0200
Subject: [Vienna-pm]
=?iso-8859-15?q?Zus=E4tzlicher_Nachtrag_zu_Escapen_vo?=
=?iso-8859-15?q?n_Shellparametern=3A_Fehler_oder_Feature=3F?=
In-Reply-To: <20080505143137.GC5922@hjp.at>
References: <4815D266.5010004@foo.at>
<200805051351.31110.lt@toetsch.at> <481EFDE0.8010106@stud4.tuwien.ac.at> <200805051555.16938.gooly@gmx.at>
<20080505143137.GC5922@hjp.at>
Message-ID: <481F232D.6010309@stud4.tuwien.ac.at>
Nochmals hallo!
Wichtig!
Peter J. Holzer schrieb:
> On 2008-05-05 15:55:16 +0200, Calli wrote:
>> Frage zu den backticks, bzw system und exec: welches 'schl?sseloch' f?r
>> Unerw?nschte mit Unerw?nschtem ?ffen die auf welche Weise eigentlich?
>> Oder anders gefragt, wann und wo w?rde es damit gef?hrlich werden?
>
> Stell Dir vor, das Script, das den URL checkt, ist ein CGI-Script (oder
> mod_perl, oder suid, oder ...) und fragt den Benutzer nach dem URL. Der
> Benutzer gibt ein:
>
> http://www.example.net; rm -rf /
Falls Du jetzt nicht verstehst was hjp meint,
NICHT AUSPROBIEREN.
scnr,
Josef
From jozef at kutej.net Mon May 5 08:45:14 2008
From: jozef at kutej.net (Jozef Kutej)
Date: Mon, 05 May 2008 17:45:14 +0200
Subject: [Vienna-pm] Bratislava.pm Social Meeting - 15 May
Message-ID: <481F2B8A.1080706@kutej.net>
Hi,
if anyone interested on 15 May (Thursday next week) Bratislava.pm will have a
Social Meeting at Justin pub - http://www.kamnapivo.sk/pivodb/ruzinov/317/
GPS coordinates: N48.15457/E17.13287/136m ;-)
Jonathan Worthington is coming to Bratislava and will join us there.
I'll be going by train from Vienna to Bratislava on that day afternoon. Just
drop me an email if anyone is planning to come, we can go together.
Just for an information return train ticket is 14E including Bratislava public
transport.
Have a nice day,
Jozef.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20080505/52a235da/attachment.bin
From rho at devc.at Tue May 6 00:23:43 2008
From: rho at devc.at (Robert Barta)
Date: Tue, 6 May 2008 09:23:43 +0200
Subject: [Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?
In-Reply-To: <481F1CAA.7080003@cpan.org>
References: <20080429202713.GB24242@d610.chello.at>
<20080430035004.GA28390@mama.devc.at>
<20080430062023.GD24242@d610.chello.at>
<20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org>
<20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org>
<20080430152133.GA5315@mama.devc.at>
<20080430153148.GB5315@mama.devc.at> <481F1CAA.7080003@cpan.org>
Message-ID: <20080506072343.GA15024@odman.int.devc.at>
On Mon, May 05, 2008 at 04:41:46PM +0200, Roland Giersig wrote:
> Mein Beileid, wenn das dein Job ist, f?r .NET eine Umsetzung zu finden...
Was sagt das ueber mich, wenn ich das freiwillig tu! :-)
Nein, es geht darum Teile der LINQ Funktionalitaet, d.h. selber access
Mechanismus fuer in-memory collections, DBI backends, XML backends und
Topic Maps backends zu implementieren.
Und dafuer moechte ich auch ...
> Das gr??te Problem scheint zu sein, dass die Listen-Operatoren in Perl
> rechts-nach-links funktionieren und .NET OO-m??ig links-nach-rechts,
> also verkettete Methodenaufrufe.
... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
Chinesen.
> Aber das kann man nachbilden:
>
> @cleverlies = from(@ListOfObjects)
> ->where({$_->score() > 85})
> ->select({$_->matrikelnr()});
>
> from() baut ein Objekt aus den Argumenten und die Methoden f?hren dann
> die Operationen durch, wobei sie Code-Refs als Parameter nehmen. Damit
> l?sst sich alles nachbilden, da .NET eine normale OO-Syntax hat. Leider
> gibts noch kein Object::DotNet::Query auf CPAN...
Tja. Nicht alles, was M$ da erfunden hat, ist Klumpert. Aber das
meiste....
\rho
> Robert Barta wrote:
> >On Wed, Apr 30, 2008 at 05:21:33PM +0200, Robert Barta wrote:
> >>On Wed, Apr 30, 2008 at 04:26:19PM +0200, Roland Giersig wrote:
> >>>und wie schaut das aus?
> >>>
> >>>@cleverlies = select {$_->{matrikelnr}} where {$_->{marks} > 85} from
> >>>@students;
> >>>
> >>>extra bonuspunkte f?r diejenigen, die jetzt lachend am boden liegen,
> >>>weil sie die implementation von select, where und from schon vor augen
> >>>haben... ;o)
> >>Ja. Lustig. ;-/
> >
> >Fuer alle, die lustig aus der Huefte schiessen: Es geht um diese
> >Liste von Operatoren:
> >
> > http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/standard_query_operators.doc
> >
> >\rho
> >
> >>>Robert Barta wrote:
> >>>>On Wed, Apr 30, 2008 at 12:02:52PM +0200, Roland Giersig wrote:
> >>>>>Oder das alles nur per SQL abhandeln, mit DBI und einer in-memory
> >>>>>SQLite DB im Hintergrund.
> >>>>Um SQL geht's eigentlich nicht...
> >>>>
> >>>>>Der Punkt ist: f?r wen sind diese Syntax-?berlegungen? F?r einen
> >>>>>Maintainer, der mehr SQL als Perl versteht?
> >>>>... sondern um einen Weg (persistente) Collections ueber _ein und
> >>>>denselben_ Mechanismus anzusprechen. D.h. bei
> >>>>
> >>>> @collection = from $s in @students .....
> >>>>
> >>>>ist es fuer den Programmierer egal, ob die Studis aus einer SQL
> >>>>Datenkrank, aus dem memory oder einem XML Dokument, oder einem RDF
> >>>>Graphen geholt werden.
> >>>>
> >>>>>Dem tust du keinen Gefallen,
> >>>>>wenn du ihm SQL-ishe Perl-Syntax bietest, die dann doch nicht genau
> >>>>>SQL ist. Da bist du besser dran, wenn du ihm einen
> >>>>>Vereinfachungs-Wrapper um DBI schreibst, sodass die Operationen echtes
> >>>>>SQL sind.
> >>>>Right. Aber fuer das gibt's ja schon nen Haufen.
> >>>>
> >>>>\rho
> >>>>
> >>>>>Robert Barta wrote:
> >>>>>>On Wed, Apr 30, 2008 at 08:20:23AM +0200, Thomas Klausner wrote:
> >>>>>>>>auf in-memory Objekte, relational DBs, XML structures, und - das
> >>>>>>>>interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
> >>>>>>>>zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
> >>>>>>>>aehnlicher wird, naja langsam).
> >>>>>>>Naja, in Perl ist dieser Zugriffsmechanismus halt map, grep, each,
> >>>>>>>etc, mit dem man auf in-memory Objekte, DBs, XML, ... zugreift.
> >>>>>>D.h., ich koennte das 1) einmal sehr Perl-ish angehen und etwas an
> >>>>>>
> >>>>>> Tie::Array
> >>>>>>
> >>>>>>binden. Oder ...
> >>>>>>
> >>>>>>>In deinem konkreten Fall:
> >>>>>>>
> >>>>>>>> my @students = ....;
> >>>>>>>> my @cleverlies = from $s in @students
> >>>>>>>> where $s->{marks} > 85
> >>>>>>>> select $s->{matrikelnr};
> >>>>>>>koenntest du schon eine sub from { } machen, die die Parameterliste
> >>>>>>>durchgeht, andere "keywords" wie 'where' und 'select' identifziert,
> >>>>>>.... 2) 'from' in the namespace laden, oder ....
> >>>>>>
> >>>>>>>From: Stefan Weiss
> >>>>>>>Um deinen Sourcecode so umzuschreiben, dass nachher Perl rauskommt,
> >>>>>>>schau dir mal die Source Filter in "perldoc perlfilter" an, oder das
> >>>>>>>Modul Filter::Simple.
> >>>>>>.... 3) ein Praeprozessor einschieben.
> >>>>>>
> >>>>>>Klingt alles gangbar. Ich haette auch nicht notfalls vor
> >>>>>>
> >>>>>> @collection = new LINQ::TM ('from ...');
> >>>>>>
> >>>>>>zurueckgeschreckt.
> >>>>>>
> >>>>>>
> >>>>>>3) Bei preprocessors habe ich immer das Problem, dass sie nicht
> >>>>>> leicht immer miteinander kombinierbar sind.
> >>>>>>
> >>>>>>2) mit dem 'from' als Routine muss man analysieren, ob die
> >>>>>>Parameterliste
> >>>>>> mit der Syntax, die ich erreichen will, halbwegs kompatibel ist.
> >>>>>> Bei
> >>>>>>
> >>>>>> $s->{marks} > 85
> >>>>>>
> >>>>>> hab ich schon das Problem, dass Perl das fuer mich auswerten will,
> >>>>>> bevor
> >>>>>> 'from' zum Zug kommt.
> >>>>>>
> >>>>>>1) Tie::Array ist halt SEHR perl-ish. Not bad per se, aber nicht Sinn
> >>>>>>der
> >>>>>> Uebung hier.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>\rho
> >>>>>>
> >>>>>>_______________________________________________
> >>>>>>Vienna-pm mailing list
> >>>>>>Vienna-pm at pm.org
> >>>>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>>>
> >>>>>_______________________________________________
> >>>>>Vienna-pm mailing list
> >>>>>Vienna-pm at pm.org
> >>>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>>
> >>>_______________________________________________
> >>>Vienna-pm mailing list
> >>>Vienna-pm at pm.org
> >>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>
> >>_______________________________________________
> >>Vienna-pm mailing list
> >>Vienna-pm at pm.org
> >>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>
> >
>
From rgiersig at cpan.org Tue May 6 09:44:12 2008
From: rgiersig at cpan.org (Roland Giersig)
Date: Tue, 06 May 2008 18:44:12 +0200
Subject: [Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?
In-Reply-To: <20080506072343.GA15024@odman.int.devc.at>
References: <20080429202713.GB24242@d610.chello.at>
<20080430035004.GA28390@mama.devc.at>
<20080430062023.GD24242@d610.chello.at>
<20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org>
<20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org>
<20080430152133.GA5315@mama.devc.at>
<20080430153148.GB5315@mama.devc.at> <481F1CAA.7080003@cpan.org>
<20080506072343.GA15024@odman.int.devc.at>
Message-ID: <48208ADC.9010202@cpan.org>
Zum Thema rechts-nach-links f?r grep/map:
autobox (http://search.cpan.org/~chocolate/autobox-2.23/autobox.pod)
erlaubt es, das andersrum zu schreiben, also
@cleverlies = @students->
grep(sub {$_->{marks} > 85})->
map(sub {$_->{matrikelnr}});
Vielleicht hilft dir das... :-)
LG, Roland
Robert Barta wrote:
> On Mon, May 05, 2008 at 04:41:46PM +0200, Roland Giersig wrote:
>> Mein Beileid, wenn das dein Job ist, f?r .NET eine Umsetzung zu finden...
>
> Was sagt das ueber mich, wenn ich das freiwillig tu! :-)
>
> Nein, es geht darum Teile der LINQ Funktionalitaet, d.h. selber access
> Mechanismus fuer in-memory collections, DBI backends, XML backends und
> Topic Maps backends zu implementieren.
>
> Und dafuer moechte ich auch ...
>
>> Das gr??te Problem scheint zu sein, dass die Listen-Operatoren in Perl
>> rechts-nach-links funktionieren und .NET OO-m??ig links-nach-rechts,
>> also verkettete Methodenaufrufe.
>
> ... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
> verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
> Chinesen.
>
>> Aber das kann man nachbilden:
>>
>> @cleverlies = from(@ListOfObjects)
>> ->where({$_->score() > 85})
>> ->select({$_->matrikelnr()});
>>
>> from() baut ein Objekt aus den Argumenten und die Methoden f?hren dann
>> die Operationen durch, wobei sie Code-Refs als Parameter nehmen. Damit
>> l?sst sich alles nachbilden, da .NET eine normale OO-Syntax hat. Leider
>> gibts noch kein Object::DotNet::Query auf CPAN...
>
> Tja. Nicht alles, was M$ da erfunden hat, ist Klumpert. Aber das
> meiste....
>
> \rho
>
>> Robert Barta wrote:
>>> On Wed, Apr 30, 2008 at 05:21:33PM +0200, Robert Barta wrote:
>>>> On Wed, Apr 30, 2008 at 04:26:19PM +0200, Roland Giersig wrote:
>>>>> und wie schaut das aus?
>>>>>
>>>>> @cleverlies = select {$_->{matrikelnr}} where {$_->{marks} > 85} from
>>>>> @students;
>>>>>
>>>>> extra bonuspunkte f?r diejenigen, die jetzt lachend am boden liegen,
>>>>> weil sie die implementation von select, where und from schon vor augen
>>>>> haben... ;o)
>>>> Ja. Lustig. ;-/
>>> Fuer alle, die lustig aus der Huefte schiessen: Es geht um diese
>>> Liste von Operatoren:
>>>
>>> http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/standard_query_operators.doc
>>>
>>> \rho
>>>
>>>>> Robert Barta wrote:
>>>>>> On Wed, Apr 30, 2008 at 12:02:52PM +0200, Roland Giersig wrote:
>>>>>>> Oder das alles nur per SQL abhandeln, mit DBI und einer in-memory
>>>>>>> SQLite DB im Hintergrund.
>>>>>> Um SQL geht's eigentlich nicht...
>>>>>>
>>>>>>> Der Punkt ist: f?r wen sind diese Syntax-?berlegungen? F?r einen
>>>>>>> Maintainer, der mehr SQL als Perl versteht?
>>>>>> ... sondern um einen Weg (persistente) Collections ueber _ein und
>>>>>> denselben_ Mechanismus anzusprechen. D.h. bei
>>>>>>
>>>>>> @collection = from $s in @students .....
>>>>>>
>>>>>> ist es fuer den Programmierer egal, ob die Studis aus einer SQL
>>>>>> Datenkrank, aus dem memory oder einem XML Dokument, oder einem RDF
>>>>>> Graphen geholt werden.
>>>>>>
>>>>>>> Dem tust du keinen Gefallen,
>>>>>>> wenn du ihm SQL-ishe Perl-Syntax bietest, die dann doch nicht genau
>>>>>>> SQL ist. Da bist du besser dran, wenn du ihm einen
>>>>>>> Vereinfachungs-Wrapper um DBI schreibst, sodass die Operationen echtes
>>>>>>> SQL sind.
>>>>>> Right. Aber fuer das gibt's ja schon nen Haufen.
>>>>>>
>>>>>> \rho
>>>>>>
>>>>>>> Robert Barta wrote:
>>>>>>>> On Wed, Apr 30, 2008 at 08:20:23AM +0200, Thomas Klausner wrote:
>>>>>>>>>> auf in-memory Objekte, relational DBs, XML structures, und - das
>>>>>>>>>> interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
>>>>>>>>>> zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
>>>>>>>>>> aehnlicher wird, naja langsam).
>>>>>>>>> Naja, in Perl ist dieser Zugriffsmechanismus halt map, grep, each,
>>>>>>>>> etc, mit dem man auf in-memory Objekte, DBs, XML, ... zugreift.
>>>>>>>> D.h., ich koennte das 1) einmal sehr Perl-ish angehen und etwas an
>>>>>>>>
>>>>>>>> Tie::Array
>>>>>>>>
>>>>>>>> binden. Oder ...
>>>>>>>>
>>>>>>>>> In deinem konkreten Fall:
>>>>>>>>>
>>>>>>>>>> my @students = ....;
>>>>>>>>>> my @cleverlies = from $s in @students
>>>>>>>>>> where $s->{marks} > 85
>>>>>>>>>> select $s->{matrikelnr};
>>>>>>>>> koenntest du schon eine sub from { } machen, die die Parameterliste
>>>>>>>>> durchgeht, andere "keywords" wie 'where' und 'select' identifziert,
>>>>>>>> .... 2) 'from' in the namespace laden, oder ....
>>>>>>>>
>>>>>>>>> From: Stefan Weiss
>>>>>>>>> Um deinen Sourcecode so umzuschreiben, dass nachher Perl rauskommt,
>>>>>>>>> schau dir mal die Source Filter in "perldoc perlfilter" an, oder das
>>>>>>>>> Modul Filter::Simple.
>>>>>>>> .... 3) ein Praeprozessor einschieben.
>>>>>>>>
>>>>>>>> Klingt alles gangbar. Ich haette auch nicht notfalls vor
>>>>>>>>
>>>>>>>> @collection = new LINQ::TM ('from ...');
>>>>>>>>
>>>>>>>> zurueckgeschreckt.
>>>>>>>>
>>>>>>>>
>>>>>>>> 3) Bei preprocessors habe ich immer das Problem, dass sie nicht
>>>>>>>> leicht immer miteinander kombinierbar sind.
>>>>>>>>
>>>>>>>> 2) mit dem 'from' als Routine muss man analysieren, ob die
>>>>>>>> Parameterliste
>>>>>>>> mit der Syntax, die ich erreichen will, halbwegs kompatibel ist.
>>>>>>>> Bei
>>>>>>>>
>>>>>>>> $s->{marks} > 85
>>>>>>>>
>>>>>>>> hab ich schon das Problem, dass Perl das fuer mich auswerten will,
>>>>>>>> bevor
>>>>>>>> 'from' zum Zug kommt.
>>>>>>>>
>>>>>>>> 1) Tie::Array ist halt SEHR perl-ish. Not bad per se, aber nicht Sinn
>>>>>>>> der
>>>>>>>> Uebung hier.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> \rho
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Vienna-pm mailing list
>>>>>>>> Vienna-pm at pm.org
>>>>>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Vienna-pm mailing list
>>>>>>> Vienna-pm at pm.org
>>>>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>>>>
>>>>> _______________________________________________
>>>>> Vienna-pm mailing list
>>>>> Vienna-pm at pm.org
>>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>>
>>>> _______________________________________________
>>>> Vienna-pm mailing list
>>>> Vienna-pm at pm.org
>>>> http://mail.pm.org/mailman/listinfo/vienna-pm
>>>>
>
From e9427749 at stud4.tuwien.ac.at Tue May 6 10:07:32 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Tue, 06 May 2008 19:07:32 +0200
Subject: [Vienna-pm] =?iso-8859-1?q?F=FCr_L2R-Fetischisten_=28was=3A_Hausb?=
=?iso-8859-1?q?ackene_Syntaxerweiterung_mit_Perl5=3F=29?=
In-Reply-To: <48208ADC.9010202@cpan.org>
References: <20080429202713.GB24242@d610.chello.at> <20080430035004.GA28390@mama.devc.at> <20080430062023.GD24242@d610.chello.at> <20080430052513.GA3526@mama.devc.at>
<481843CC.30607@cpan.org> <20080430100558.GA13029@mama.devc.at>
<4818818B.7000708@cpan.org> <20080430152133.GA5315@mama.devc.at> <20080430153148.GB5315@mama.devc.at>
<481F1CAA.7080003@cpan.org> <20080506072343.GA15024@odman.int.devc.at>
<48208ADC.9010202@cpan.org>
Message-ID: <48209054.8000702@stud4.tuwien.ac.at>
Roland Giersig schrieb:
> Robert Barta wrote:
[...]
>> ... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
>> verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
>> Chinesen.
[...]
> Zum Thema rechts-nach-links f?r grep/map:
>
> autobox (http://search.cpan.org/~chocolate/autobox-2.23/autobox.pod)
> erlaubt es, das andersrum zu schreiben, also
>
> @cleverlies = @students->
> grep(sub {$_->{marks} > 85})->
> map(sub {$_->{matrikelnr}});
>
> Vielleicht hilft dir das... :-)
Oder alternativ:
use English::Reference qw(deref);
sub _asiaphop
{ my $last=pop; my $peek=$_[$#_];
ref $peek eq'CODE'?$last->(_asiaphop(@_)):$last->(deref $peek);
}
sub asiaphop (\[@$%];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&) {_asiaphop(@_)}
# test: -> (b)(c)(d)(e)
my @a=qw(a b c d e);
print asiaphop @a,sub{ grep{$_ ne 'a'}@_ },sub{ map{"($_)"}@_ };
obwohl ? so h?bsch,
Jo "von Affen gebissen" sef
From Wolfgang.Laun at thalesgroup.com Wed May 7 00:25:21 2008
From: Wolfgang.Laun at thalesgroup.com (Wolfgang Laun)
Date: Wed, 07 May 2008 09:25:21 +0200
Subject: [Vienna-pm]
=?iso-8859-1?q?F=FCr_L2R-Fetischisten_=28was=3A_Hausb?=
=?iso-8859-1?q?ackene_Syntaxerweiterung_mit_Perl5=3F=29?=
In-Reply-To: <48209054.8000702@stud4.tuwien.ac.at>
References: <20080429202713.GB24242@d610.chello.at> <20080430035004.GA28390@mama.devc.at> <20080430062023.GD24242@d610.chello.at> <20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org> <20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org> <20080430152133.GA5315@mama.devc.at> <20080430153148.GB5315@mama.devc.at> <481F1CAA.7080003@cpan.org> <20080506072343.GA15024@odman.int.devc.at> <48208ADC.9010202@cpan.org>
<48209054.8000702@stud4.tuwien.ac.at>
Message-ID: <48215961.3060900@thalesgroup.com>
Nicht ganz die richtige Liste (Pardon!), aber zum Thema passend und
(hoffentlich) ausreichend obfuscated ;-)
main(int c,char**v){return *v?c=main(c,++v),printf(c?"%s
":"\n",(-1)[v]):0,c-1;}
-WL
Josef Schmid wrote:
>Roland Giersig schrieb:
>
>
>
>>Robert Barta wrote:
>>
>>
>[...]
>
>
>>>... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
>>>verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
>>>Chinesen.
>>>
>>>
>[...]
>
>
>>Zum Thema rechts-nach-links f?r grep/map:
>>
>>autobox (http://search.cpan.org/~chocolate/autobox-2.23/autobox.pod)
>>erlaubt es, das andersrum zu schreiben, also
>>
>>@cleverlies = @students->
>> grep(sub {$_->{marks} > 85})->
>> map(sub {$_->{matrikelnr}});
>>
>>Vielleicht hilft dir das... :-)
>>
>>
>
>Oder alternativ:
>use English::Reference qw(deref);
>sub _asiaphop
>{ my $last=pop; my $peek=$_[$#_];
> ref $peek eq'CODE'?$last->(_asiaphop(@_)):$last->(deref $peek);
>}
>sub asiaphop (\[@$%];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&) {_asiaphop(@_)}
>
># test: -> (b)(c)(d)(e)
>my @a=qw(a b c d e);
>print asiaphop @a,sub{ grep{$_ ne 'a'}@_ },sub{ map{"($_)"}@_ };
>
>obwohl ? so h?bsch,
> Jo "von Affen gebissen" sef
>
>
>_______________________________________________
>Vienna-pm mailing list
>Vienna-pm at pm.org
>http://mail.pm.org/mailman/listinfo/vienna-pm
>
>
From e9427749 at stud4.tuwien.ac.at Wed May 7 06:30:34 2008
From: e9427749 at stud4.tuwien.ac.at (Josef Schmid)
Date: Wed, 07 May 2008 15:30:34 +0200
Subject: [Vienna-pm]
=?iso-8859-1?q?F=FCr_L2R-Fetischisten_=26_SQL-Gepeini?=
=?iso-8859-1?q?gte?=
In-Reply-To: <48209054.8000702@stud4.tuwien.ac.at>
References: <20080429202713.GB24242@d610.chello.at> <20080430035004.GA28390@mama.devc.at> <20080430062023.GD24242@d610.chello.at> <20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org> <20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org> <20080430152133.GA5315@mama.devc.at> <20080430153148.GB5315@mama.devc.at> <481F1CAA.7080003@cpan.org> <20080506072343.GA15024@odman.int.devc.at> <48208ADC.9010202@cpan.org>
<48209054.8000702@stud4.tuwien.ac.at>
Message-ID: <4821AEFA.2060309@stud4.tuwien.ac.at>
Josef Schmid schrieb:
> Roland Giersig schrieb:
>> Robert Barta wrote:
> [...]
>>> ... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
>>> verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
>>> Chinesen.
> [...]
> Oder alternativ:
> use English::Reference qw(deref);
> sub _asiaphop
> { my $last=pop; my $peek=$_[$#_];
> ref $peek eq'CODE'?$last->(_asiaphop(@_)):$last->(deref $peek);
> }
> sub asiaphop (\[@$%];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&) {_asiaphop(@_)}
>
> # test: -> (b)(c)(d)(e)
> my @a=qw(a b c d e);
> print asiaphop @a,sub{ grep{$_ ne 'a'}@_ },sub{ map{"($_)"}@_ };
>
> obwohl ? so h?bsch,
> Jo "von Affen gebissen" sef
Es ginge allerdings etwas h?bscher, ala:
from @students,
where { $_->matnr ne 'u007' } select { $_->name };
Ansonsten h?tte ich so ein paar Ideen f?r die weniger
xenophoben unter den pm'lers:
N?mlich mittels ?berladungen von grep, map und
join eine ?bersetzung nach SQL-Statements
zu erzeugen.
Also my @r=map { [$_->s->name,$_->c->name] }
grep { $_->s->matnr eq '...' }
join '=', # equal join ;-)
from s => @students, c => @courses;
Was haltet ihr von der Idee?
(Sieht nach O(n?) aus schafft aber was immer die
DB hergibt.)
pfiateng,
Josef
From rho at devc.at Wed May 7 08:43:21 2008
From: rho at devc.at (Robert Barta)
Date: Wed, 7 May 2008 17:43:21 +0200
Subject: [Vienna-pm] Hausbackene Syntaxerweiterung mit Perl5?
In-Reply-To: <48208ADC.9010202@cpan.org>
References: <20080430062023.GD24242@d610.chello.at>
<20080430052513.GA3526@mama.devc.at> <481843CC.30607@cpan.org>
<20080430100558.GA13029@mama.devc.at> <4818818B.7000708@cpan.org>
<20080430152133.GA5315@mama.devc.at>
<20080430153148.GB5315@mama.devc.at> <481F1CAA.7080003@cpan.org>
<20080506072343.GA15024@odman.int.devc.at>
<48208ADC.9010202@cpan.org>
Message-ID: <20080507154321.GD10210@odman.int.devc.at>
On Tue, May 06, 2008 at 06:44:12PM +0200, Roland Giersig wrote:
> Zum Thema rechts-nach-links f?r grep/map:
>
> autobox (http://search.cpan.org/~chocolate/autobox-2.23/autobox.pod)
> erlaubt es, das andersrum zu schreiben, also
>
> @cleverlies = @students->
> grep(sub {$_->{marks} > 85})->
> map(sub {$_->{matrikelnr}});
>
> Vielleicht hilft dir das... :-)
Das kommt schon in die Richtung, ja. Wie gesagt, ich moechte den
syntactic noise moeglichst gering halten (deswegen auch eigene Syntax)
und vom backend moeglichst unabhaengig sein.
Uebrigens vielen Dank fuer die vielen Hinweise.
\rho
> Robert Barta wrote:
> >On Mon, May 05, 2008 at 04:41:46PM +0200, Roland Giersig wrote:
> >>Mein Beileid, wenn das dein Job ist, f?r .NET eine Umsetzung zu finden...
> >
> >Was sagt das ueber mich, wenn ich das freiwillig tu! :-)
> >
> >Nein, es geht darum Teile der LINQ Funktionalitaet, d.h. selber access
> >Mechanismus fuer in-memory collections, DBI backends, XML backends und
> >Topic Maps backends zu implementieren.
> >
> >Und dafuer moechte ich auch ...
> >
> >>Das gr??te Problem scheint zu sein, dass die Listen-Operatoren in Perl
> >>rechts-nach-links funktionieren und .NET OO-m??ig links-nach-rechts,
> >>also verkettete Methodenaufrufe.
> >
> >... die Syntax erweiteren. Ich verwende map/grep exzessiv, aber das
> >verkehrt von hinten nach vorn lesen/schreiben ueberless ich lieber den
> >Chinesen.
> >
> >>Aber das kann man nachbilden:
> >>
> >>@cleverlies = from(@ListOfObjects)
> >> ->where({$_->score() > 85})
> >> ->select({$_->matrikelnr()});
> >>
> >>from() baut ein Objekt aus den Argumenten und die Methoden f?hren dann
> >>die Operationen durch, wobei sie Code-Refs als Parameter nehmen. Damit
> >>l?sst sich alles nachbilden, da .NET eine normale OO-Syntax hat. Leider
> >>gibts noch kein Object::DotNet::Query auf CPAN...
> >
> >Tja. Nicht alles, was M$ da erfunden hat, ist Klumpert. Aber das
> >meiste....
> >
> >\rho
> >
> >>Robert Barta wrote:
> >>>On Wed, Apr 30, 2008 at 05:21:33PM +0200, Robert Barta wrote:
> >>>>On Wed, Apr 30, 2008 at 04:26:19PM +0200, Roland Giersig wrote:
> >>>>>und wie schaut das aus?
> >>>>>
> >>>>>@cleverlies = select {$_->{matrikelnr}} where {$_->{marks} > 85} from
> >>>>>@students;
> >>>>>
> >>>>>extra bonuspunkte f?r diejenigen, die jetzt lachend am boden liegen,
> >>>>>weil sie die implementation von select, where und from schon vor augen
> >>>>>haben... ;o)
> >>>>Ja. Lustig. ;-/
> >>>Fuer alle, die lustig aus der Huefte schiessen: Es geht um diese
> >>>Liste von Operatoren:
> >>>
> >>> http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/standard_query_operators.doc
> >>>
> >>>\rho
> >>>
> >>>>>Robert Barta wrote:
> >>>>>>On Wed, Apr 30, 2008 at 12:02:52PM +0200, Roland Giersig wrote:
> >>>>>>>Oder das alles nur per SQL abhandeln, mit DBI und einer in-memory
> >>>>>>>SQLite DB im Hintergrund.
> >>>>>>Um SQL geht's eigentlich nicht...
> >>>>>>
> >>>>>>>Der Punkt ist: f?r wen sind diese Syntax-?berlegungen? F?r einen
> >>>>>>>Maintainer, der mehr SQL als Perl versteht?
> >>>>>>... sondern um einen Weg (persistente) Collections ueber _ein und
> >>>>>>denselben_ Mechanismus anzusprechen. D.h. bei
> >>>>>>
> >>>>>> @collection = from $s in @students .....
> >>>>>>
> >>>>>>ist es fuer den Programmierer egal, ob die Studis aus einer SQL
> >>>>>>Datenkrank, aus dem memory oder einem XML Dokument, oder einem RDF
> >>>>>>Graphen geholt werden.
> >>>>>>
> >>>>>>>Dem tust du keinen Gefallen,
> >>>>>>>wenn du ihm SQL-ishe Perl-Syntax bietest, die dann doch nicht genau
> >>>>>>>SQL ist. Da bist du besser dran, wenn du ihm einen
> >>>>>>>Vereinfachungs-Wrapper um DBI schreibst, sodass die Operationen
> >>>>>>>echtes SQL sind.
> >>>>>>Right. Aber fuer das gibt's ja schon nen Haufen.
> >>>>>>
> >>>>>>\rho
> >>>>>>
> >>>>>>>Robert Barta wrote:
> >>>>>>>>On Wed, Apr 30, 2008 at 08:20:23AM +0200, Thomas Klausner wrote:
> >>>>>>>>>>auf in-memory Objekte, relational DBs, XML structures, und - das
> >>>>>>>>>>interessiert mich hier hauptsaechlich - auf Topic Map und RDF KBs
> >>>>>>>>>>zugreifen kann. LINQ ist nun Teil von C# (das langsam Perl6 immer
> >>>>>>>>>>aehnlicher wird, naja langsam).
> >>>>>>>>>Naja, in Perl ist dieser Zugriffsmechanismus halt map, grep, each,
> >>>>>>>>>etc, mit dem man auf in-memory Objekte, DBs, XML, ... zugreift.
> >>>>>>>>D.h., ich koennte das 1) einmal sehr Perl-ish angehen und etwas an
> >>>>>>>>
> >>>>>>>> Tie::Array
> >>>>>>>>
> >>>>>>>>binden. Oder ...
> >>>>>>>>
> >>>>>>>>>In deinem konkreten Fall:
> >>>>>>>>>
> >>>>>>>>>> my @students = ....;
> >>>>>>>>>> my @cleverlies = from $s in @students
> >>>>>>>>>> where $s->{marks} > 85
> >>>>>>>>>> select $s->{matrikelnr};
> >>>>>>>>>koenntest du schon eine sub from { } machen, die die
> >>>>>>>>>Parameterliste durchgeht, andere "keywords" wie 'where' und
> >>>>>>>>>'select' identifziert,
> >>>>>>>>.... 2) 'from' in the namespace laden, oder ....
> >>>>>>>>
> >>>>>>>>>From: Stefan Weiss
> >>>>>>>>>Um deinen Sourcecode so umzuschreiben, dass nachher Perl rauskommt,
> >>>>>>>>>schau dir mal die Source Filter in "perldoc perlfilter" an, oder
> >>>>>>>>>das
> >>>>>>>>>Modul Filter::Simple.
> >>>>>>>>.... 3) ein Praeprozessor einschieben.
> >>>>>>>>
> >>>>>>>>Klingt alles gangbar. Ich haette auch nicht notfalls vor
> >>>>>>>>
> >>>>>>>> @collection = new LINQ::TM ('from ...');
> >>>>>>>>
> >>>>>>>>zurueckgeschreckt.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>3) Bei preprocessors habe ich immer das Problem, dass sie nicht
> >>>>>>>> leicht immer miteinander kombinierbar sind.
> >>>>>>>>
> >>>>>>>>2) mit dem 'from' als Routine muss man analysieren, ob die
> >>>>>>>>Parameterliste
> >>>>>>>> mit der Syntax, die ich erreichen will, halbwegs kompatibel ist.
> >>>>>>>> Bei
> >>>>>>>>
> >>>>>>>> $s->{marks} > 85
> >>>>>>>>
> >>>>>>>> hab ich schon das Problem, dass Perl das fuer mich auswerten
> >>>>>>>> will, bevor
> >>>>>>>> 'from' zum Zug kommt.
> >>>>>>>>
> >>>>>>>>1) Tie::Array ist halt SEHR perl-ish. Not bad per se, aber nicht
> >>>>>>>>Sinn der
> >>>>>>>> Uebung hier.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>\rho
> >>>>>>>>
> >>>>>>>>_______________________________________________
> >>>>>>>>Vienna-pm mailing list
> >>>>>>>>Vienna-pm at pm.org
> >>>>>>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>>>>>
> >>>>>>>_______________________________________________
> >>>>>>>Vienna-pm mailing list
> >>>>>>>Vienna-pm at pm.org
> >>>>>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>>>>
> >>>>>_______________________________________________
> >>>>>Vienna-pm mailing list
> >>>>>Vienna-pm at pm.org
> >>>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>>
> >>>>_______________________________________________
> >>>>Vienna-pm mailing list
> >>>>Vienna-pm at pm.org
> >>>>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>>>
> >
>
From domm at cpan.org Wed May 7 23:22:02 2008
From: domm at cpan.org (Thomas Klausner)
Date: Thu, 8 May 2008 08:22:02 +0200
Subject: [Vienna-pm] Bratislava.pm Social Meeting - 15 May
In-Reply-To: <481F2B8A.1080706@kutej.net>
References: <481F2B8A.1080706@kutej.net>
Message-ID: <20080508062202.GC18536@dedomm.validad.net>
Hi!
On Mon, May 05, 2008 at 05:45:14PM +0200, Jozef Kutej wrote:
> if anyone interested on 15 May (Thursday next week) Bratislava.pm will have a
> Social Meeting at Justin pub - http://www.kamnapivo.sk/pivodb/ruzinov/317/
I'm interested!
But when will the meeting start? Unfortunantly I can only leave Vienna
around 17:30...
Is anybody else going (by train/car)? When?
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Wed May 7 23:41:50 2008
From: domm at cpan.org (Thomas Klausner)
Date: Thu, 8 May 2008 08:41:50 +0200
Subject: [Vienna-pm] YAPC::Europe 2008
Message-ID: <20080508064150.GD18536@dedomm.validad.net>
Hi!
Auch wenn die diesjaehrigen YAPC-Orgas ein bissl leise sind, gibt schon
ein wenig Info auf der Site http://www.yapceurope2008.org/
Wie auch immer, es waere an der Zeit, Reise und Unterkunft zu
organisieren. Ich selber fahr aus verschiedenen Gruenden mit dem Zug und
vermute mal, dass ich da eher alleine sein werden.
Ein paar Leute haben schon Fluege gebucht. Vielleicht wollen jene
Personen ein "Travel Team" starten?
http://www.yapceurope2008.org/ye2008/wiki?node=HowToGetThere
Ich hab ausserdem in unserem Wiki eine Seite zur YAPC-Koordination
angelegt:
http://socialtext.useperl.at/vienna-pm/index.cgi?yapc_europe_2008
Bez Hotel (und angesichts der gesalzenen Preise) schwirrt die Idee
herum, ein 4-Bett Zimmer (oder mehr (Zimmer/Betten)) in einem Hostel zu
reservieren. Wer waere denn da dabei? Bitte auch im Wiki eintragen!
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Tue May 13 11:49:45 2008
From: domm at cpan.org (Thomas Klausner)
Date: Tue, 13 May 2008 20:49:45 +0200
Subject: [Vienna-pm] TechSocialMeet 2.6.
Message-ID: <20080513184945.GA5493@d610.chello.at>
Hi!
Am 2.6., 19:00 gibts das naechste Vienna.pm TechSocialMeeting.
F?r den Tech-Teil brauchen wir noch Vortragenden!
Ich selber bin leider noch nicht 100%ig sicher, ob ich schon ab 19:00
kann, weil meine Freundin in Berlin ist & ich entweder einen
Kindersitter brauch, oder die Kinder allein ins Bett schick...
Wenn ich kann, koennte ich (endlich) den Talk "die Perl, die" (Exception
Handling) halten (~30 - 40 Minuten)
Hat sonst noch jemand etwas zum herzeigen/vortragen? Waere auch eine
gute Moeglichkeit, einen Talk fuer die YAPC::Europe zu ueben :-)
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Tue May 13 11:53:06 2008
From: domm at cpan.org (Thomas Klausner)
Date: Tue, 13 May 2008 20:53:06 +0200
Subject: [Vienna-pm] Generalversammlung
Message-ID: <20080513185306.GB5493@d610.chello.at>
Hi!
Irgendwann Anfang Juni sollten wir eine Vienna.pm Generalversammlung
machen. Diese sollte IMO nicht in einem Lokal stattfinden, sondern in
einem Besprechungszimmer o.ae.
Haette da irgendjemand Platz?
Bei uns passen eher nur 8 Leute ins Besprechungszimmer (oder koki?),
wobei sich im worst case sicher auch mehr ausgehen. (Praterstrasse,
1020)
Ich denke mal, wir sollten so gegen 19:00 anfangen, und nach 2 Stunden
irgendwohin uebersuiedeln, wo's gemuetlicher ist (wenn wir's bei uns
machen, zB ins Shabu)
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Tue May 13 11:54:45 2008
From: domm at cpan.org (Thomas Klausner)
Date: Tue, 13 May 2008 20:54:45 +0200
Subject: [Vienna-pm] Bratislava.pm Social Meeting - 15 May
In-Reply-To: <20080508062202.GC18536@dedomm.validad.net>
References: <481F2B8A.1080706@kutej.net>
<20080508062202.GC18536@dedomm.validad.net>
Message-ID: <20080513185445.GC5493@d610.chello.at>
Hi!
On Thu, May 08, 2008 at 08:22:02AM +0200, Thomas Klausner wrote:
> Is anybody else going (by train/car)? When?
Maros hat im IRC angeboten, mit dem Auto zu fahren, und ich werd
mitfahren. Mag noch jemand mitkommen? Fahrt jemand mit dem Zug? Oder mit
noch einem Auto?
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From rgiersig at cpan.org Fri May 16 08:31:45 2008
From: rgiersig at cpan.org (Roland Giersig)
Date: Fri, 16 May 2008 17:31:45 +0200
Subject: [Vienna-pm] Generalversammlung
In-Reply-To: <20080513185306.GB5493@d610.chello.at>
References: <20080513185306.GB5493@d610.chello.at>
Message-ID: <482DA8E1.100@cpan.org>
warum nicht vor/nach/anstatt des techsocialmeetings am 2.6.?
ein tagesordnungspunkt ist dann halt vielleicht "die, perl, die", wenn
mans anstatt macht... ;-)
und wer noch nicht mitglied ist, wird gleich mal kooptiert.
Thomas Klausner wrote:
> Hi!
>
> Irgendwann Anfang Juni sollten wir eine Vienna.pm Generalversammlung
> machen. Diese sollte IMO nicht in einem Lokal stattfinden, sondern in
> einem Besprechungszimmer o.ae.
>
> Haette da irgendjemand Platz?
>
> Bei uns passen eher nur 8 Leute ins Besprechungszimmer (oder koki?),
> wobei sich im worst case sicher auch mehr ausgehen. (Praterstrasse,
> 1020)
>
> Ich denke mal, wir sollten so gegen 19:00 anfangen, und nach 2 Stunden
> irgendwohin uebersuiedeln, wo's gemuetlicher ist (wenn wir's bei uns
> machen, zB ins Shabu)
>
>
From domm at cpan.org Fri May 16 14:11:38 2008
From: domm at cpan.org (Thomas Klausner)
Date: Fri, 16 May 2008 23:11:38 +0200
Subject: [Vienna-pm] Fwd: Newsletter #01 from the YAPC::Europe 2008
Organizers
Message-ID: <20080516211138.GA29467@d610.chello.at>
----- Forwarded message from Jonas Br?ms? Nielsen -----
From: Jonas Br?ms? Nielsen
Subject: [pm_groups] Newsletter #01 from the YAPC::Europe 2008 Organizers
Date: Fri, 16 May 2008 13:11:21 +0200
To: pm_groups at pm.org
Hello,
The silence has been broken! We have published the first newsletter
leading up to YAPC::EU 2008, throwing some light on the things that
are going on behind the scenes.
Read about the schedule layout, Perl training, job fair and
sponsorships at http://www.yapceurope2008.org/ye2008/newsletter_01.html
And remember, the talk submission deadline is drawing nearer!
There is a news feed at: http://www.yapceurope2008.org/ye2008/atom/en.xml
Thank you,
jonasbn, on behalf of the Copenhagen Perl Mongers
--
Request pm.org Technical Support via support at pm.org
pm_groups mailing list
pm_groups at pm.org
http://mail.pm.org/mailman/listinfo/pm_groups
----- End forwarded message -----
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Tue May 20 23:51:53 2008
From: domm at cpan.org (Thomas Klausner)
Date: Wed, 21 May 2008 08:51:53 +0200
Subject: [Vienna-pm] Einladung TechSocialMeet 2.6.
Message-ID: <20080521065153.GH2373@d610.chello.at>
Hi!
Bald ist es wieder soweit: am MO, 2.6. gibts das naechste TechSocialMeet
von Vienna.pm.
Programm:
* Jonathan Worthington kommt aus Bratislava r?ber und erz?hlt uns, was
er mit unserem Geld so anstellt:
Rakudo Update (30-40 Minuten)
* ich muss jetzt endlich f?r die YAPC ?ben:
die Perl, die! (30-40 Minuten)
Da es in Bratislava kein/kaum indisches Essen gibt, f?hren wir Jonathan
nacher in den Wiener Deewan
http://www.falter.at/web/wwei/detail.php?nr=5266
(bitte um Anmeldung!)
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Wed May 21 13:23:38 2008
From: domm at cpan.org (Thomas Klausner)
Date: Wed, 21 May 2008 22:23:38 +0200
Subject: [Vienna-pm] Wieder mal: Emergency Social Meeting
Message-ID: <20080521202338.GA7212@d610.chello.at>
Hi!
Weil wir wieder alte Gaeste haben (Nicholas (ist schon fast kein Gast
mehr :-) und nothingmuch) gibts am DO, 22.5, ab 20:00 ein kleines
Treffen. Und zwar in der "Sch?nen Perle":
1020, Ecke Leopold/Grosse Pfarrg.
http://www.schoene-perle.at/
Bis dann!
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From prozessor13 at gmx.net Thu May 22 08:51:35 2008
From: prozessor13 at gmx.net (max demmelbauer)
Date: Thu, 22 May 2008 17:51:35 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
Message-ID: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
hallo..
unsere website, http://www.bikemap.net laeuft mit webtek (http://max.xaok.org/webtek/language?language=de
, ich hab im jahr 2006 ein vortrag beim austria-perl-workshop
gehalten), und wir haben in letzter zeit grosse probleme mit server-
abstuerzen. es lauft alles gut, und auf einmal werden lauter neue
mod_perl workers gestartet, bis dem rechner der speicher ausgeht.
ich hab eh schon lang rumgesucht, aber ich komm einfach nicht auf den
ausloeser des problems.
weitere speicherprobleme:
* 1 (prefork) mod_perl thread brauch bereits 100 - 130MB speicher
(wieso so viel??)
* auf der entwicklerkiste ist der speicherverbrauch deutilch weniger
* perl allociert immer mehr speicher (und ich glaub nicht dass es an
einem memory-leak liegt)
* manche deamons (auch in perl) laufen immer brav dahin, und auf
einmal geht der speicher rauf, bis ein "out of memory" kommt (fuer
immer die gleichen zeilen code)
darum suche ich jemanden, der sich mit dieser materie gut auskennt,
und sich mit mir mal z.b. 2 nachmittage hinsetzt, und das alles aus
einem neutralen standpunkt analysiert (natuerlich gegen gute bezahlung).
hoffentlich meldet sich bald wer :)
lg. max.
From mjy at geizhals.at Thu May 22 09:06:51 2008
From: mjy at geizhals.at (Marinos Yannikos)
Date: Thu, 22 May 2008 18:06:51 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
Message-ID: <48359A1B.2030906@geizhals.at>
max demmelbauer schrieb:
> * 1 (prefork) mod_perl thread brauch bereits 100 - 130MB speicher
> (wieso so viel??)
Haha, das ist eh noch wenig. Unsere mod_perl-Threads brauchen 1gb+ (aber
wir cachen da auch explizit). Der Grund ist die fehlende bzw. nur
rudiment?r vorhandene garbage collection in Perl, bei jedem Request
bleibt halt viel im Speicher bzw. wird der Speicher wohl auch noch
fragmentiert.
Ein weiteres Problem ist, da? die Apache-Prozesse kaum Speicher sharen
k?nnen, da das "copy on write" bei fork & Perl kaum etwas bringt. Man
kann also kaum Daten und Perl-Code vor dem fork laden und sich davon
Speicherersparnis erhoffen.
Siehe auch:
http://perl.apache.org/docs/1.0/guide/performance.html#Sharing_Memory
> * auf der entwicklerkiste ist der speicherverbrauch deutilch weniger
Weniger Requests - logisch.
> * perl allociert immer mehr speicher (und ich glaub nicht dass es an
> einem memory-leak liegt)
> * manche deamons (auch in perl) laufen immer brav dahin, und auf
> einmal geht der speicher rauf, bis ein "out of memory" kommt (fuer
> immer die gleichen zeilen code)
>
> darum suche ich jemanden, der sich mit dieser materie gut auskennt,
> und sich mit mir mal z.b. 2 nachmittage hinsetzt, und das alles aus
> einem neutralen standpunkt analysiert (natuerlich gegen gute bezahlung).
MaxRequestsPerChild 100 (wenn du nicht extrem hohe Performance brauchst)
MfG,
-mjy
--
Dipl.-Ing. Marinos Yannikos, CEO
Preisvergleich Internet Services AG
Obere Donaustrasse 63, A-1020 Wien
Tel./Fax: (+431) 5811609-52/-55
Handelsgericht Wien - FN 197241K - Firmensitz Wien
From prozessor13 at gmx.net Thu May 22 09:34:07 2008
From: prozessor13 at gmx.net (max demmelbauer)
Date: Thu, 22 May 2008 18:34:07 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To: <48359A1B.2030906@geizhals.at>
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
<48359A1B.2030906@geizhals.at>
Message-ID:
On 22.05.2008, at 18:06, Marinos Yannikos wrote:
> max demmelbauer schrieb:
>> * 1 (prefork) mod_perl thread brauch bereits 100 - 130MB speicher
>> (wieso so viel??)
>
> Haha, das ist eh noch wenig. Unsere mod_perl-Threads brauchen 1gb+
> (aber wir cachen da auch explizit). Der Grund ist die fehlende bzw.
> nur rudiment?r vorhandene garbage collection in Perl, bei jedem
> Request bleibt halt viel im Speicher bzw. wird der Speicher wohl
> auch noch fragmentiert.
:) ja, aber bei uns sind die 100MB wirklich nur perl-code. weiters
braucht ein
./webtek console (was einfach nur den ganzen applikation-code laedt,
und eine command-zeile bereitstellt) bei mir lokal auf einem IC2D
20MB, und auf der athlon64 debiankiste 40MB.
ich versteh einfach nicht:
- erstens: wieso schon mal der unterschied von 20MB zwischen den
systemen
- zweitens: wieso braucht der apache prozess nochmal 80MB mehr fuer
denselben code?
- der unterschied zw test/live betrieb im speicher ist auch schon
direkt nach dem starten (also unabhaengig von den requests)
- mir ist es auch egal, der prozess kann soviel brauchen wie er will!
aber wenn der server immer wieder crached ist es halt sch**e.. grrr...
> MaxRequestsPerChild 100 (wenn du nicht extrem hohe Performance
> brauchst)
thx. das werd ich gleich machen
aber irgendwo ist ganz sicher ein fehler bei uns im code, und der
bringt mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende
5x den server restarten muss ;)
eine vermutung ist auch ein `cmd` aufruf im applikationscode (darf/
soll ich sowas im mod_perl env aufrufen?)
thx nochmal und lg. max
From mjy at geizhals.at Thu May 22 09:45:54 2008
From: mjy at geizhals.at (Marinos Yannikos)
Date: Thu, 22 May 2008 18:45:54 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To:
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
<48359A1B.2030906@geizhals.at>
Message-ID: <4835A342.7050001@geizhals.at>
max demmelbauer schrieb:
> ./webtek console (was einfach nur den ganzen applikation-code laedt, und
> eine command-zeile bereitstellt) bei mir lokal auf einem IC2D 20MB, und
> auf der athlon64 debiankiste 40MB.
32bit vs. 64bit Perl wohl (8 byte pointer, alignment, ...), obwohl
Faktor 2 da eher der worst case sein sollte.
> ich versteh einfach nicht:
>
> - erstens: wieso schon mal der unterschied von 20MB zwischen den
> systemen
> - zweitens: wieso braucht der apache prozess nochmal 80MB mehr fuer
> denselben code?
> - der unterschied zw test/live betrieb im speicher ist auch schon
> direkt nach dem starten (also unabhaengig von den requests)
D?rfte dann wohl auch auf 32/64 bit zur?ckzuf?hren sein, evtl. auch
andere Perl-Version?
> - mir ist es auch egal, der prozess kann soviel brauchen wie er
> will! aber wenn der server immer wieder crached ist es halt sch**e..
> grrr...
Wir haben schon lange ein Setup wie in
http://perl.apache.org/docs/1.0/guide/strategy.html#One_Plain_Apache_and_One_mod_perl_enabled_Apache_Servers
beschrieben, damit k?nnen wir die mod_perl Apaches auf 10-15 limitieren
und trotzdem einige 100 Requests parallel abarbeiten (auf statische
Daten z.B.).
Ansonsten kannst du wohl auch mal FastCGI anschauen, das trennt die
fetten Perl-Prozesse sauberer vom Apache als mod_perl. Ich warte
einstweilen auf ein Perl mit Speichermanagement, das die letzten 30
Jahre Forschung in dem Gebiet nicht verschlafen hat. ;-)
(zur Not auch eine Version mit drangepfrimmeltem
http://www.hpl.hp.com/personal/Hans_Boehm/gc/)
> aber irgendwo ist ganz sicher ein fehler bei uns im code, und der bringt
> mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende 5x den
> server restarten muss ;)
Du kannst ja mal die Apache-PIDs mitloggen
(http://httpd.apache.org/docs/1.3/mod/mod_log_config.html - %P) und dann
im access.log nachschauen, welche Requests einen bestimmten Prozess so
aufgeblasen haben. Vielleicht findest du ja ein sch?nes memory leak (ist
bei mod_perl sehr einfach zu erzeugen, nachdem die globalen Variablen ja
bleiben).
> eine vermutung ist auch ein `cmd` aufruf im applikationscode (darf/soll
> ich sowas im mod_perl env aufrufen?)
http://perl.apache.org/docs/1.0/guide/performance.html#Forking_and_Executing_Subprocesses_from_mod_perl
Gilt nat?rlich auch f?r backticks...
MfG,
-mjy
--
Dipl.-Ing. Marinos Yannikos, CEO
Preisvergleich Internet Services AG
Obere Donaustrasse 63, A-1020 Wien
Tel./Fax: (+431) 5811609-52/-55
Handelsgericht Wien - FN 197241K - Firmensitz Wien
From mjy at geizhals.at Thu May 22 09:54:52 2008
From: mjy at geizhals.at (Marinos Yannikos)
Date: Thu, 22 May 2008 18:54:52 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To:
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net> <48359A1B.2030906@geizhals.at>
Message-ID: <4835A55C.4020908@geizhals.at>
max demmelbauer schrieb:
> aber irgendwo ist ganz sicher ein fehler bei uns im code, und der
> bringt mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende
> 5x den server restarten muss ;)
Circular references sollten eher selten sein, aber du kannst auch mal
das testen:
http://letsgetdugg.com/view/Finding_Circular_Reference_leaks_in_Perl
Idealerweise mit einem single-threaded Apache (apache -X oder httpd -X)
und den Requests aus dem zuvor erw?hnten access.log mit PID eines
aufgeblasenen Prozesses (hab's selbst aber noch nicht verwendet).
MfG,
-mjy
--
Dipl.-Ing. Marinos Yannikos, CEO
Preisvergleich Internet Services AG
Obere Donaustrasse 63, A-1020 Wien
Tel./Fax: (+431) 5811609-52/-55
Handelsgericht Wien - FN 197241K - Firmensitz Wien
From max at stro.at Thu May 22 12:56:16 2008
From: max at stro.at (maximilian attems)
Date: Thu, 22 May 2008 21:56:16 +0200
Subject: [Vienna-pm] Debienna Perl 5.10 Vortrag
Message-ID: <20080522195616.GA5070@stro.at>
Vortragsank?ndigung:
Thomas Klausner (aka domm) - Perl 5.10
Intro + Neue Features
19.06.2008 - 20h00 - (Einlass ab 19h)
Museumsquartier - MQ Electric Avenue - Quintessenz
Die kommende Debian Ausgabe Lenny spielt auf mit der
neuerste Perl release:
$ cat /etc/debian_version
lenny/sid
$ perl -v
This is perl, v5.10.0 built for x86_64-linux-gnu-thread-multi
Ein guter Moment die neuen Funktionen und Verbesserungen
aus erster Hand zu erfahren. domm leitet nicht nur aktiv
der Wiener Perl Community Vienna.pm, sondern ist auch CPANTS
Maintainer. Kwalitee Metrik beeinflusst massgeblich CPAN.
freue mich auf zahlreiches Erscheinen.
happy hacking
--
maks
ps je suis francais et mon allemand est loin d'?tre parfait,
veillez m'en excuser.
From michael.kroell at uibk.ac.at Fri May 23 01:19:05 2008
From: michael.kroell at uibk.ac.at (=?ISO-8859-1?Q?Michael_Kr=F6ll?=)
Date: Fri, 23 May 2008 10:19:05 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To: <4835A55C.4020908@geizhals.at>
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net> <48359A1B.2030906@geizhals.at>
<4835A55C.4020908@geizhals.at>
Message-ID: <48367DF9.3020403@uibk.ac.at>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Marinos Yannikos wrote:
| max demmelbauer schrieb:
|> aber irgendwo ist ganz sicher ein fehler bei uns im code, und der
|> bringt mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende
|> 5x den server restarten muss ;)
|
| Circular references sollten eher selten sein, aber du kannst auch mal
| das testen:
| http://letsgetdugg.com/view/Finding_Circular_Reference_leaks_in_Perl
|
| Idealerweise mit einem single-threaded Apache (apache -X oder httpd -X)
| und den Requests aus dem zuvor erw?hnten access.log mit PID eines
| aufgeblasenen Prozesses (hab's selbst aber noch nicht verwendet).
Bis das Problem gefunden ist, sollte auch etwas wie Apache::SizeLimit
oder monit Dich bewahren, den Server dauernd neuzustarten.
lg,
michael
- --
063A F25E B064 A98F A479 1690 78CD D023 5E2A 6688
http://zis.uibk.ac.at/.m/uibk.ac.at_pgp_pubkey.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (MingW32)
iD8DBQFINn35eM3QI14qZogRAshFAJwPnyHtGUyfIKk4R2X1heZGems2JwCcCK1b
hN0vPjimjq4NRKWb1L3Y47U=
=raZB
-----END PGP SIGNATURE-----
From domm at cpan.org Mon May 26 13:09:38 2008
From: domm at cpan.org (Thomas Klausner)
Date: Mon, 26 May 2008 22:09:38 +0200
Subject: [Vienna-pm] Einladung zur ordentlichen Generalversammlung 2008 der
Vienna Perl Mongers
Message-ID: <20080526200938.GC12154@d610.chello.at>
Einladung
zur ordentlichen Generalversammlung der
Vienna Perl Mongers
Verein zur Foerderung der Programmiersprache Perl
am 9. Juni 2008, 19:00
im Revdev-B?ro, Praterstrasse 15/3/22, 1020 Wien
Tagesordnung:
1. Begruessung
2. Genehmigung der Tagesordnung
3. Bestaetigung der Rechnungspruefer fuer das abgelaufene Jahr
4. Bericht des Obmannes
5. Bericht des Kassiers
6. Bericht der Rechnungspruefer
7. Entlastung des Vorstandes
8. Neuwahl des Vorstandes
Wahlvorschlag:
Obmann Thomas Klausner
Schriftfuehrer Peter J. Holzer
Kassier Roland Lammel
9. Bestellung der Rechnungspruefer fuer das kommende Jahr
10. Eingelangte Antraege
Antraege koennen bis spaetestens 5. Juni bei einem der
Vorstandsmitglieder (bevorzugt beim Schriftfuehrer) per E-Mail eingereicht werden.
Auf ein zahlreiches Erscheinen freut sich
der Vorstand der Vienna Perl Mongers
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From domm at cpan.org Mon May 26 13:48:30 2008
From: domm at cpan.org (Thomas Klausner)
Date: Mon, 26 May 2008 22:48:30 +0200
Subject: [Vienna-pm] Einladung zur ordentlichen Generalversammlung 2008
der Vienna Perl Mongers
Message-ID: <20080526204830.GF12154@d610.chello.at>
Hi!
On Mon, May 26, 2008 at 10:09:59PM +0200, Thomas Klausner wrote:
> Einladung > zur ordentlichen Generalversammlung der
2 Erg?nzungen:
a) Ich w?rde sagen, wir holen uns w?hrend der GV (bzw zum Beginn
derselben) was zum Essen (Sushi und/oder Pizza), bitte also um kurze
Meldung, wer zu kommen gedenkt.
b) Nachher gehen wir noch irgendwohin sauf^wplaudern. Wohin ist noch
offen, aber irgendwo in der Naehe halt:
- Shabu (hat keinen Gastgarten)
- Strandbar Hermann (voller Fussballfans)
- irgendwo am Donaukanal? Adria Wien?
- Fluc kann wenns warm ist ganz nett sein
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
From prozessor13 at gmx.net Fri May 30 01:53:15 2008
From: prozessor13 at gmx.net (max demmelbauer)
Date: Fri, 30 May 2008 10:53:15 +0200
Subject: [Vienna-pm] mod_perl + speicherproblem
In-Reply-To: <4835A342.7050001@geizhals.at>
References: <02AECB4B-AECF-46F1-B2C8-94C4C71C430F@gmx.net>
<48359A1B.2030906@geizhals.at>
<4835A342.7050001@geizhals.at>
Message-ID: <3A8FFDD9-D638-4685-9577-223CA2E8E269@gmx.net>
so.. ich hab jetzt ein wenig mehr rausgefunden:
* die 120 MB kommen zustande weil am apache 3 virtualhosts definiert
sind, jeweils mit
PerlOptions +Parent
d.h. es passt eh, weil 3 x 40MB is eben 120.. eh klar, aber hab
einfach nicht dran gedacht...
* ich logge jetzt alle 5 sekunden den output von ps -aux, und bin zu
dem ergebnis gekommen, dass, wenn der server crached, alle apache
instanzen endlos speicher produzieren. d.h. es ist nicht nur ein
bestimmer call, sondern ab einem gestimmten zeitpunkt verfaengt sich
jeder perl prozess irgendwo. vielleicht ist es der mysql-driver..
keine ahnung. (irgendwie koennte es auch noch JSON::XS sein.. hab ich
irgendwie so im gefuehl)
* weiters hat das "MaxRequestsPerChild 100" schon sehr viel gebracht.
war kein absturz seit der umstellung.
* zum setup, es ist eh schon so, dass wir einen perlbal vorgeschalten
haben, und der apache wirklich nur die dynamischen requestes
durchgereicht bekommt.
vielen dank mal fuer eure hilfe, hoffenlich find ich bald
(wahrscheinlich mal per zufall) das eigentliche problem.
lg. max.
On 22.05.2008, at 18:45, Marinos Yannikos wrote:
> max demmelbauer schrieb:
>> ./webtek console (was einfach nur den ganzen applikation-code
>> laedt, und
>> eine command-zeile bereitstellt) bei mir lokal auf einem IC2D 20MB,
>> und
>> auf der athlon64 debiankiste 40MB.
>
> 32bit vs. 64bit Perl wohl (8 byte pointer, alignment, ...), obwohl
> Faktor 2 da eher der worst case sein sollte.
>
>> ich versteh einfach nicht:
>>
>> - erstens: wieso schon mal der unterschied von 20MB zwischen den
>> systemen
>> - zweitens: wieso braucht der apache prozess nochmal 80MB mehr
>> fuer
>> denselben code?
>> - der unterschied zw test/live betrieb im speicher ist auch schon
>> direkt nach dem starten (also unabhaengig von den requests)
>
> D?rfte dann wohl auch auf 32/64 bit zur?ckzuf?hren sein, evtl. auch
> andere Perl-Version?
>
>> - mir ist es auch egal, der prozess kann soviel brauchen wie er
>> will! aber wenn der server immer wieder crached ist es halt sch**e..
>> grrr...
>
> Wir haben schon lange ein Setup wie in
> http://perl.apache.org/docs/1.0/guide/strategy.html#One_Plain_Apache_and_One_mod_perl_enabled_Apache_Servers
> beschrieben, damit k?nnen wir die mod_perl Apaches auf 10-15
> limitieren
> und trotzdem einige 100 Requests parallel abarbeiten (auf statische
> Daten z.B.).
>
> Ansonsten kannst du wohl auch mal FastCGI anschauen, das trennt die
> fetten Perl-Prozesse sauberer vom Apache als mod_perl. Ich warte
> einstweilen auf ein Perl mit Speichermanagement, das die letzten 30
> Jahre Forschung in dem Gebiet nicht verschlafen hat. ;-)
> (zur Not auch eine Version mit drangepfrimmeltem
> http://www.hpl.hp.com/personal/Hans_Boehm/gc/)
>
>> aber irgendwo ist ganz sicher ein fehler bei uns im code, und der
>> bringt
>> mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende 5x den
>> server restarten muss ;)
>
> Du kannst ja mal die Apache-PIDs mitloggen
> (http://httpd.apache.org/docs/1.3/mod/mod_log_config.html - %P) und
> dann
> im access.log nachschauen, welche Requests einen bestimmten Prozess so
> aufgeblasen haben. Vielleicht findest du ja ein sch?nes memory leak
> (ist
> bei mod_perl sehr einfach zu erzeugen, nachdem die globalen
> Variablen ja
> bleiben).
>
>> eine vermutung ist auch ein `cmd` aufruf im applikationscode (darf/
>> soll
>> ich sowas im mod_perl env aufrufen?)
>
> http://perl.apache.org/docs/1.0/guide/performance.html#Forking_and_Executing_Subprocesses_from_mod_perl
> Gilt nat?rlich auch f?r backticks...
>
> MfG,
> -mjy
> --
> Dipl.-Ing. Marinos Yannikos, CEO
> Preisvergleich Internet Services AG
> Obere Donaustrasse 63, A-1020 Wien
> Tel./Fax: (+431) 5811609-52/-55
> Handelsgericht Wien - FN 197241K - Firmensitz Wien
> _______________________________________________
> Vienna-pm mailing list
> Vienna-pm at pm.org
> http://mail.pm.org/mailman/listinfo/vienna-pm