Wii für Frauen: Shii
Dank für diese Information geht an den Herren hier.
Wii für Frauen: Shii
Dank für diese Information geht an den Herren hier.
> nano /root/bin/burst.sh
#!/bin/bash
# set -x
TC=/sbin/tc
# variablen
ext_dev=eth0
# bw_up muss etwas kleiner sein als der wirkliche upstream, sonst bringt alles nix
bw_up=768kbit
case $1 in
start)
# wenn schon konfiguriert => alles loeschen
if [ -n "`$TC qdisc show dev $ext_dev`" ]
then
$TC qdisc del dev $ext_dev root
fi
# root qdisc (queuing discipline) anlegen
$TC qdisc add dev $ext_dev root handle 1: htb default 30 r2q 6
# root class anlegen
$TC class add dev $ext_dev parent 1: classid 1:1 htb rate $bw_up burst 2k prio 0
# jetzt 4 klassen anlegen
# (die summe der rates darf nicht groesser sein als die rate des parents)
# 1) tcp acks (pakete <= 64byte) haben höchste Priorität
$TC class add dev $ext_dev parent 1:1 classid 1:10 htb rate 20kbit ceil 80kbit quantum 3333 prio 0
# 2) bevorzugter Traffic
$TC class add dev $ext_dev parent 1:1 classid 1:20 htb rate 75kbit ceil $bw_up quantum 12500 prio 1
# 3) Die Standardklasse
$TC class add dev $ext_dev parent 1:1 classid 1:30 htb rate 20kbit ceil $bw_up quantum 3333 prio 2
# 4) benachteiligter traffic (z.b. edonkey)
$TC class add dev $ext_dev parent 1:1 classid 1:40 htb rate 10kbit ceil 112kbit quantum 1666 prio 3
# jetzt werden die Filter angelegt, die die pakete je nach markierung durch
# iptables in die einzelnen klassen lenken
$TC filter add dev $ext_dev parent 1: prio 0 protocol ip handle 10 fw flowid 1:10
$TC filter add dev $ext_dev parent 1: prio 1 protocol ip handle 20 fw flowid 1:20
$TC filter add dev $ext_dev parent 1: prio 2 protocol ip handle 30 fw flowid 1:30
$TC filter add dev $ext_dev parent 1: prio 3 protocol ip handle 40 fw flowid 1:40
exit 0
;;
stop)
$TC qdisc del dev $ext_dev root &> /dev/null
exit 0
;;
esac
echo "usage: $0 [start|stop]”
exit 1
> crontab -e
# burst traffic on working days
0 8 * * 1-5 /root/bin/burst.sh start
0 20 * * 1-5 /root/bin/burst.sh stop
Bislang waren die beiden nicht gerade die besten Freunde, entweder leere Fenster oder der Verlust des Tastaturfokus war an der Tagesordnung. Ein bekannter Hack - zumindest um die grauen Fenster zu umgehen - war, AWT_TOOLKIT=MToolkit als Environment Variable zu setzen. Dazu hat man immer öfter gelesen, daß die Java Version 1.6.10 das Problem ohnehin behebt.
Ok, da ich nun euphorisch daran interessiert war, meine Programme normal nutzen zu können, habe ich vorsichtshalber beides befolgt (letzte Java Version und AWT_TOOLKIT exportiert). Leider war das Problem mit dem Tastaturfokus bei Intellij Idea und Netbeans immernoch oft da, so daß man quasi nur mit Eclipse arbeiten konnte. Heute, nach ein wenig weiterer Recherche, kam die Rettung für ein sorgenfreies Entwickeln unter Ubuntu mit Compiz Fusion:
Man darf die Environment Variable AWT_TOOLKIT mit der Beta Version von Java 1.6.10 nicht gesetzt haben. Prüfen kann man das einfach durch Eingabe von echo $AWT_TOOLKIT im Terminal. Hier sollte keine Ausgabe erscheinen. Wenn dem trotzdem so ist, dann gibt es zwei heiße Kandidaten, wo die Variable gesetzt sein könnte: /etc/environment oder ~/.bashrc; dort einfach auskommentieren.
Die letzte Beta oder Release Candidate von Java 1.6.10 bekommt man hier.
Cygwin ist eine schöne und freie Posix Umgebung für Windows, welche aber leider ein ordentliches Terminal vermissen lässt. Man kann zwar einen X-Server automatisch starten und dann mit xterm arbeiten, so ganz toll ist das aber auch nicht, weil die Schriften nicht so einfach auszutauschen sind und es wirkt insgesamt immer ein bisschen hakelig.
Ok, nun bin ich schonmal über einen Putty Patch gestolpert, der sich mit Cygwin verbinden kann. Leider habe ich es noch nicht hinbekommen gehabt, heute dann doch. Zunächst muss man die modifizierte Version von Putty laden http://code.google.com/p/puttycyg/ und entpacken, sagen wir mal nach ‘D:\opt\puttycyg-20071202′.
Jetzt ist das Putty genauso startklar wie ein normales, wie kommt man nun aber zu einer lokalen Bash? Auch einfach, man muss es nur wissen

Diese Einstellung speichert man - wie hier zu sehen - gleich mal unter ‘localhost’ ab, damit man nicht immer die Konfiguration vornehmen muss. Nach dem Doppelklick geht das auch soweit.
Nun wäre es aber noch schön, die lokale Session nicht erst immer über die Putty Abfrage zu starten. Dafür bauen wir noch eine Verknüpfung (man beachte den Parameter -load localhost am Ende der Datei).

Bei Bedarf tauscht man noch das Icon gegen “C:\cygwin\Cygwin.ico” aus und man hat eine wunderschöne und schnelle Startverknüpfung zu einem ordentlichen lokalen Terminal.
Nun fehlen nur noch Cygwin- oder Bash spezifische Einstellungen, welche auch gleich noch gemacht werden können. Zum einen fehlen noch die Umlaute in der Bash, das macht die angehangene .Xmodmap Datei, welche ins Home kopiert werden muss. In der .bashrc und der .inputrc werden ein paar Farbwerte gesetzt, die ‘Reverse History Search’ auf die BildAuf/BildAb Tasten gelegt und der Prompt so angepasst, dass der Pfad immer durch einen Doppelklick markierbar ist.
In der .bashrc wird dieser teil unten eingefügt:
export LANG=de_DE
export LANGUAGE=de_DE
export LC_CTYPE=de_DE
export LC_NUMERIC=C
export LC_TIME=de_DE
export LC_COLLATE=de_DE
export LC_MONETARY=de_DE
export LC_MESSAGES=C
export LC_PAPER=de_DE
export LC_NAME=de_DE
export LC_ADDRESS=de_DE
export LC_TELEPHONE=de_DE
export LC_MEASUREMENT=de_DE
export LC_IDENTIFICATION=de_DE
export LC_ALL="de_DE xterm -fn"
export HISTCONTROL=ignoredups
PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]: \[33[01;34m\]\w\[33[00m\] \$ ‘
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}07"'
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
#alias dir=’ls –color=auto –format=vertical’
#alias vdir=’ls –color=auto –format=long’
fi
# coloured grep
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
In der .inputrc fügen wir diese Zeilen ein, damit die History Search funktioniert:
# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward
Und die .Xmodmap sieht so aus:
keycode 8 =
keycode 9 = Escape
keycode 10 = 1 exclam
keycode 11 = 2 quotedbl twosuperior
keycode 12 = 3 paragraph threesuperior
keycode 13 = 4 dollar
keycode 14 = 5 percent
keycode 15 = 6 ampersand
keycode 16 = 7 slash braceleft
keycode 17 = 8 parenleft bracketleft
keycode 18 = 9 parenright bracketright
keycode 19 = 0 equal braceright
keycode 20 = ssharp question backslash
keycode 21 = apostrophe grave
keycode 22 = BackSpace
keycode 23 = Tab
keycode 24 = q Q at
keycode 25 = W
keycode 26 = E
keycode 27 = R
keycode 28 = T
keycode 29 = Z
keycode 30 = U
keycode 31 = I
keycode 32 = O
keycode 33 = P
keycode 34 = Udiaeresis
keycode 35 = plus asterisk asciitilde
keycode 36 = Return
keycode 37 = Control_L
keycode 38 = A
keycode 39 = S
keycode 40 = D
keycode 41 = F
keycode 42 = G
keycode 43 = H
keycode 44 = J
keycode 45 = k K Arabic_kaf
keycode 46 = l L Arabic_lam Greek_lambda
keycode 47 = Odiaeresis
keycode 48 = Adiaeresis
keycode 49 = asciicircum degree
keycode 50 = Shift_L
keycode 51 = numbersign apostrophe
keycode 52 = Y
keycode 53 = X
keycode 54 = C
keycode 55 = V
keycode 56 = B
keycode 57 = N
keycode 58 = m M mu
keycode 59 = comma semicolon
keycode 60 = period colon
keycode 61 = minus underscore
keycode 62 = Shift_R
keycode 63 = KP_Multiply
keycode 64 = Alt_L Meta_L
keycode 65 = space
keycode 66 = Caps_Lock
keycode 67 = F1
keycode 68 = F2
keycode 69 = F3
keycode 70 = F4
keycode 71 = F5
keycode 72 = F6
keycode 73 = F7
keycode 74 = F8
keycode 75 = F9
keycode 76 = F10
keycode 77 = Num_Lock
keycode 78 = Scroll_Lock
keycode 79 = Home KP_7 KP_7 Home
keycode 80 = Up KP_8 KP_8 Up
keycode 81 = Prior KP_9 KP_9 Prior
keycode 82 = KP_Subtract
keycode 83 = Left KP_4 KP_4 Left
keycode 84 = Begin KP_5 KP_5 Begin
keycode 85 = Right KP_6 KP_6 Right
keycode 86 = KP_Add
keycode 87 = End KP_1 KP_1 End
keycode 88 = Down KP_2 KP_2 Down
keycode 89 = Next KP_3 KP_3 Next
keycode 90 = Insert KP_0 KP_0 Insert
keycode 91 = Delete KP_Decimal KP_Decimal Delete
keycode 92 = 0x1007ff00
keycode 93 =
keycode 94 = less greater bar
keycode 95 = F11
keycode 96 = F12
keycode 97 = Home
keycode 98 = Up
keycode 99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
keycode 113 = Mode_switch
keycode 114 = Break
keycode 115 = Meta_R
keycode 116 = Meta_R
Yo, nachdem uns das gute Wordpress an so ziemlich jeder Ecke des internets begegnet, gibt es fuer die mobile usage nun auch (oder vielleicht auch schon ganz lange) ein wordpress plugin. Dieses erlaubt mir, einen vollkommen sinnfreien und inkorrekten Text in der Badewanne zu verfassen. Normal ist das nicht, würden gewisse werbeheinis jetzt sagen. Aber Normal ist leider auch die Tastatur nicht. Mal sehen, wie lange ich diese autokorrektur noch ertragen kann…