About Lukas Meyer

I am the Co-Founder and CEO of Codebase AG and Digital Archiving Solutions AG. Those are the companies running the cleartier.com infrastructure services and the dasprivacy.com data security services :-) I like: Clean Code, Triple-Nine Uptimes, Linux / Unix, innovative web services, sunny days, coffee, sports and beer.

Joomla 1.5 ist ja schon seit einer Weile draussen. Zeit mal ein paar nette Links & Fakten aufzuschreiben:

Damit auch ein Shell-Script über eine schöne Benutzeroberfläche verfügt, kann man dialog verwenden, um Benutzerinteraktionen darzustellen.

Hier gibts eine deutsche Einführung zu Dialog.

Weitere Doku befindet sich auf der Dialog-Homepage.

Mit xdialog sehen Shell-Scripte auch unter X11 schön aus.

Wenn dialog / xdialog über eine variable angesprochen werden, kann man die beiden Frontends austauschen, da sie Parameter-Kompatibel sind:
DIALOG=/usr/bin/dialog
$DIALOG --textfield

The reconstructor is a program to remaster ubuntu CD-Roms. It’s written in Python and supports (officially) all ubuntu’s up to 7.10. So if one want’s to remaster kubuntu hardy, there’re two issues:

  1. It’s kubuntu.
  2. It’s Hardy.

For issue 1) there are several threads in the reconstructor forum. Here the most important ones:

A lot of (KDE) applications can be configured through reconstructor (third party) modules.

For Issue 2) There’s a simple explanation: It works with hardy, as tested in this configuration:

  • Use a (k)ubuntu hardy Setup as host system to install the reconstructor on.
    • We’ve got the X86 Kubuntu 8.04 Hardy for this.
  • The usplash works, pcx unknown (Diego has to try out the newest ISO yet)
  • Apt has changed a lot: You can’t add to /etc/apt/sources.list with constructor.
    • Hardy has a /etc/apt/sources.list.d/ directory now, you can put multiple source files there.
  • We remastered kubuntu, so the GNOME customization wasn’t used.
  • The VMPlayer plugin doesn’t work since hardy uses a new kernel, thus manual install works.

A tip if the terminal doesn’t start up: Execute the command “xhost +” on a console of your box.

If you need more documentation: Reconstructor is pretty well documented.

Rund um das Symfony Framework gibts eine ganze Menge Cheat Sheets:

Aufbau & Konfiguration:

Model & Database:

View Layer:

Testing:

Coding locally and testing on a remote server, is often troublesome.
For example, forgetting to update the server results in useless tests.
Easiest way is to automatically synchronize the wanted folders.

For Windows I use WinSCP, which allows to easily to keep a remote directory updated.
For Linux, there is a script from Lukas Meyer:

  • livesync
    #!/bin/bash
    #infinite loop, we can end the script hitting ctrl+c
    #define options as array
    declare -a options#set first empty position with new value
    options[${#options[*]}]=”site1″;
    options[${#options[*]}]=”site2″;
    options[${#options[*]}]=”site3″;while [ true ] ; do
    #we create a menu to select which site to update
    select site in “${options[@]}” ; do
    #based on the selection, the syncscript with the proper arguments is called
    case ${site} in ${options[0]})
    syncscript /site1/local/folder server_ip1 username1 password1 /var/www ;
    ;;
    (site2)
    syncscript site2/local/folder server_ip2 username2 password2 site2/remote/folder ;
    ;;
    (site3)
    syncscript site3/local/folder server_ip3 username3 password3 site3/remote/folder ;
    ;;
    esac;
    done
    done
  • syncscript
    #!/usr/bin/expect -f
    #the she bangs line, to find out the path to expect on your system, type "which expect" on the shell
    #we get the command line arguments
    set localfolder [lrange $argv 0 0]
    set server_ip [lrange $argv 1 1]
    set username [lrange $argv 2 2]
    set password [lrange $argv 3 3]
    set remotefolder [lrange $argv 4 4]#this disables the timeout, so our script waits as long as it takes for the transfer
    set timeout -1
    #this calls rsync based on the command line args
    spawn rsync -r -a -v $localfolder $username@$server_ip:$remotefolder –exclude .svn
    #this avoids that if the output is to large, the earlier bytes won’t be fotgotten
    match_max 100000#we’re expecting the password prompt, we use a pattern so it can be anything that contains password: or Password
    expect “*?assword:*”
    #after we get the prompt we send the password
    send — “$password\r”
    #then we send a newline to make sure we get back to the command line
    send — “\r”#wait for the end-of-file in the output
    expect eof

Das Ding mit dem XDebug hatten wir ja schon mal… Folgendes hat sich neu ergeben:

  • Launchpad bietet ein php5-xdebug package für Ubuntu Gutsy.
  • Der XDebug lässt sich somit einfach installieren, z.B. in einer VMWare-Appliance
  • Das Eclipse PDT hat einen XDebug-Support integriert.

Die Konfiguration serverseitig ist recht einfach:

xdebug.remote_enable = on
xdebug.remote_host = 192.168.237.1 # ACHTUNG: Das ist die Workstation mit Eclipse

In der Datei /etc/php5/conf.d/xdebug.ini bearbeiten.

In Eclipse muss schliesslich unter “Window” -> “Preferences” der Browser eingestellt werden. Bei Firefox reicht als Parameter ein simples %URL%. Im Debug Dialog muss eine “PHP-WebPage” konfiguration angelegt werden. In der Server-Konfiguration müssen beim Tab “File Mapping” die absoluten Pfade zu den Dateien angelegt werden. Die Online-Hilfe von Eclipse bietet weitere Infos.

Multi-User Environment / Entwickler hinter der Firewall: Für solche Dinge gibts einen Proxy fürs DBGp (Debug Protocol). Dieser muss verwendet werden, wenn der PHP-Server nicht auf den Port des Clients (also den PC mit Eclipse) zugreifen kann, oder wenn mehrere User sich eine Debug-Session teilen möchten.

Da wir in Zukunft Daten über Kundenzufriedenheit und -Feedback per Umfrage einsammeln möchten, habe ich heute mal eine webbasierte Survey-Software evaluiert. Die Evaluation gestaltete sich einfach, nachdem ich mit ein wenig Googlen eine Vergleichstabelle gefunden habe.

Ein wenig mehr googeln ergab, dass die Liste wohl ziemlich akkurat ist, also bin ich die Programme auf der Liste kurz durchgegangen. Langer Rede kurzer Sinn: LimeSurvey ist die Wahl!