Häufigkeiten von factor-levels für Gruppen plotten

Gegeben ist folgende Tabelle:

JAHR LAND
1999 UK
1999 UK
1999 UK
1999 UK
2000 UK
2000 UK
2001 UK
2001 UK
2001 UK
2001 UK
2003 UK
2003 UK
2003 UK
2003 UK
2004 UK
2005 UK
2005 UK
2005 UK
2005 UK
2006 UK
2006 UK
2008 UK
2008 UK
2008 UK
2008 UK
2008 UK
2009 UK
2001 GER
2002 GER
2003 GER
2003 GER
2004 GER
2004 GER
2005 GER
2005 GER
2006 GER
2006 GER
2006 GER
2007 GER
2008 GER
2009 GER
2010 GER
2011 GER
2011 GER
2011 GER
2006 UK
2011 GER
2012 GER
2012 GER
2012 GER
2005 USA
2007 USA
2007 USA
2009 USA
2010 USA
2010 USA
2011 USA
2012 USA
2012 USA

Jetzt möchte ich mit ggplot eine Übersichtsgraphik erstellen. Hierbei soll die X-Achse die Jahreszahlen wiederspiegeln. Auf der Y-Achse sollen die Häufigkeiten der einzelnen Länder pro Jahr angezeigt werden.

Da die Länder-Variable ein factor ist, benötige ich einen ggplot-Code, welcher die Häufigkeiten der einzelnen factor-levels (Länder) gruppiert nach Jahren ausrechnet…

Das funktioniert hier “manuell” per

# Datensatz einlesen
dat < - read.table("http://www.produnis.de/R/Faktorfrequenz.txt", sep="\t", colClasses = "character", header=T)

# Berechnung
with(dat,table(JAHR,LAND))

Aber wie "übersetze" ich das in einen ggplot-Code? Da ggplot selbst statistische Berechnungen durchführen kann, läge der Vorteil eines "reinen" ggplot-Codes darin, dass neue factor-levels (in diesem Fall also ein neues LAND) direkt in der Grafik eingebunden wäre, ohne dass man den Code ändern müsste.

ggplot-Code

Und so funktioniert es:

# Datensatz einlesen
dat < - read.table("http://www.produnis.de/R/Faktorfrequenz.txt", sep="\t", colClasses = "character", header=T)

# plotten
#------------
# Variante 1
ggplot(df, aes(x=factor(JAHR), fill=LAND)) + 
  geom_bar(position="dodge")

FreqPlot1

# Variante 2
ggplot(df, aes(JAHR)) + 
  geom_freqpoly(aes(y= ..count.., fill=LAND, group=LAND, colour=LAND),stat="bin",binwidth=1)

FreqPlot2

# Variante 3
ggplot(df, aes(JAHR)) + 
  geom_area(aes(y= ..count.., fill=LAND, group=LAND),stat="bin",binwidth=1)

FreqPlot3

Weblinks

Siehe auch

Dieser Artikel ist Teil des Handbuchs

Posted in dev/null | Tagged , , | Leave a comment

WakeOnLAN

Damit “Wake on LAN” (WOL) funktioniert, muss zunächst im BIOS des Boards diese Funktion aktiviert werden. Da dies von BIOS zu BIOS unterschiedlich sein kann, findet man hier eine kleine Überischt: https://code.google.com/p/gwakeonlan/wiki/Enable_WOL_Bios.

WOLBIOS1

WOLBIOS2

Grundsätzlich sollte man in den ACPI-Einstellungen direkt nach WakeOnLan-Einträgen suchen, oder beispielsweise PCI/PCIE-Support enablen.

Ist das System wieder hochgefahren, muss das Paket ethtool installiert werden, z.B. per

sudo apt-get install ethtool

Mein Server besitzt nur die On-Board-Netzwerkkarte (eth0). Über diese Karte soll der Server per “Magic Package” geweckt werden. Um diese Funktion zu aktivieren gibt man ein:

sudo ethtool -s eth0 wol g

Damit diese Funktion auch beim Systemstart automatisch zur Verfügung steht, öffnet man die Datei /etc/rc.local mit root-Rechten und trägt den Befehl dort über dem “exit 0″-Eintrag ein. Das sieht bei mir so aus:

#!/bin/sh -e
#
# (...)
#
# By default this script does nothing.
sleep 5
ethtool -s eth0 wol g
exit 0

Standardmäßig wird die Netzwerkkarte beim Herunterfahren deaktiviert, so dass sie keine Packages im Ruhezustand annehmen kann. Um dies zu verhindern, muss in der Datei /etc/init.d/halt der Eintrag NETDOWN=yes geändert werden in NETDOWN=no.

Auf meinem Server funktioniert nun WOL ohne Probleme.

Siehe auch

Dieser Artikel ist Teil des Handbuchs

Posted in Jean Pütz | Tagged , , | Leave a comment

[ssh] SSH-Agent

Möchte man nicht immer das Passwort des geheimen Schlüssels eingeben, kann man den Schlüssel dem SSH-Agent hinzufügen. Dies funktioniert mit dem Befehl:

ssh-add ?/.ssh/id_rsa

Von diesem Zeitpunkt an merkt sich der Agent den Schlüssel, so dass man nun Verbindungen aufbauen kann, ohne das Schlüsselpasswort eingeben zu müssen. Allerdings vergisst der SSH-Agent alle Schlüssel nach einem Neustart wieder.

Siehe auch

Dieser Artikel ist Teil des Handbuch

Posted in Jean Pütz | Tagged | Leave a comment

[ssh] Publik-Keys vergeben

Wem die Authentifizierung uber Passwörter trotz der Verschlüsselung zu unsicher ist, – immerhin könnte das Passwort ja erraten werden – der benutzt am besten das Public-Key-Verfahren.
Hierbei erzeugt man sich einen geheimen Schlüssel sowie ein öffentlichen Schloss. Das Schloss kann man nun auf all jenen PCs im Netzwerk hinterlegen, zu welchen man Verbindungen aufbauen möchte. Der geheime Schlüssel, der (als einziger) das öffentliche Schloss aufschließen kann, verbleibt auf dem eigenen System und darf niemals rausgegeben werden.

Erstellt wird ein solches Schlüssel-Schloss-Paar per:

ssh-keygen -t rsa

Der voreingestellte Dateiname (id_rsa) kann einfach mit der RETURN-Taste bestätigt werden, außer man möchte sich ein weiteres Schlüsselpaar erzeugen.
Von der Benutzung einer leeren Passphrase ist jedoch abzuraten, weil sonst jeder, der evtl. in
den Besitz dieser Datei kommt, sofortigen Zugriff auf alle zugehörigen Systeme erhält.

Das erzeugt Paar liegt nun im Ordner ~/.ssh/:

  • id_rsa = der geheime Schl ?ssel
  • id_rsa.pub = das öffentliche Schloss

Nun muss noch das öffentliche Schloss (zu erkennen an der Endung .pub (also id_rsa.pub oder MEINPAAR.pub), auf dem Zielsystem deponiert werden. Dazu dient das Programm ssh-copy-id:

ssh-copy-id -i ?/.ssh/id_rsa.pub user@server

Siehe auch

Dieser Artikel ist Teil des Handbuch

Posted in dev/null | Tagged , | Leave a comment

[ssh] Rechner-Namen vergeben

Man kann den ssh-Aufruf vereinfachen, wenn man den Rechnern im Netzwerk einen Namen gibt und evtl. den Usernamen übermittelt, mit welchem man sich einloggen m öchte.

Hierzu konfiguriert man die Datei ~/.ssh/config nach folgendem Muster:

Host HOSTNAME
    HostName HOSTIP
    User HOSTUSERNAME

Bei mir sieht diese Datei so aus:

Host bilbo
   HostName 192.168.0.2
   User produnis
Host smeargolLAN
   HostName 192.168.0.3
   User produnis
Host smeargol
   HostName 192.168.0.11
Host gabi
   HostName 192.168.0.5
   User gabi
Host hoerspiel
   HostName 192.168.0.4
   User produnis
Posted in dev/null | Tagged , | Leave a comment

Pakete nachinstallieren

Folgende Pakete installiere ich für gewöhnlich nach einer Neuinstallation:

Repository

sudo apt-get install audacious audacity audex avidemux avidemux-cli bb chromium-browser comix cowsay curl disper dvbcut easytag ethtool ffmpeg figlet flac gftp gimp gmpc gpac gparted guake guvcview iat id3v2 inkscape k3b keepassx kile krename lame latex-beamer mc mencoder mkvtoolnix mp3splt mplayer mysql-server mythtv-frontend nfs-common okular openshot openssh-server p7zip-full pavucontrol pdfsam pdftk phpmyadmin python-pygments qemu-kvm r-recommended revelation rkward samba shutter skype soundconverter streamripper texlive-fonts-recommended texlive-latex-extra thunderbird-locale-de torsocks tuxpaint ubuntu-restricted-extras unison unrar vbrfix vim vlc vorbis-tools wakeonlan winetricks x11vnc xbmc xchat

Da ich nun die ubuntu-restricted-extras installiert habe, kann ich mittels

sudo /usr/share/doc/libdvdread4/install-css.sh

die libdvdcss zur Wiedergabe meiner kopiergeschützten DVDs nachinstallieren.

PPA

Folgende PPAs verwende ich:

sudo add-apt-repository ppa:n-muench/calibre # calibre
sudo add-apt-repository ppa:jd-team/jdownloader # JDownloader
sudo add-apt-repository ppa:narfss/proyectobs # Unity-JDownloader
sudo add-apt-repository ppa:rgibert/ebook # sigil
sudo add-apt-repository ppa:indicator-multiload/stable-daily # Systemlastanzeige

Anschließend:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install calibre indicator-multiload jdownloader unity-jdownloader sigil

Direktlinks

Siehe auch

Dieser Artikel ist Teil des Handbuch

Posted in Jean Pütz, Ubuntu | Tagged , | Leave a comment

Ich mache XY mit Ubuntu

Ubuntu

  1. System
  2. Netzwerk
  3. Multimedia
  4. Software

LaTeX

GNU R

  1. Grafiken
Posted in Jean Pütz, Ubuntu | Tagged , , | Leave a comment

XBMC-Box: Login per ssh

Man erreicht seine XBMC-Box per ssh mittels:

ssh root@IP-DER-BOX

Das Passwort lautet: letmein

Dieser Artikel ist Teil des Handbuchs.

Posted in dev/null | Tagged , | Leave a comment

Georgische scharfe Paste (grün)

Vielen Dank an Nino für dieses georgische Rezept აჯიპა ( მწვანე )

Zutaten

  • Peperoni, grün, lang, scharf – 250 Gr.
  • Koriander – 125 Gr.
  • Petersilie – 70 Gr.
  • Sellerieblätter – 50
  • Knoblauch – 0,1 St.
  • Koriander gemahlen – 0.5 E.L.
  • Salz – 0.5-1 T.L.

Zubereitung

Alle Zutaten in eine elektrische Küchenmaschine nacheinander zerkleinern. Alles in eine große Schüssel füllen, mit dem Salz abschmecken und eine Stunde lang stehen lassen, gelegentlich durchrühren.
Die fertige Paste am besten in Gläser füllen.

siehe auch

Posted in Rezepte | Tagged | Leave a comment

wget mit tor-bundle nutzen

Möchte man wget über das tor-bundle nutzen, funktioniert das Ganze nur über Umwege.

torsocks

Am Einfachsten geht es mit dem Paket torsocks (Danke an claw für den Hinweis):

sudo apt-get install torsocks

Anschließend kann wget wie folgt aufgerufen werden:

torsocks wget http://foo.onion/data.bar

Alternative: Privoxy

Als Alternative zu torsocks kann man sich auch einen kleinen Proxy-Server einrichten. Ich möchte hier zeigen, wie das z.B. mittels Privoxy funktionieren kann:

1. Man installiert Privoxy:

sudo apt-get install privoxy

2. Man fügt am Ende der Datei /etc/privoxy/config folgendes hinzu:

forward-socks5  /  127.0.0.1:9150 .

Wichtig ist der Punkt am Ende der Zeile, sonst wird die Regel einfach ignoriert.
Das tor-bundle horcht standardmäßig auf Port 9150 (manchmal auch auf 9050, siehe sicherheitshalber Vidalia-Log), Privoxy nutzt standardmäßig Port 8118 (siehe config). Nach einem Neustart von Privoxy ist http://localhost:8118 auf das tor-bundle umgebogen:

sudo service privoxy restart

3. Man startet spätestens jetzt das tor-bundle.

4. Nun funktioniert wget mit folgender Option:

wget --execute=http_proxy=http://127.0.0.1:8118 http://foo.onion/data.bar

5. Alternativ kann man sich noch einen alias in der .bashrc anlegen:

alias wgetor='wget --execute=http_proxy=http://127.0.0.1:8118'

So reicht dann der Aufruf:

wgetor http://foo.onion/data.bar

Weblinks

Posted in Ubuntu, ubuntuusers | 2 Comments
« Older