Ich wollte nur [...] und dann ist das Universum explodiert.

Projects
Books
Archive
About









    Permalink
  1. Der Zufall ist parteiisch

    Seit kurzem habe ich ja rechts ein kleines Widget das alle 5 min ein zufälliges Bild aus einem Pool auswählt und einsetzt. Das dazugehörige Skript habe ich ja auf CodeCocktail gepostet :) Wie man dem ganze leicht entnehmen kann lasse ich das Skript mitloggen wann und wo welches Bild verwendet wurde. Das mache ich nicht um die Load auf zwetschge zu erhöhen sondern um Allerlei lustige Sachen damit anstellen zu können. Mit ein bisschen spicken in “100 Linux Server Hacks” hab ich jetzt aus:

    07-02-2009-11:00:01 cp /var/www/emotes/emote46.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:05:01 cp /var/www/emotes/emote17.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:10:01 cp /var/www/emotes/emote21.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:15:01 cp /var/www/emotes/emote12.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:20:01 cp /var/www/emotes/emote43.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:25:01 cp /var/www/emotes/emote22.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:30:01 cp /var/www/emotes/emote23.gif /var/www/emotes/mainemote/emote.gif
    07-02-2009-11:35:01 cp /var/www/emotes/emote3.gif /var/www/emotes/mainemote/emote.gif
    ... (1600 weitere Zeilen)

    folgendes er-greppt, gesortet und geuniqed:

    7 : /var/www/emotes/emote28.gif
    9 : /var/www/emotes/emote26.gif
    9 : /var/www/emotes/emote39.gif
    9 : /var/www/emotes/emote48.gif
    9 : /var/www/emotes/emote49.gif
    10 : /var/www/emotes/emote24.gif
    10 : /var/www/emotes/emote34.gif
    10 : /var/www/emotes/emote41.gif
    10 : /var/www/emotes/emote47.gif
    11 : /var/www/emotes/emote22.gif
    11 : /var/www/emotes/emote29.gif
    12 : /var/www/emotes/emote46.gif
    13 : /var/www/emotes/emote32.gif
    13 : /var/www/emotes/emote37.gif
    14 : /var/www/emotes/emote25.gif
    14 : /var/www/emotes/emote33.gif
    14 : /var/www/emotes/emote42.gif
    15 : /var/www/emotes/emote31.gif
    15 : /var/www/emotes/emote35.gif
    15 : /var/www/emotes/emote36.gif
    15 : /var/www/emotes/emote44.gif
    15 : /var/www/emotes/emote45.gif
    16 : /var/www/emotes/emote43.gif
    17 : /var/www/emotes/emote23.gif
    18 : /var/www/emotes/emote38.gif
    19 : /var/www/emotes/emote27.gif
    19 : /var/www/emotes/emote30.gif
    19 : /var/www/emotes/emote40.gif
    48 : /var/www/emotes/emote4.gif
    49 : /var/www/emotes/emote10.gif
    51 : /var/www/emotes/emote11.gif
    53 : /var/www/emotes/emote0.gif
    53 : /var/www/emotes/emote14.gif
    53 : /var/www/emotes/emote18.gif
    56 : /var/www/emotes/emote3.gif
    57 : /var/www/emotes/emote15.gif
    57 : /var/www/emotes/emote16.gif
    57 : /var/www/emotes/emote5.gif
    58 : /var/www/emotes/emote19.gif
    58 : /var/www/emotes/emote1.gif
    58 : /var/www/emotes/emote7.gif
    59 : /var/www/emotes/emote12.gif
    59 : /var/www/emotes/emote17.gif
    59 : /var/www/emotes/emote9.gif
    62 : /var/www/emotes/emote21.gif
    63 : /var/www/emotes/emote8.gif
    67 : /var/www/emotes/emote2.gif
    71 : /var/www/emotes/emote6.gif
    74 : /var/www/emotes/emote13.gif
    74 : /var/www/emotes/emote20.gif

    Grob gesagt ist emote20 das am öftesten per Zufall gewählte GIF und das 28. das am wenigsten ausgewählte. Wie das zu machen ist ist garnicht so schwer wies eigentlich aussieht :) Der Befehl lautet wie folgt:
    for x in `cat /var/log/emote.log | awk '{print $3 }' | sort | uniq`; do grep $x /var/log/emote.log | wc -l | tr -d '\n'; echo " : $x"; done | sort -k 2 -rn | sort -n >> /var/log/emote.score.log

    Es sieht am Anfang etwas seltsam aus das gebe ich zu. Aber eigentlich ist es nicht anderes als eine Schleife die Systematisch eine geordnete Ausgabe durchgeht :). Um diese lange Kette aus Befehlen nicht jedesmal eintippen zu müssen, hab ich mir einen CronJob eingerichtet der eben diesen Score generiert, in eine Datei speichert und mir täglich um 6:25 per Email zusendet.
    Kontrollwahn ole.

  2. Posted: 2009-02-07 Samstag 13:11 by noqqe
    Tags: | | | | | | | | | |
        Der Zufall ist parteiisch by noqqe, unless otherwise expressly stated, is licensed under BY-NC-SA.

    One Response to “Der Zufall ist parteiisch”

    1. Thomas says:

      Ich würde statt ‘sort -n’ lieber ‘sort -rn’ verwenden, dann solltest du gleich das am meisten ausgewählteste Bild ganz oben haben. Finde ich irgendwie cooler, wenn das oben ist xD

      Ich finde das aber extremst geil, so ein bash-Kommando. Ich habe diesen ähnlichen Befehl auch mal in Linux-Server-Hacks gelesen und war fasziniert. Vor allem wie einfach es ist, wenn man mal einmal durchgestiegen ist!

      Aber warum der Zufall so parteiisch ist, würde mich schon mal interessieren!

    leave a reply