[Scripting Contest] Meillos Besucherlog
[Scripting Contest] Meillos Besucherlog
Thema des diesmaligen Scripting Contest: Baue mit beliebigen (aka von-Meillo-gewünschten) Mitteln eine Grafik, die aus Meillos Besucherlog eine hübsche/bunte/gruslige/tolle/langweilige/informative/nichtssagende/etc Infografik erzeugt.
"beliebig": was immer man benutzt, ist dann aber etwas ausserhalb der Konkurenz, denn...
"von-Meillo-gewünscht": das Script soll am Ende regelmässig auf Meillos Serverchen laufen, und da wärs nett wenn es nicht auf zusätzliche Software angewiesen wäre. Wer also was "produktives" schreiben will, ist in der Wahl der Waffen etwas eingeschränkt.
@Meillo: was darfs denn sein? Ich nehme mal an, R gehört nicht dazu? Wie siehts mit gnuplot aus? python/matplotlib? php-gd?
Das Log gibts da: http://tmp.marmaro.de/dfde/dfde-besucher.log
Details zur Idee finden sich im Besucherrekord Thread: viewtopic.php?p=1192779#p1192779
Deadline wie immer Sonntagabend 18:00. Ob die nur für die Scripte oder auch für die Grafiken gelten soll, möge Meillo entscheiden.
Edit: @Meillo: wenn Du magst, editier den Post einfach
Edit von Meillo: @eggy: Okay. Ist aber nicht noetig.
"beliebig": was immer man benutzt, ist dann aber etwas ausserhalb der Konkurenz, denn...
"von-Meillo-gewünscht": das Script soll am Ende regelmässig auf Meillos Serverchen laufen, und da wärs nett wenn es nicht auf zusätzliche Software angewiesen wäre. Wer also was "produktives" schreiben will, ist in der Wahl der Waffen etwas eingeschränkt.
@Meillo: was darfs denn sein? Ich nehme mal an, R gehört nicht dazu? Wie siehts mit gnuplot aus? python/matplotlib? php-gd?
Das Log gibts da: http://tmp.marmaro.de/dfde/dfde-besucher.log
Details zur Idee finden sich im Besucherrekord Thread: viewtopic.php?p=1192779#p1192779
Deadline wie immer Sonntagabend 18:00. Ob die nur für die Scripte oder auch für die Grafiken gelten soll, möge Meillo entscheiden.
Edit: @Meillo: wenn Du magst, editier den Post einfach
Edit von Meillo: @eggy: Okay. Ist aber nicht noetig.
Re: [Scripting Contest] Meillos Besucherlog
LOL!
Das waere doch viel zu einfach, wenn ich euch einfach so sagen wuerde, was fuer Software ``von Meillo gewuenscht'' ist. Nee, da muesst ihr schon meinen Server cracken und selber schauen. Oder meine Ausserungen der letzten Jahre hier im Forum auswerten.
Ich gebe euch aber einen Tipp: Das Spendendiagramm generiere ich mit einem Script, das TRex geschrieben und hier im Forum gepostet hat. Die Technik die dort verwendet wird, habe ich. (Da TRex nun natuerlich einen Vorteil hat, muss ich ihn leider gleich vorweg schon disqualifizieren. Sorry, TRex. Nicht traurig sein. Du darfst trotzdem Vorschlaege einsenden, bekommst halt maximal einen Trostpreis. )
Hmm, wenn ich mir das genauer anschaue, dann sind deine Rateversuche gar nicht schlecht, eggy. Aeh ... hast du etwa schon auf meinem Server nachgeschaut?
Uebrigens habe ich natuerlich auch awk auf dem System, und Textoutput ist ebenso erlaubt. Wer bc oder ed scriptet kann Sonderpunkte bekommen ...
Hach, ich liebe diesen Thread jetzt schon!
Das waere doch viel zu einfach, wenn ich euch einfach so sagen wuerde, was fuer Software ``von Meillo gewuenscht'' ist. Nee, da muesst ihr schon meinen Server cracken und selber schauen. Oder meine Ausserungen der letzten Jahre hier im Forum auswerten.
Ich gebe euch aber einen Tipp: Das Spendendiagramm generiere ich mit einem Script, das TRex geschrieben und hier im Forum gepostet hat. Die Technik die dort verwendet wird, habe ich. (Da TRex nun natuerlich einen Vorteil hat, muss ich ihn leider gleich vorweg schon disqualifizieren. Sorry, TRex. Nicht traurig sein. Du darfst trotzdem Vorschlaege einsenden, bekommst halt maximal einen Trostpreis. )
Hmm, wenn ich mir das genauer anschaue, dann sind deine Rateversuche gar nicht schlecht, eggy. Aeh ... hast du etwa schon auf meinem Server nachgeschaut?
Uebrigens habe ich natuerlich auch awk auf dem System, und Textoutput ist ebenso erlaubt. Wer bc oder ed scriptet kann Sonderpunkte bekommen ...
Hach, ich liebe diesen Thread jetzt schon!
Use ed once in a while!
Re: Scripting Contest
ganz klassisch wieder ne Lösung mit python/matplotlib: 40539
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Scripting Contest
Leider bekomme ich folgende Meldung:
Code: Alles auswählen
import urllib.request
ImportError: No module named request
Use ed once in a while!
Re: [Scripting Contest] Meillos Besucherlog
urllib ist verdammt instabil über python 3.x hinweg... aber ich glaub, hier liegt das Problem darin, dass du es mit python2 ausgeführt hast
War eh nur 90% copypaste vom Spendenscript
War eh nur 90% copypaste vom Spendenscript
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: [Scripting Contest] Meillos Besucherlog
@Meillo: das disqualifizierte Dinotier da drüben schummelt! *mit Finger drauf zeig*
Deadline wie üblich Sonntagabend? Oder diesmal ohne?
Macht sonst noch jemand mit?
Deadline wie üblich Sonntagabend? Oder diesmal ohne?
Macht sonst noch jemand mit?
Re: [Scripting Contest] Meillos Besucherlog
Da ich aber nun mal viel hübscher bin als Ihr, könnt Ihr gleich aufgeben.eggy hat geschrieben:19.12.2018 21:51:48... eine Grafik, die aus Meillos Besucherlog eine hübsche/bunte/gruslige/tolle/langweilige/informative/nichtssagende/etc Infografik erzeugt.
(Ich weiß, dass "niemand" hier die Rechte auf Scherze gepachtet hat, aber ich probiere es trotzdem mal.)
Re: [Scripting Contest] Meillos Besucherlog
Ich sag mal so: Pluspunkte, wenn es mit Python2 laeuft. Dein Spendenscript habe ich damals auch angepasst. Jetzt habe ich den urllib-Teil mal ersetzt durch:TRex hat geschrieben:20.12.2018 16:23:16urllib ist verdammt instabil über python 3.x hinweg... aber ich glaub, hier liegt das Problem darin, dass du es mit python2 ausgeführt hast
Code: Alles auswählen
import urllib
...
html = urllib.urlopen('http://tmp.marmaro.de/dfde/dfde-besucher.log').read()
Wobei ich mich auch dazu aufraffen koennte, mal ein Python3 zu installieren ...
War eh nur 90% copypaste vom Spendenscript
Ich hab's schon geseh'n. Schummeln ist aber erlaubt. Abschreiben und Ideen klauen wird sogar gern gesehen ... solange es am Ende keine Einheitsloesungen gibt.eggy hat geschrieben:20.12.2018 16:32:57@Meillo: das disqualifizierte Dinotier da drüben schummelt! *mit Finger drauf zeig*
Lass es uns ruhig so machen wie immer: Veroeffentlichungen am Sonntag Abend. Anschliessend kann man die Loesungen diskutieren und noch auf fremden Loesungen aufbauende bessere Loesungen einreichen.Deadline wie üblich Sonntagabend? Oder diesmal ohne?
Ich freue mich ueber weitere Mitmacher. (Es ist egal in welcher Technologie. Die Aktion soll Spass machen; das ist das Wichtigste!)
Use ed once in a while!
Re: [Scripting Contest] Meillos Besucherlog
@Phineas: Da hast du was falsch verstanden. Das ist kein Beauty-Contest, sondern ein Scripting-Contest. Dein Script muss schoen sein oder seine Ausgabe, nicht aber der Programmierer.Phineas hat geschrieben:22.12.2018 00:18:00Da ich aber nun mal viel hübscher bin als Ihr, könnt Ihr gleich aufgeben.eggy hat geschrieben:19.12.2018 21:51:48... eine Grafik, die aus Meillos Besucherlog eine hübsche/bunte/gruslige/tolle/langweilige/informative/nichtssagende/etc Infografik erzeugt.
Use ed once in a while!
- whisper
- Beiträge: 3376
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: [Scripting Contest] Meillos Besucherlog
Du grottenhässlicher Raabe?Phineas hat geschrieben:22.12.2018 00:18:00Da ich aber nun mal viel hübscher bin als Ihr, könnt Ihr gleich aufgeben.
(Ich weiß, dass "niemand" hier die Rechte auf Scherze gepachtet hat, aber ich probiere es trotzdem mal.)
Ich habe wenigstens Charakter und kann kochen
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: [Scripting Contest] Meillos Besucherlog
Die relevante Frage ist: Kannst du auch ein huebsches DFDE-Besucher-Diagramm generieren lassen?
Use ed once in a while!
- whisper
- Beiträge: 3376
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: [Scripting Contest] Meillos Besucherlog
Ja. Aber ich will nicht. In Fact, keine Zeit momentan, aber ich habe sowas ähnliches für Spam-Lern, mit gnuplot gemacht. Das kannst du anpassen.
Code: Alles auswählen
#!/bin/bash
gnuplot -persist <<-EOF
set title 'Gelernte SPAM E-Mails'
set ylabel 'Anzahl'
set xdata time
set timefmt '%Y-%m-%d'
set xrange ['2018-11-01':'2018-12-31']
plot '/tmp/x.dat' using 1:2 with lines
EOF
Code: Alles auswählen
Datum SPAM
2018-11-03 476
2018-11-05 479
2018-11-08 487
2018-11-12 492
2018-11-15 501
2018-11-19 512
2018-11-22 522
2018-11-26 531
2018-11-29 537
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: [Scripting Contest] Meillos Besucherlog
Das Schummeln war nur aufs Codeposten vor Ablauf der Deadline bezogen.Meillo hat geschrieben:22.12.2018 08:39:05Ich hab's schon geseh'n. Schummeln ist aber erlaubt. Abschreiben und Ideen klauen wird sogar gern gesehen ... solange es am Ende keine Einheitsloesungen gibt.
An der jetzigen Aufgabe ist interessant, dass man die Daten sehr unterschiedlich interpretieren und darstellen kann. Mal sehen, ob alle in die gleiche Richtung gedacht haben.
-
- Beiträge: 385
- Registriert: 16.06.2017 09:52:36
Re: [Scripting Contest] Meillos Besucherlog
Da kann man doch nicht widerstehen... Und ich habe ja noch nie was mit awk gemacht...
Also hier eine einfache Lösung fürs Terminal. Die "dependencies" sind ja alle Standard.
[EDIT] Code entfernt. Tut mir wirklich leid, dass ich mein script nicht erst zum Veröffentlichungstermin veröffentlicht habe. Das habe ich nicht kapiert - ist mein erster "scripting contest". [/EDIT]
Der Multiplikationsfaktor "k", der vor Zeilen angezeigt wird, die zu lang sind fürs Terminal, ist natürlich nur ein ungefährer Wert, da er stets abgerundet ist. Dient also nur zur ungefähren Einschätzung der Größenordnung.
Auf einen Test, ob das Terminal von der Breite her ausreicht, habe ich mal verzichtet, damit es nicht zu unübersichtlich wird. (Und ist ja in diesem Fall auch nicht wirklich nötig.)
Also hier eine einfache Lösung fürs Terminal. Die "dependencies" sind ja alle Standard.
[EDIT] Code entfernt. Tut mir wirklich leid, dass ich mein script nicht erst zum Veröffentlichungstermin veröffentlicht habe. Das habe ich nicht kapiert - ist mein erster "scripting contest". [/EDIT]
Der Multiplikationsfaktor "k", der vor Zeilen angezeigt wird, die zu lang sind fürs Terminal, ist natürlich nur ein ungefährer Wert, da er stets abgerundet ist. Dient also nur zur ungefähren Einschätzung der Größenordnung.
Auf einen Test, ob das Terminal von der Breite her ausreicht, habe ich mal verzichtet, damit es nicht zu unübersichtlich wird. (Und ist ja in diesem Fall auch nicht wirklich nötig.)
Zuletzt geändert von RobertDebiannutzer am 22.12.2018 18:10:20, insgesamt 1-mal geändert.
Re: [Scripting Contest] Meillos Besucherlog
Wow, echt beeindruckend diese grassierende Leseschwäche hier...
-
- Beiträge: 385
- Registriert: 16.06.2017 09:52:36
Re: [Scripting Contest] Meillos Besucherlog
@tobo:
Falls Du mich meinst:
So oder so will man sich das Ergbnis - wenn ich das richtig verstanden habe - aber ja hauptsächlich anschauen und eigentlich wäre es ja auch gar nicht nötig, so ein script als cronjob oder so ausführen zu lassen?
Falls Du mich meinst:
Meillo hat geschrieben:19.12.2018 22:08:29Uebrigens habe ich natuerlich auch awk auf dem System, und Textoutput ist ebenso erlaubt.
Und wegen:Meillo hat geschrieben:22.12.2018 08:39:05(Es ist egal in welcher Technologie. Die Aktion soll Spass machen; das ist das Wichtigste!)
Ich habe es fürs Terminal geschrieben und "less" dahintergehängt, damit ihr euch - falls ihr wollt - den von meinem Script generierten Output gemütlich anschauen könnt. Ist doch logisch? Falls mein Script irgendwo zum Einsatz kommen sollte, kann man das entfernen und den output woanders hin leiten - die Anzeigebreite muss mann dann halt als Variable statisch konfigurieren.eggy hat geschrieben:19.12.2018 21:51:48"von-Meillo-gewünscht": das Script soll am Ende regelmässig auf Meillos Serverchen laufen,
So oder so will man sich das Ergbnis - wenn ich das richtig verstanden habe - aber ja hauptsächlich anschauen und eigentlich wäre es ja auch gar nicht nötig, so ein script als cronjob oder so ausführen zu lassen?
Re: [Scripting Contest] Meillos Besucherlog
Lass es uns ruhig so machen wie immer: Veroeffentlichungen am Sonntag Abend. Anschliessend kann man die Loesungen diskutieren und noch auf fremden Loesungen aufbauende bessere Loesungen einreichen.Deadline wie üblich Sonntagabend? Oder diesmal ohne?
-
- Beiträge: 385
- Registriert: 16.06.2017 09:52:36
Re: [Scripting Contest] Meillos Besucherlog
Entschuldigung, tut mir echt leid - Code entfernt...
(Vielleicht mag ein Moderator die Beiträge löschen, dann ist der Thread wieder aufgeräumt.)
(Vielleicht mag ein Moderator die Beiträge löschen, dann ist der Thread wieder aufgeräumt.)
-
- Beiträge: 385
- Registriert: 16.06.2017 09:52:36
Re: [Scripting Contest] Meillos Besucherlog
Äh, jetzt? Eigentlich wollte ich warten, bis jemand anderes gepostet hat, aber jetzt ist ja schon längst über 18:00...
Dafür habe ich mein Scriptchen doch nochmal überarbeitet, sodass es nun etwas elaborierter ist:
Edit: Tippfehler...
Dafür habe ich mein Scriptchen doch nochmal überarbeitet, sodass es nun etwas elaborierter ist:
Code: Alles auswählen
#!/bin/sh
# tested with: bash, dash, busybox ash, busybox sh
# checked with "shellcheck -s bash" / "shellcheck -s dash" (no complaints)
# depends on:
# awk (package mawk - that is what I have)
# tput (package ncurses-bin) (not needed for option "-o")
# wget (package wget)
# less (package less) (not needed for option "-o")
# options:
# -o[number] output to stdout instead of piping it to less
# a number is required to calculate display width
# if output to stdout, use cat
if [ -n "$1" ]; then
cmd () { cat; }
else
if [ ! -t 1 ]; then
# output to less, but no terminal? Seems wrong...
exit 1
fi
cmd () { less; }
fi
# calculate display width
case "$1" in
'-o'*)
cols="${1#\-o}"
;;
*)
cols=$(tput cols)
;;
esac
# get log
log=$(wget -qO- http://tmp.marmaro.de/dfde/dfde-besucher.log)
# calculate length of (date)+(time)+(two spaces)
len=$(echo "$log" | awk 'END{ print length($1)+length($2)+2 }')
# available columns are cols-len
cols=$((cols-len))
# guarantee an arbitrary minimum value for display width
if [ $cols -lt 10 ]; then
exit 1
fi
# "j = $5/2" is an attempt to ensure that most lines are not too long
# print "##################" if a new day begins
echo "$log" | awk -v cols=$cols '{
if ($1 != old) {
print "##################"
}
old = $1
printf "%s %s ", $1, $2
j = $5/2
if (j > cols) {
k = int(j/cols)
j = cols-length(k)-1
printf "%sx", k
}
for (i=0; i<j && i<cols; i++) {
printf "-"
}
printf "\n"
}' | cmd
Re: [Scripting Contest] Meillos Besucherlog
Ich hätts ja eigentlich mit R gemacht,
aber da ich auf Meillos Serverchen kein R hab rumliegen sehen ,
mal was mit Python:
pastebin/?mode=view&s=40543
Hab ne ähnliche Lösung, wie die vom Dino, aber mit nem etwas anderen Ansatz.
gallery/image/1977
oben Script von TRex, unten meins.
aber da ich auf Meillos Serverchen kein R hab rumliegen sehen ,
mal was mit Python:
pastebin/?mode=view&s=40543
Hab ne ähnliche Lösung, wie die vom Dino, aber mit nem etwas anderen Ansatz.
gallery/image/1977
oben Script von TRex, unten meins.
Re: [Scripting Contest] Meillos Besucherlog
Na dann klaue ich mal bei @whisper mit gnuplot...Schummeln ist aber erlaubt. Abschreiben und Ideen klauen wird sogar gern gesehen
Code: Alles auswählen
cd /tmp
wget http://tmp.marmaro.de/dfde/dfde-besucher.log
echo "set term qt persist size 800,400
set title 'dfde Besucher'
set xlabel \"\nDatum und Uhrzeit\"
set ylabel 'Besucheranzahl'
set xdata time
set timefmt '%Y-%m-%d %H:%M'
set xrange ['2018-12-01':'2018-12-31']
set yrange [0:200]
set clip two
plot ['2018-12-01':'2018-12-31'] 'dfde-besucher.log' using 1:5 with lines" > dfde.plt
Das Minuszeichen am Ende ist nur dafür da um gnuplot nicht zu beenden, nur dann funktioniert zoomen oder das Bild mit den Pfeiltasten verschieben...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!
Macht ohne Haftung funktioniert nicht!
-
- Beiträge: 2049
- Registriert: 18.03.2012 21:13:42
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: [Scripting Contest] Meillos Besucherlog
Noch ein weiterer Python3 Beitrag (verspaetet und deshalb außer Konkurrenz):
https://gitlab.com/cronoik/dfdescriptin ... Visitorlog
https://gitlab.com/cronoik/dfdescriptin ... Visitorlog
Hilf mit unser Wiki zu verbessern!