Archiv für den Monat Oktober 2008

Wochentags den Traffic shapen

Sonntag, 19. Oktober 2008

> 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

Referenz

Java Applications zusammen mit Compiz Fusion

Freitag, 17. Oktober 2008

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.

Putty und Cygwin

Sonntag, 12. Oktober 2008

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

Iphone photo test

Sonntag, 05. Oktober 2008

Hier mal noch nen Bild von dem geraet unter schwierigeren Umstaenden.

iphone wordpress application

Sonntag, 05. Oktober 2008

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…