Table of contents

Willkommen in Hamburg

Heute morgen Zwischenstopp Hamburg HBF:

2014-08-04 - public couch potatoes:

↷ 04.08.2014 🠶 #draussengewesen

Beckenupdate 28.07.2014

Viel neues gibts nicht. Ich hab die Lampen erneuert, was man am Foto sieht, stellenweise ist das so hell, dass man kaum was erkennen kann.

2014-09-28 - Becken 28.09.2014:

2014-07-28 - Becken 28.07.2014:

Update 2014-09-28:

So dele. Fadenalgen sind weg. Pflanzen wachsen lassen, häufigere Wasserwechsel und Geduld - so einfach ist das. So sah das Becken eben aus (lange nicht gegärtnert).

Update 2014-08-27:

Im Moment hab ich leider ein Gleichgewichtsproblem im Becken. Ich hatte ja die Lampen wie geschrieben erneuert. Irgendwann muss der CO²-Diffusor unter der Pumpe weggerutscht sein, ich hatte also kaum noch CO² im Becken. UND neulich hab ich ne Menge Pflanzen entnommen für ein neues Becken und eine Bekannte. Dadurch ist das Becken nun aus dem Tritt gekommen. Die Pflanzen wachsen kaum noch und es treten vermehrt Fadenalgen auf. Keine Plage aber auffällig. Sonst musste ich bei jedem Wasserwechsel immer eine Menge gärtnern. Beim letzten Wasserwechsel (vorgestern) war gar nichts zum Gärtnern. Ich habe jetzt den Diffusor korrigiert und zusätzlich einen Trichter darüber angebracht, damit das ganze CO² durch die Pumpe geht. Ansonsten werd ich sehen, ob es sich wieder einpendelt.

↷ 28.07.2014 🠶 #aquarium

Mückenlarven Zucht

Ich züchte seit ein paar Wochen Mückenlarven, und zwar erfolgreich. Das ist richtig einfach, Brennesseln sammeln, in einen Behälter, Wasser rein und draussen etwa 2-3 Wochen stehen lassen. Dabei entsteht Jauche. Dann fischt man die groben Sachen raus und kann dann schon nach kurzer Zeit regelmäßig Mückenlarven rausfischen.

2014-07-20 - Mückenlarven aus der Nähe im Netz:

2014-07-20 - Die Mückenlarven Beute (die Menge hol ich jeden Tag raus!):

2014-07-20 - Der Zuchtbehälter für die Mückenlarven mit der Jauche:

↷ 20.07.2014 🠶 #aquarium

geo.de fliegt raus

Ich betreibe ja seit langer Zeit meinen eigenen River of News, d.h. ein RSS Feed Reader hier auf der Seite. Der ist allerdings aus abmahnungstechnischen Gründen nicht mehr öffentlich, ich nutze ihn also nur privat, und zwar täglich.

Unter anderem habe ich den Feed von GEO im Reader. Da kommt nur selten was neues, und meistens ist es Unfug. Heute hab ich den Feed gelöscht, weil sich der Unfug echt nicht mehr steigern lässt. Was denken die sich dabei?!

2014-07-18 - Geo Unfug:

↷ 18.07.2014 🠶 #river

Autosudo

If you're condemned to use sudo for systems administration on a daily basis you know the problem: working all the time with sudo is annoying. It's ok if you've got to enter sudo only here and there. But on some systems almost everything is only reachable via sudo.

At least it annoyed me, so I put the nightmare to an end. Autosudo consists of a couple of bash functions which - once enabled - learn each entered sudo command and create a temporary wrapper function for it so that you can leave "sudo" the next time you use the command. An example session:

[16.Jul 09:48:22] --- [~] ---
me@machine: % autosudo ena

[16.Jul 09:49:14] — [~][autosudo] — me@machine: % sudo less /var/log/splunk/ticket.log [..]

+++ autosudo: added “less” to auto sudo commands +++

[16.Jul 09:50:32] — [~][autosudo+1] — me@machine: % less /var/log/splunk/ticket.log

[16.Jul 09:50:50] — [~][autosudo+1] — me@machine: % autosudo sh +++ auto sudo enabled for: less +++

[16.Jul 09:50:52] — [~][autosudo+1] — me@machine: % autosudo dis +++ disabling auto sudo commands +++ disabling less

[16.Jul 09:50:58] — [~] — me@machine: % less /var/log/splunk/ticket.log /var/log/splunk/ticket.log: Permission denied

What happens here? First, I enabled the feat with "autosudo ena". Next I called a sudo command "sudo less". Once completed the autosudo facility adds "less" as an autosudo wrapper and notifies me about it. From now on I can just use "less" instead of "sudo less" while achieving the same functionality. Finally I let it display a list of currently autosudo'ed commands ("autosudo sh") and then I disable it with "autosudo dis". Note that the plain "less" call in the end doesn't work anymore since after disabling autosudo "less" was not sudo wrapped anymore. Easy enough.

Here's the code:

autosudo () {
    # enable auto sudo
    case $1 in
        e|ena|enable)
            export AUTOSUDO=1
            export SUDOCMD=`type -p sudo`
            alias sudo=sudoexec
            ;;
        d|dis|disable)
            unset AUTOSUDO
            unalias sudo
            echo "+++ disabling auto sudo commands +++"
            for cmd in $AUTOSUDOCMDS; do
                echo "    disabling $cmd"
                unset $cmd
            done
            ;;
        s|sh|show|status)
            if test -n "$AUTOSUDO"; then
                echo "+++ auto sudo enabled for: $AUTOSUDOCMDS +++"
            else
                echo "+++ auto sudo disabled +++"
            fi
            ;;
        *)
            echo "Usage: autosudo <enable|disable|show>"
            ;;
        esac
}

sudoexec () { # determine sudo cmd and if successfull, alias it away if test -n “$AUTOSUDO”; then if $SUDOCMD $; then cmd=echo "$*" | awk '{ print $1}' if echo “$cmd” | egrep -v “^-” > /dev/null 2>&1; then lambda="/tmp/.lambda.bash.$$" cmd=basename $cmd cat <<EOF > $lambda unalias $cmd function $cmd () { $SUDOCMD $cmd $ } EOF export LAMBDA=$lambda AUTOSUDOCMDS="$AUTOSUDOCMDS $cmd" echo echo “+++ autosudo: added "$cmd" to auto sudo commands +++” echo fi fi fi }

cleanlambda() { if test -n “$LAMBDA”; then rm -f $LAMBDA LAMBDA="" unset LAMBDA fi } PROMPT_COMMAND=“if test -n "$LAMBDA"; then source $LAMBDA; cleanlambda; fi; PS1=’[\033]0;\u@$host:\w\007] $(DATE) — [\w]$(SHAUTOSUDO)$(JOBS) — \u@$host: $CURSOR ‘”

Some words about it: If you call "autosudo ena", then "sudo" will be made an alias to "sudoexec", one of the functions above. "sudoexec" then executes the sudo command as usual and if it returns success it extracts the command and puts it into a wrapper function which it writes into a temporary file. The filename gets exported into the variable $LAMBDA. The most important part is the extension to $PROMPT_COMMAND. I precede it with a little bit of code which looks for an environment variable $LAMBDA. If set it assumes it is a file and sources it. This makes the wrapper function available to the current bash environment.

↷ 16.07.2014 🠶 #source