Colored bash prompt
with remote IP and load

function TTY
{
  tty|cut -d/ -f 3-
}

function whocount
{
  who | grep `whoami` | wc -l | awk '{print $1}'
}

function remote_ip
{
  if [[ "$SSH_CLIENT" != "" ]]
  then
    echo $SSH_CLIENT | awk '{ print $1" | " }'
  fi
}

function current_load
{
  cur_load=`cat /proc/loadavg | cut -d" " -f1`
  if (( `echo "$cur_load > 1.00" | bc` ))
  then
    echo -e "\e[0;31m$cur_load\e[0m"
  else
    echo -e "\e[0;32m$cur_load\e[0m"
  fi
}

export PS1="[\$(date +'%Y-%m-%d %H:%M:%S')] \$(current_load) | \$(remote_ip)\[\e[0;33m\]\!\[\e[0m\] \[\e[0;36m\]< \$(whocount)|\$(TTY)>\[\e[0m\] \[\e[0;31m\]\u\[\e[0m\]@\[\e[0;35m\]\h\[\e[0m\] \[\e[0;32m\]\W\[\e[0m\]\\$ "

Und so sie es aus:
colored_bash_prompt

Die Spalten der Reihenfolge nach:
Datum, Uhrzeit, load, remote IP (sofern vorhanden), aktuelle Position in der bash history, Anzahl der gleichzeitigen Logins des aktuellen Benutzers, aktueller Benutzer, host, letzter Teil vom Pfadnamen

mysql: Commands out of sync

Letztens kam ich an der php mysqli Fehlermeldung vorbei:

Commands out of sync; you can't run this command now.

Konkret war es bei mir ein select-Statement ausführen nach dem ausführen einer Prozedur mit Rückgabewert. Nach vielem hin und her und noch mehr googeln war keine vernünftige Lösung für das Problem zu finden. Alle Lösungen bezogen sich nur auf mysql_free_result(), was bei meiner Problemstellung keinen Unterschied machte. Nur ein mysqli_next_result($conn) hat die Meldung verschwinden lassen. Angeblich liefern Prozeduren zusätzlich zu dem letzten select-Statement noch ein weiteres Resultset zurück, das weiterführende Informationen zu der Ausführung enthält. Dieses muss man warscheinlich überspringen, damit das nächste Statement auf der gleichen Verbindung ausgeführt werden kann.

Hat nicht geholfen:

Wenn Commands out of sync; you can't run this command now in Ihrem Clientcode gemeldet wird, rufen Sie Clientfunktionen in der verkehrten Reihenfolge auf.

Dies kann zum Beispiel geschehen, wenn Sie mysql_use_result() benutzen und versuchen, eine neue Anfrage auszuführen, ehe Sie mysql_free_result() aufgerufen haben. Oder wenn Sie versuchen, zwei Anfragen, die Daten liefern, auszuführen, ohne dazwischen mysql_use_result() oder mysql_store_result() aufzurufen.

Quelle: mysql Dokumentation

Das einzige was bei mir geholfen hat, war

mysqli_next_result($conn);

vor dem ausführen des nächsten Statements auszuführen.

iOS 6 Zeitungskiosk vom Home-Bildschirm entfernen

Jup, funktioniert wie in der Anleitung. Zeitungskiosk auf die dritte Seite, Ordner wo es hin soll auf die zweite Seite und schwups, ist der vermaledeite Zeitungskiosk vom Home-Bildschirm verschwunden. Jetzt weiss ich auch, was er mit Fingerspitzengefühl meinte. Der Kiosk ist selbst nach einem Neustart noch in dem Ordner. Einziger Wermutstropfen ist, dass jetzt das iPad neu startet, bei dem Versuch den Zeitungskiosk zu benutzen.

20130530-000827.jpg

Menükarte

Der Küchenchef empfiehlt heute folgendes: Gegen schlechte Laune vom fiesen Wetter hilft was deftiges auf den Teller.

Ein paar schöne Häppchen, serviert von Andy Pressure auf dnbradio.com. Ein bischen geschunkel, dark&depp, Kommerz, Manu Chao. Für jeden was dabei, nur laut sollte es aufgetischt werden. Human Traffic 130

Noch warm ist der Mix von heute von Andy Pressure. Hab erst ein paar Minuten gekostet, die aber schon Lust auf mehr machen. Ich sag nur Prodigy… Human Traffic 131

Jetzt aber zurück zu schlechten Launeeeeee…

eigene Töne für das iPad

  • .mp3 oder .wav Datei zu iTunes hinzufügen (zu finden unter Musik)
  • als AAC Version speichern, durch rechte Maustaste auf den gewünschten Tönen
  • auf den AAC Versionen wieder rechte Maustaste und „Im Windows Explorer anzeigen“
  • *.m4a in *.m4r umbenennen und wieder zu iTunes hinzufügen (jetzt unter Töne zu finden)
  • iPad synchronisieren
  • danach sollte man auf dem iPad unter Einstellungen -> Töne die eigenen zur Auswahl haben

ssh + Aptana + subclipse

  1. install subversion on your server
  2. debian: apt-get install subversion subversion-tools

  3. create subversion repository
  4. svnadmin create /var/svn/repos

  5. add svn user and group
  6. adduser --home /path/to/repository --shell /bin/false --no-create-home --disabled-password --disabled-login svn

  7. change file rights and owner of the repository
  8. chown svn:svn /var/svn/repos
    chmod g+w /var/svn/repos

  9. add system (ssh) user to svn group
  10. install Putty suite (with PuttyGen and Plink)
  11. create key with PuttyGen
  12. install subclipse in Aptana/Eclipse
  13. setup Putty-Plink with key authentication for subversion config of Aptana/subclipse
    %APPDATA%[\Roaming\]Subversion\config
    [tunnels] section
  14. ssh = "/path/to/your/plink.exe" -2 -P <other_than_port_22> -i "/path/to/your/private/key/file"

  15. use this url for the repository configuration in subclipse
  16. svn+ssh://user@host/path/to/repository

  17. to access it under the unix console and also with MacOS X
    add to the [tunnels] section of ~/.subversion/config
  18. ssh+<your_ssh_port> = $SVN_SSH_<your_ssh_port> ssh -p <your_ssh_port>

  19. use this command to access the repository
  20. svn checkout svn+ssh+<your_ssh_port>://user@host/path/to/repository[/path/to/project]
    or local on the server
    svn checkout file:///path/to/repository[/path/to/project]

phpmyadmin und Probleme beim Import

Nach der Installation des phpmyadmin wollte ich eine Datenbank aus einem Backup importieren. Leider kam immer wieder die Meldung, „Die Datei konnte nicht gelesen werden“. Suhosin und post_max_size Einstellungen hatten auch keinen Effekt. Das einzige was geholfen hat war, dass man das tmp-Verzeichnis zu der open_basedir Konfiguration im virtuellem Host hinzufügt. Nur dann ist phpmyadmin in der Lage das tmp-Verzeichnis zu nutzen.

<Directory /var/www/pma>
...
php_admin_value open_basedir "/tmp/:/var/www/pma/"
...
</Directory>