|
|
|
|
Achse-des-boesen: 183 (0%)
[DK]Peacemaker: 609 (0%)
Strider: 153 (0%)
cms: 130 (0%)
GH@NDI: 303 (0%)
[C.I.] Reman: 24 (0%)
uniquederking: 1 (0%)
Zensiert: 196 (0%)
Predater-X: 2 (0%)
SkunkyVillage: 14 (0%)
Mobius: 16 (0%)
Borbarad: 5 (0%)
gdshard.morpheus: 59 (0%)
kinglui69: 25 (0%)
psyched: 10 (0%)
Accenture: 1 (0%)
_ernstaugust_: 6 (0%)
Morgil: 21 (0%)
Reborn: 7 (0%)
fantasio: 62 (0%)
golloza: 4 (0%)
SoldatOhneSold: 1 (0%)
rABBI: 138 (0%)
Offroader: 1 (0%)
the_red_monkey: 17 (0%)
GeForz: 16 (0%)
Tschetsch: 71 (0%)
FoxHunter: 204 (0%)
cit: 1 (0%)
Atomsk: 2 (0%)
smouuuuu: 4 (0%)
DogfishHeadcrab: 1 (0%)
[MKKC]Gunman: 2 (0%)
BurninLeo: 1 (0%)
SirSiggi: 1284 (0%)
-Marvin-: 169 (0%)
White[AoT]: 23 (0%)
Meick: 1 (0%)
GarlandGreene: 83 (0%)
dino the pizzaman: 48 (0%)
Teh Ortus: 10 (0%)
Mad_Melone: 37 (0%)
Klappfallscheibe: 1 (0%)
teppi.ulr: 13 (0%)
KingGinord: 5 (0%)
[mathu]: 146 (0%)
Ashtray: 322 (0%)
JCF: 2 (0%)
Renga: 280 (0%)
Arcus: 3 (0%)
OliOli: 31 (0%)
-ernstaugust-: 1 (0%)
comm@nder: 2 (0%)
Cays: 8 (0%)
Schildgrödä: 7 (0%)
token: 62 (0%)
FrankoB.: 3 (0%)
Netbeater: 2 (0%)
Meister Zopf: 48 (0%)
[Dicope]: 585 (0%)
kLm4nN: 23 (0%)
.nomic: 1 (0%)
ppopn: 73 (0%)
B_Fox: 1 (0%)
AcidPils: 6 (0%)
#binbash: 4 (0%)
Oliver: 1 (0%)
unitrialer: 242 (0%)
TheRealPlextor: 4 (0%)
Op3r4tor: 19 (0%)
Chef: 1 (0%)
critical.error: 5 (0%)
v!pe: 348 (0%)
Y2Keeper: 371 (0%)
ezee: 2 (0%)
Der Narr: 1 (0%)
mrmr: 4 (0%)
-=IuM|Voodoo=-: 95 (0%)
Obi-Lan: 1 (0%)
Barracud4: 2 (0%)
FuckFace: 20 (0%)
sackgesicht: 2 (0%)
FredBert: 1 (0%)
Cheaterhossie: 21 (0%)
arazor: 32 (0%)
a1ex: 1 (0%)
dlx: 20 (0%)
Smoking: 68 (0%)
DeineOmi: 8 (0%)
TriggerTG: 1417 (0%)
SirFirewalker: 4 (0%)
McRofl: 1 (0%)
Ja... Sortieren wärs noch gewesen, aber jetzt nicht mehr, jeder Durchlauf dauert knapp 6 Minuten und ich muss auch nochmal schlafen...
/e: Hähä, bei den Prozenten hab ich wohl auch was falsch gemacht.
/e: Falls irgendwer heute Abend noch was dran machen will oder sich in Ruby einlesen will
|
PHP: |
#!/usr/bin/env ruby
require 'rexml/document'
file = File.new("gehirnsalat_kurz.xml")
doc = REXML::Document.new(file)
#puts doc
root = doc.root
counter = Hash.new
total = 0
root.each_element('//gehirnsalat/post/username') do | user |
total += 1
username = user.get_text.value
if (counter[username] == nil)
counter[username] = 0
end
counter[user.get_text.value] += 1
end
#puts counter
counter.each do | user, count |
percent = 100 / total * count
puts user + ":\t" + count.to_s + " (" + percent.to_s + "%)"
end
|
|
Hat natürlich mehr Hack-Charakter als das es in irgent einer Form sauber ist.
Gute Nacht.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von SirSiggi am 19.03.2007 23:40]
|
|
|
|
|
|
Klasse, du musst das natürlich in einer Sprache machen die niemand beherrscht
|
|
|
|
|
|
|
Ruby ist eigentlich total simpel und mit etwas willen in 30 Minuten grundsätzlich erlernbar. Der Rest ist dann wie immer Librarys suchen, Dokumentation lesen, etc. Viel Spass.
Das war mein verdammt nochmal wirklich letzter Post hier heute.
|
|
|
|
|
|
|
| Zitat von SirSiggi
Ja... Sortieren wärs noch gewesen, aber jetzt nicht mehr, jeder Durchlauf dauert knapp 6 Minuten und ich muss auch nochmal schlafen...
/e: Hähä, bei den Prozenten hab ich wohl auch was falsch gemacht.
/e: Falls irgendwer heute Abend noch was dran machen will oder sich in Ruby einlesen will
|
PHP: |
#!/usr/bin/env ruby
require 'rexml/document'
file = File.new("gehirnsalat_kurz.xml")
doc = REXML::Document.new(file)
#puts doc
root = doc.root
counter = Hash.new
total = 0
root.each_element('//gehirnsalat/post/username') do | user |
total += 1
username = user.get_text.value
if (counter[username] == nil)
counter[username] = 0
end
counter[user.get_text.value] += 1
end
#puts counter
counter.each do | user, count |
percent = 100 / total * count
puts user + ":\t" + count.to_s + " (" + percent.to_s + "%)"
end
|
|
Hat natürlich mehr Hack-Charakter als das es in irgent einer Form sauber ist.
Gute Nacht.
| |
|
Code: |
User 'TriggerTG' made 1420 posts. (17.15% of total)
User 'SirSiggi' made 1289 posts. (15.57% of total)
User '[DK]Peacemaker' made 609 posts. (7.36% of total)
User '[Dicope]' made 585 posts. (7.07% of total)
User 'Y2Keeper' made 372 posts. (4.49% of total)
User 'v!pe' made 348 posts. (4.20% of total)
User 'Ashtray' made 322 posts. (3.89% of total)
User 'GH@NDI' made 304 posts. (3.67% of total)
User 'Renga' made 280 posts. (3.38% of total)
User 'unitrialer' made 242 posts. (2.92% of total)
User 'FoxHunter' made 204 posts. (2.46% of total)
User 'Zensiert' made 196 posts. (2.37% of total)
User 'Achse-des-boesen' made 183 posts. (2.21% of total)
User '-Marvin-' made 169 posts. (2.04% of total)
User 'Strider' made 153 posts. (1.85% of total)
User '[mathu]' made 146 posts. (1.76% of total)
User 'rABBI' made 143 posts. (1.73% of total)
User 'cms' made 130 posts. (1.57% of total)
User '-=IuM|Voodoo=-' made 95 posts. (1.15% of total)
User 'GarlandGreene' made 83 posts. (1.00% of total)
User 'ppopn' made 73 posts. (0.88% of total)
User 'Tschetsch' made 71 posts. (0.86% of total)
User 'Smoking' made 68 posts. (0.82% of total)
User 'token' made 62 posts. (0.75% of total)
User 'fantasio' made 62 posts. (0.75% of total)
User 'gdshard.morpheus' made 59 posts. (0.71% of total)
User 'dino the pizzaman' made 48 posts. (0.58% of total)
User 'Meister Zopf' made 48 posts. (0.58% of total)
User 'Mad_Melone' made 37 posts. (0.45% of total)
User 'arazor' made 32 posts. (0.39% of total)
User 'OliOli' made 31 posts. (0.37% of total)
User 'kinglui69' made 25 posts. (0.30% of total)
User '[C.I.] Reman' made 24 posts. (0.29% of total)
User 'kLm4nN' made 23 posts. (0.28% of total)
User 'White[AoT]' made 23 posts. (0.28% of total)
User 'Morgil' made 21 posts. (0.25% of total)
User 'Cheaterhossie' made 21 posts. (0.25% of total)
User 'FuckFace' made 20 posts. (0.24% of total)
User 'dlx' made 20 posts. (0.24% of total)
User 'Op3r4tor' made 19 posts. (0.23% of total)
User 'the_red_monkey' made 17 posts. (0.21% of total)
User 'Mobius' made 16 posts. (0.19% of total)
User 'GeForz' made 16 posts. (0.19% of total)
User 'SkunkyVillage' made 14 posts. (0.17% of total)
User 'teppi.ulr' made 13 posts. (0.16% of total)
User 'psyched' made 10 posts. (0.12% of total)
User 'Teh Ortus' made 10 posts. (0.12% of total)
User 'Cays' made 8 posts. (0.10% of total)
User 'DeineOmi' made 8 posts. (0.10% of total)
User 'Schildgrödä' made 7 posts. (0.08% of total)
User 'Reborn' made 7 posts. (0.08% of total)
User 'AcidPils' made 6 posts. (0.07% of total)
User '_ernstaugust_' made 6 posts. (0.07% of total)
User 'Borbarad' made 5 posts. (0.06% of total)
User 'critical.error' made 5 posts. (0.06% of total)
User 'KingGinord' made 5 posts. (0.06% of total)
User 'golloza' made 4 posts. (0.05% of total)
User 'smouuuuu' made 4 posts. (0.05% of total)
User 'SirFirewalker' made 4 posts. (0.05% of total)
User 'mrmr' made 4 posts. (0.05% of total)
User 'TheRealPlextor' made 4 posts. (0.05% of total)
User '#binbash' made 4 posts. (0.05% of total)
User 'FrankoB.' made 3 posts. (0.04% of total)
User 'Arcus' made 3 posts. (0.04% of total)
User 'Predater-X' made 2 posts. (0.02% of total)
User 'ezee' made 2 posts. (0.02% of total)
User 'JCF' made 2 posts. (0.02% of total)
User 'Netbeater' made 2 posts. (0.02% of total)
User 'Atomsk' made 2 posts. (0.02% of total)
User 'sackgesicht' made 2 posts. (0.02% of total)
User '[MKKC]Gunman' made 2 posts. (0.02% of total)
User 'comm@nder' made 2 posts. (0.02% of total)
User 'Barracud4' made 2 posts. (0.02% of total)
User 'Der Narr' made 1 posts. (0.01% of total)
User 'B_Fox' made 1 posts. (0.01% of total)
User 'BurninLeo' made 1 posts. (0.01% of total)
User 'a1ex' made 1 posts. (0.01% of total)
User 'Klappfallscheibe' made 1 posts. (0.01% of total)
User 'McRofl' made 1 posts. (0.01% of total)
User 'Meick' made 1 posts. (0.01% of total)
User 'Obi-Lan' made 1 posts. (0.01% of total)
User 'Offroader' made 1 posts. (0.01% of total)
User 'cit' made 1 posts. (0.01% of total)
User 'uniquederking' made 1 posts. (0.01% of total)
User 'Accenture' made 1 posts. (0.01% of total)
User 'DogfishHeadcrab' made 1 posts. (0.01% of total)
User 'Oliver' made 1 posts. (0.01% of total)
User '.nomic' made 1 posts. (0.01% of total)
User 'Chef' made 1 posts. (0.01% of total)
User 'SoldatOhneSold' made 1 posts. (0.01% of total)
User '-ernstaugust-' made 1 posts. (0.01% of total)
User 'FredBert' made 1 posts. (0.01% of total)
This statistic took me: 6.6094 seconds
|
|
|
PHP: |
use strict;
use lib "e:/MyModules";
use Modsde;
use Time::Local;
use Time::HiRes qw/gettimeofday tv_interval/;
use XML::Simple;
my $t0 = [gettimeofday];
my $data = XMLin("gehirnsalat.xml");
my %stats; my $total = scalar @{$data->{post}};
foreach(@{ $data->{post} } ) {
my ($uid, $nick) = ( $_->{uid}, $_->{username} );
if(exists $stats{$uid}) {
$stats{$uid}->{count}++;
}
else {
$stats{$uid} = { nick => $nick, count => 1 };
}
}
foreach( sort { $stats{$b}->{count} <=> $stats{$a}->{count} } keys %stats) {
$_ = $stats{$_};
print "User '$_->{nick}' made ".$_->{count}." posts. (".sprintf("%.2f",100*$_->{count}/$total)."% of total)\n";
}
print "This statistic took me: " . sprintf("%.4f", tv_interval($t0)) . " seconds\n";
|
|
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 19.03.2007 23:49]
|
|
|
|
|
|
ich weiß nicht ob ich mich jetzt geehrt fühlen soll, oder eher beschämt
e\ achso, bei mathu sollte man eigentlich auch noch die verschiedenen accounts zusammenfassen
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 19.03.2007 23:53]
|
|
|
|
|
|
ghandi ist lame. der hat unerlaubterweise ahnung von dem, was er da macht. das wirklich geile an siggis lösung ist, dass 130mb ram dabei aufgeblasen werden. und nein, ich will garnicht wissen wofür.
|
|
|
|
|
|
|
Wer erlaubt mir denn nicht, mich damit auszukennen?
Und mein Perl-Programm verbraucht ~60MB Speicher
// Und das auch nur, weil XML::Simple die komplette Datei reinslurpt. Würde man das mit nem While drumrum machen und nur immer einen Datensatz nach dem anderen einlesen würde man da wohl bei 10mb landen
// XML::Parser wäre ne Möglichkeit das ganze on-the-fly mit events zu machen
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von GH@NDI am 19.03.2007 23:54]
|
|
|
|
|
|
Ghandi ist eine Person dessen Wissen so fundiert klingt, dass ich seine Behauptungen niemals bezweifeln würde
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 19.03.2007 23:58]
|
|
|
|
|
|
Wow Ghandi, ist ja enorm wie schnell das geht. Vieleicht ist REXML für solche Zwecke doch eher ungeeignet und ich sollte mir eine andere XML Lib ansehen.
Ich frag mich nur gerade wie 6MB XML in 6 Sekunden geparsed und verarbeitet werden können und kann bis zum Beweis einer besseren Lösung nur neidisch staunen.
| Zitat von rABBI
ghandi ist lame. der hat unerlaubterweise ahnung von dem, was er da macht. das wirklich geile an siggis lösung ist, dass 130mb ram dabei aufgeblasen werden. und nein, ich will garnicht wissen wofür.
| |
Ja... ich sehe REXML ist wohl wirklich nicht für solche Sache zu gebrauchen. Einmal Google nach "rexml slow" sagt wohl alles.
Es gibt allerdings auch andere XML Libs, ich werd mir das morgen mal ansehen... naja... vieleicht auch heute noch D:
|
|
|
|
|
|
scnr intented.
|
im gegentum, ich würde immer zweifeln, wenn es nicht um perl (oder eventuell unixderivate) geht. das scheint irgendwie sein thema zu sein.
€: wie wärs, wenn wir alle zwischenposter kreuzigen?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von rABBI am 20.03.2007 0:01]
|
|
|
|
|
|
Naja, Perl ist zwar verrufen. Aber die wenigsten bedenken, das Perl eben nen super XS-Backend für nativen C-Code hat.
Und die ganzen XML::* Module basieren meist auf SAX.
Nativ in, sowas in Perl zu schreiben wäre vermutlich bedeutend langsamer
Vorallem wenn man mit einem riesen RegEx drüber ginge
|
|
|
|
|
|
|
Ghandi ist ein wandelndes Perl-Kamel mit CPAN aufm Rücken, nur schneller.
/e: Wenn Perl nicht so eine ekelerregende Syntax hätte würd ich's sofort lieben. CPAN ist einfach nicht zu ersetzen und die Sprache ist vor allen Dingen extremst Variabel. Vieleicht sollte ich mich irgendwann doch mal ernsthaft in Perl einlesen, so lange verwende ich für meinen Kram weiterhin mein geliebtes wenn auch nicht immer ganz optimales Ruby.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SirSiggi am 20.03.2007 0:07]
|
|
|
|
|
|
Ich hab mich halt irgendwann für den Perl-way-of-life entschieden und bereue nichts!
|
|
|
|
|
|
|
| Zitat von SirSiggi
Das war mein verdammt nochmal wirklich letzter Post hier heute.
| |
| Zitat von SirSiggi
[...] vieleicht auch heute noch D:
| |
Gehirnsalat-Junky!
|
|
|
|
|
|
|
Ja! Na und?
|
|
|
|
|
|
|
| Zitat von SirSiggi
Ghandi ist ein wandelndes Perl-Kamel mit CPAN aufm Rücken, nur schneller.
/e: Wenn Perl nicht so eine ekelerregende Syntax hätte würd ich's sofort lieben. CPAN ist einfach nicht zu ersetzen und die Sprache ist vor allen Dingen extremst Variabel. Vieleicht sollte ich mich irgendwann doch mal ernsthaft in Perl einlesen, so lange verwende ich für meinen Kram weiterhin mein geliebtes wenn auch nicht immer ganz optimales Ruby.
| |
Man darf dabei jetzt auch nicht ganz vergessen, wie jung Ruby da im vergleich zu Perl ist. Es kann (muss aber nicht) also noch entsprechend wachsen.
Und es hat definitiv den Vortiel der Objektorientiertheit. Dinge wie 10.times {} sind schon toll. Andereseits ist es natürlich wieder enorm ineffizient wenn ich einfach mal nur rechnen will. Und da sehe ich halt die großen Unterschiede von Ruby/Python zu Perl. Während Perl in der Lage ist, in verschiedenen Situationen entsprechend angemessen zu reagieren, zwingen mich die anderen beiden halt doch jedesmal in ein fertiges Konstrukt. Das zwar von der Planung her so umfangreich und flexibel gemacht ist, das ich kaum an Grenzen stoße, aber diesen Vorteil irgendwo ja trotzdem einbüßen muss.
|
|
|
|
|
|
|
Was meinst du mit fertiges Konstrukt? Es gibt zwar viele vorgefertigte Konstrukte, es spricht aber nichts gegen:
while (1..10)
puts $_
end
Ruby hat viel von Perl, nur nutzt man es eher selten, weil es (jedenfalls meiner Ansicht nach) oft einfach hässlich bzw. viel weniger offensichtlich ist.
Selbst größere Ruby-Sources kann man (ich) oft von oben nach unten durchlesen, ohne komplett den Faden zu verlieren, das geht mir bei Perl komplett anders. Wobei natürlich beachtet werden muss das ich mit Ruby wesentlich stärker vertraut bin als mit Perl, das ich Links liegen gelassen hab als ich gemerkt hab das es keinen einfachen Weg gibt mehrdimensionale Arrays zu nutzen (da gibts bestimmt ein CPAN Modul für, nichts? ).
/e: Übrigens sind alle Klassen in Ruby nachträglich veränderbar. Ich könnte also ohne weiteres die each() Methode für Arrays überschreiben und irgendwas anderes tun, wenn ich wollte. Genauso kann man existierenden Klassen weitere Methoden hinzufügen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SirSiggi am 20.03.2007 0:18]
|
|
|
|
|
|
So, für mich heißt es nun: Gute Nacht.
|
|
|
|
|
|
|
Merhdimensionale Arrays? Ein Problem?
|
Code: |
use Data::Dumper;
my @array = (
[
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, "nimm mich!" ],
[ 1, 2, 3, 4 ],
],
[
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
[ 1, 2, 3, 4 ],
]
);
print $array[0]->[3]->[3];
|
|
Gibt wie zu erwarten "nimm mich!" aus.
Evlt eben schnell irgendwo in das Array was reinschieben?
|
Code: |
my @zugabe = ( 7, 8, 9, 0 );
push(@{ $array[1]->[0] }, [ @zugabe ] );
print Dumper [ @array ];
|
|
Und schon isses drin
Vielleicht etwas komplexere Datenstrukturen?
|
PHP: |
$array = [
{
name => "egon",
alter => "22",
haustiere =>
[
"Affe",
"Hund",
"Katze",
]
},
{
name => "michel",
alter => 12,
haustiere => [],
},
{
name => "trigger",
alter => 4711+(2343*-1*2),
haustiere =>
[
"möwen",
"robben",
"bier"
]
}
];
|
|
Für alle die weiterlesen wollen perldoc perldata Perl Datenstrukturen im allgemeinen, perldoc perlref die vielleicht etwas gewöhnungsbedürftigen PerlReferenzen, perldoc perllol und perldoc perldsc nein, das ist keine Witzseite, da geht um Lists-of-Lists. Da wird auch eine sehr komplexe Datenstruktur aufgebaut mit zirkulären Referenzen die sich selbst verwaltet.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 20.03.2007 0:31]
|
|
|
|
|
|
Ich hasse dich.
|
|
|
|
|
|
|
|
|
|
|
Übrigens... falls jemand eine Ruby-Alternative zu Tie::File kennt, der möge sich bei mir melden. Das ist nämlich auch so eines der Module denen ich jedes mal nachtrauere. Ich seh schon, irgendwann werd ich meinen inneren Schweinehund überwinden müssen... irgendwann.
|
|
|
|
|
|
|
Ohja, Tie::File ist ein traum
Wenn ich das früher schon alles verstanden und gewusst hätte, als ich meine Gästebücher noch mit txt-Dateien implementierte. Da wäre Tie::File ein Segen gewesen
|
|
|
|
|
|
|
Hey, Salz und Pfeffer kann ich schon selbst in die Wunde reiben.
|
|
|
|
|
|
|
Hinterher ist man halt immer schlauer
Wenn ich heute an Module wie DBIx::HTML::Widget denke, die aus einer Tabellendefinition on-the-fly ein HTML-Formular bauen. Sowas ist schon nett.
Wirft aber auf Leute wie mich immer so einen Schein, als würde ich den ganzen Tag nur Bauklötze aufeinander setzen. Das stimmt so zwar schon. Aber wenn man mal so überlegt, wieviel Zeit man jedesmal aufs neue damit verschwendet solche Eingabeformulare und deren Werteüberprüfung zu schreiben, dann sind solche Module schon ein riesen Vorteil. Und wenn ich sie nur nutze, um eben schnell nen Rohkonstrukt rauszulassen
|
|
|
|
|
|
|
Naja kinners, ich geh pennen.
Morgen wieder arbeiten.
Und dann mal sehen, ob nicht wenigstens Port 81, 88 oder 8080 nach draußen offen sind. Und wenn dem so ist, dann Tunnel ich mich halt über die FritzBox zum SSH Server
Gute nacht
|
|
|
|
|
|
|
argh. mich greift grad der hass.
2 varianten:
- file_get_contents dann gzuncompress
-> tut nicht
- gzopen, gzread, gzclose
-> tut
ich will ersteres weil bequemeres urlwrapping. warum in aller welt will der den verdammten string nicht dekomprimieren? ich bring den noch um!
|
|
|
|
|
|
|
|
|
|
|
gott wird dich strafen für diesen link.
|
|
|
|
|
|
|
Mumus zu sehen?
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |