web development

Communicate in Real-Time with online visitors

I really like the LiveChat solution from Livechatinc, it is very easy to integrate into existing projects and the javascript api allows you to enrich the chat session data with whatever you want to identify users, requests or processes. Also included is a ticketing solution as well as tracking and measuring.

LiveChat is an online chat solution that helps you connect with your customers on your website. When using LiveChat, you can see in real time the way visitors behave and approach them on each step of the buying process. This allows you to easily provide instant help and, in result, increase your conversion rates.

LiveChat comes with a ticketing system built into the application. The ticketing system allows you to receive customer queries when you are offline. By creating tickets from your chats, you can stay in touch with customers when you need some time to deal with their cases. You can also receive your support emails as tickets and handle them in one place.

LiveChat comes in three packages tailored to the needs of small, medium and big companies.

With LiveChat, you won’t miss any opportunities to contact your clients. Sign up now for a free 30-day trial. Sign up now

This is what you see from the LiveChat interface as support agent:

Live Chat chat page

New SSD: OCZ Vertex 2 SSD 120GB

My first SSD, the OCZ Apex 120GB, lasted for about 18 months. As replacement I bought another OCZ drive, this time from the Vertex series: OCZ Vertex 2 120GB. I read about the new SandForce 1200 Controller in most modern SSDs and that the Vertex drive uses firmware which is equivalent to the SandForce 1500 controller. The Agility series has the “normal” SandForce 1200 controller and lacks some writing speed in some areas.

Detailed review and comparison to other drives, in german: hardwareluxx.de

The bad minimum read spead (~1mb/s) my old ssd had is gone, as you can see in this HDTach screenshot:


Thank you Windows Home Server

About a year ago I bought a 3TB “NAS” running Windows Home Server: Acer Aspire EasyStore H341.

After a 15 minute setup per machine in my household everything gets automated daily, full backups.

Two days ago my ssd crashed with “SMART status BAD – backup and replace drive”, unable to ignore/boot, windows 7 repair tools didn’t even recognize the drive…


- Drive to the next store with the ssd replacement i wanted: 15 minutes

- New SSD: 200€

- Booting from the Home Server recovery CD, selecting which partitions to recover: 10 minutes

- All ssd partitions restored: 30 minutes (Gbit lan, yay)

- Reboot, working system (only 6h changes lost, luckily I was mostly sorting my mails)

Windows Home Server makes even complete drive failures a non-event, I really love this fine piece of working, reliable soft- and hardware!

Reading browser history with css and javascript

This small script demonstrates how to check if a user has visited a particular url with his browser using css and javascript. Simple trick, small script, but could be dangerous – and you don’t see a damn thing.

The only protection against this of which i know is NoScript or just turning off JavaScript in your browser…

Rotating dom elements with css3 and jscript/jquery animation

If you want to rotate dom elements, webkit offers you

-webkit-transform: rotate(0deg);

and firefox offers you

-moz-transform: rotate(0deg);

I hacked together a small demo rotating dom elements with css including some animation with jscript/jquery.

Nagios: NRPE: Unable to read output error – check_apachestatus_auto.pl

Today I solved a problem I had with check_apachestatus_auto.pl executed via NRPE.

Running the command as root worked fine but, running as user “nagios” just gave no output – which translated to the error message “NRPE: Unable to read output error” on the Nagios NRPE Client.

After checking file permissions, any debug modes and logs i found… i finally got to /tmp and there was it: “……”, a temporary file created by that particular check plugin. Since i tested the plugin first as root, the file had root-only permissions, and the plugin executed as nagios just stopped somewhere while not being able to use/overwrite that file.

I deleted that particular file, and everything works fine now…

OCZ Apex SSD 120GB and How to move a vista boot partition to a new drive

My newest toy arrived today: OCZ Apex SSD 120Gb – a very fast Solid State Drive. The manufacturer tags it with “230mb/s read, 160mb/s write, <0.3ms access time”.

After my six hour hassle of (trying to…) moving the boot partition from my old harddrive to the new one (see the full report/steps below), I was curious about the first performance test, which I used HD Tune for.

This is the result for my old harddrive, a Samsung HD642JJ:


Raw data:

HD Tune: SAMSUNG HD642JJ Benchmark

Transfer Rate Minimum : 55.0 MB/sec
Transfer Rate Maximum : 102.8 MB/sec
Transfer Rate Average : 83.0 MB/sec
Access Time : 13.2 ms
Burst Rate : 135.3 MB/sec
CPU Usage : 4.5%
Temperature : 25°C

And this is the result for my new SSD (OZC Apex SSD 120GB):


Raw data:

HD Tune: OCZ APEX_SSD Benchmark

Transfer Rate Minimum : 1.4 MB/sec
Transfer Rate Maximum : 172.7 MB/sec
Transfer Rate Average : 138.1 MB/sec
Access Time : 0.2 ms
Burst Rate : 129.5 MB/sec
CPU Usage : 5.5%
Temperature : 44°C

As I said before, I moved my bootpartition to the new drive. These are my subjective feelings about the new system:

  • The Windows bootup isn’t that much faster, but I didn’t measure the startup time of the old harddrive. (Still too long…)
  • Applications start much faster now. I think this really is the point where the ridiculous low access time of the SSD kicks in. Zend Studio i.e. is down from ~30 secs to 12. (And I haven’t switched the projects/workspace to a new SSD partition yet!)

The application startup speed, and working with big filecount-intensive projects were the main reasons for me to try out a SSD. So far (this still is my impression after only 2-3 hours of usage) I am very satisfied with the results.

The temperature of the SSD is ~20° warmer, but I think even 44°C is not high enough to care about.

In about one month I will provide you with even more subjective feedback :)

The steps for the Vista bootpartition-move, using Acronis True Image, should be these:

  1. Boot from the Acronis True Image CD
  2. Backup your boot partition from the old drive
  3. Restore the backup to the new drive, mark the new partition active (Cloning didn’t work, because the SSD is much smaller, and the UI doesn’t let me clone just one partition)
  4. Reboot from your Vista Installation disc
  5. Repair the installation on your new drive (the log should show something about “missing bootmanager – fixed”)
  6. Boot from your new SSD
  7. If your bootpartition is not C, fix it this way: How to restore the system/boot drive letter in Windows
  8. Done. Finished. Hopefully.. (At least, you should have 2 layers of backups to restart if something screws up…)

Just two small things OCZ could improve:

  • Inform me as a customer, that there is no SATA cable in the retail box. Every other retail (SATA) harddrive I bought up to this day had at least one packed.
  • As most of the customers will be “switchers” imho, ship something to help with the partition migration process. I will happily pay some more bucks, if it just works.

Error #0 on AIR application installation

I got this errormessage on “some” places while trying to install an AIR application package, while other places just worked fine.

The application could not be installed. Try installing it again. If the problem persists, contact the application author. Error #0

The first step debugging this was to find out where the AIR application installer logs errors – which by default he does not. To activate installer logging, you have to put two files in your home directory (C:\Users\youraccountname\ on Vista or C:\Documents and Settings\youraccoutname\ on XP) called .airappinstall.log and .airinstall.log.

If those two files are present, the logging writes to them automagically.

The error I found there looked like this:

Installing C:\Dokumente und Einstellungen\***\Lokale Einstellungen\Temp\fla12.tmp\setup.msi
Error occurred; beginning rollback: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="1603" errorID=0]

From here on I was very sure that it has to do with privileges… (No, there is no context menu entry on AIR packages to “install as Administrator” or “run as”…)

Finally, I checked the windows event log, and found this:

Product: *** -- Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine.  Log on as administrator and then retry this installation.

Why can’t they show this error at the installer instead of error #0?…

Yes, installing as Administrator solved the problem!

How to install cruisecontrol/phpUnderControl in Debian Etch

This is how I install cruisecontrol/phpUnderControl, including all dependencies, in a fresh Debian Etch machine.

# add the backport mirror for java and subversion
echo "deb http://www.backports.org/debian etch-backports main contrib non-free" >> /etc/apt/sources.list

# add the backport mirror key
gpg --keyserver hkp://pgp.mit.edu --recv-keys 16BA136C
gpg --armor --export 16BA136C | apt-key add -

apt-get update

# install backports (java and subversion)
apt-get -t etch-backports install sun-java6-bin sun-java6-jre
apt-get -t etch-backports install subversion

# install apache (mainly for phpmyadmin) and php5 + cli
apt-get install apache2-mpm-prefork
apt-get install php5 php5-cli php5-dev
apt-get install php-pear make

# install xdebug (needed for phpunit)
pecl install xdebug
echo "zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so" >> /etc/php5/cli/php.ini

# install phpunit and phpundercontrol via pear
pear upgrade --force pear
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phpunit
pear install --force --alldeps channel://components.ez.no/Graph
pear install --force --alldeps channel://pear.phpunit.de/phpundercontrol-0.4.7

# get and extract cruisecontrol
apt-get install unzip wget
cd ~
wget http://freefr.dl.sourceforge.net/sourceforge/cruisecontrol/cruisecontrol-bin-2.8.2.zip
unzip cruisecontrol-bin-2.8.2.zip -d /opt
cd /opt
ln -s cruisecontrol-bin-2.8.2 cruisecontrol

# run phpundercontrol modifications against cruisecontrol
phpuc install /opt/cruisecontrol

# first testrun
cd /opt/cruisecontrol

Balsamiq Mockups – impressive software with an even more impressive story

mockups_fpaSince the first time I have seen Balsamiq Mockups, it rocked my world. It is now a pleasure to create mockups. With Mockups, this is a fast and intuitive process, for everyone. Yes, I like this tool as a developer, and I am sure that any non-developer will also like it as much!

There are a lot of shapes one can choose like a browser window, iphone window, any other window, webcontrols, etc. The result can be exported as PNG or saved as XML. With XML files one can even diff/merge mockups ;)

Short overview:

  • Create software mockups in minutes
  • Collaborate with your team
  • Focus on creating your product

The guy/company behind Mockups, Giacomo ‘Peldi’ Guilizzoni, is even more impressive. There is a very good interview over at 37 signals (see Sources):

“I never really understood the concept of building a company with the goal to sell it, or why one should have an ‘exit strategy.’ I just don’t get it. If you’re doing what you love, why would you want to ‘exit’? Maybe it’s because I am Italian, but I see nothing wrong with a business staying small in the long run. As long as we do great work, are happy to do it, and make people happy with it, I see no reason to change anything.”

Thank you again for the kind response to my email, Balsamiq Team, and the chance to review this very nice (and therefore rare) piece of software.