Monday, November 29, 2010

Screenshots of the new Horde4 mobile portal

As mentioned before p@rdus currently sponsors development of draft mobile mail and mobile calendar portals for Android, iPad and iPhone. These portals are based on Horde4 and the recently released jQuery mobile framework.

The Horde developers have been far quicker than they promised themselves and so without further ado here are some early screenshots of the projects:

Now p@rdus still needs to ensure that these screens go live on a Kolab server near you. Packaging is progressing well and chances are high that you can try the alpha version very soon.

Sunday, November 28, 2010

Resizing an EBS volume

Keyboard

If you run into size limitations with an EBS (Elastic block storage) volume attached to your EC2 instance it just takes a few minutes to expand the storage space.

  • Unmount the small volume (assumed to be /dev/sda here).
unmount /dev/sda
  • Detach the unmounted partition from the instance.
  • Take a snapshot of the detached volume.
  • Recreate an EBS partition from the snapshot.
  • Attach the EBS disk to your instance.
  • Resize and remount the larger volume with:
e2fsck -f /dev/sda
resize2fs -p /dev/sda
e2fsck -f /dev/sda
tune2fs -l /dev/sda
mount /dev/sda /somewhere

Installing the Kolab Server on Ubuntu 10.04

Keyboard

Just a quick note on the required steps to get the Kolab server installed on an Ubuntu 10.04 server. The first step pulls the required dependencies to be able to compile the Kolab sources:

sudo apt-get update
sudo apt-get install bison flex gcc automake libtool autoconf tcl

And subsequently the server code gets downloaded and installed via the standard commands from the Kolab wiki:

mkdir /tmp/kolabtemp
cd /tmp/kolabtemp
wget -r -l1 -nd --no-parent http://files.kolab.org/server/release/kolab-server-2.2.4/sources/
gpg --keyserver wwwkeys.pgp.net --recv-key 5816791A
gpg --verify SHA1SUMS.sig
sha1sum -c SHA1SUMS
sudo sh install-kolab.sh 2>&1 | tee /root/kolab-install.log

Monday, November 22, 2010

The Horde4/Kolab package mill

p@rdus established another Hudson based continuous integration setup in preparation of the first experimental Horde4 packages in two weeks. The new system bundles Horde4 packages for the Kolab-Server-2.2.4/OpenPKG and lives here.

Packaging the Horde4 source code for a distribution is nearly trivial as the basic Horde packages are already continously integrated and packaged as PEAR modules. Because of that it is likely that p@rdus will establish a similar process for the native Kolab-Server/Debian.

With Kolab currently planning to move away from OpenPKG it is also possible that p@rdus makes the native Debian port the primary supported platform for Horde4 on Kolab in the future.

Monday, November 15, 2010

Horde continuous integration

With the increasing complexity of a huge codebase such as provided by Horde there is a significant need for quality control. As p@rdus accumulated a decent amount of experience with a variety of PHP QA tools during the past years it was only natural to apply this knowledge to the Horde codebase.

Many modules - including the Kolab_* packages - are now under constant surveillance of a continous integration server. The system is available for your inspection at ci.horde.org.

The service itself is run by Hudson - the standard CI server these days. The tools deployed on the server are a collection of the latest and greatest in the arena of quality control for PHP. PHPUnit certainly being the most important one as it delivers the framework for unit testing and code coverage analysis. In addition Hudson runs PEAR CodeSniffer (style check), PHP Depend (structural analysis), PHP Mess Detector, and the PHP Copy Paste Detector. On top of this the brand new PHP Code Browser integrates the analysis results into a view of the code.

With this system in place Horde is probably the only PHP based groupware client that can claim to validate its code base against current commercial grade software standards for PHP with each and every commit.

Monday, November 08, 2010

Horde4/Kolab road map

The current version of the Kolab web client saw its first real release on the Kolab Server in December 2007 and is based on Horde3. In 2008 p@rdus promised the switch to Horde4 for 2011.

In the past months the Horde development team has steadily progressed towards the first release of Horde4. With that being in sight now it finally makes sense to provide a detailed roadmap for Horde4/Kolab.

  • [06.12.10] Horde4 Portal
  • [13.12.10] Horde4 Mail
  • [20.12.10] Horde4 Mail on jQuery mobile
  • [07.02.11] Horde4 Calendar
  • [14.02.11] Horde4 Calendar on jQuery mobile
  • [28.02.11] Horde4 Addressbook
  • [07.03.11] Horde4 Tasks
  • [14.03.11] Horde4 Notes
  • [28.03.11] Horde4/Kolab Beta

Both jQuery mobile oriented projects are financed by p@rdus. These will not be able to compete with the full feature set of the default view but should be an interesting draft of mobile apps based on the Horde applications.

You are encouraged to measure the reliability of p@rdus on the basis of this timeline.

Thursday, November 04, 2010

A server is a server is just a server

Gentoo Linux

In the process of getting the Horde4 packages ready for the Kolab Server the p@rdus development environment needed some love. Besides a few minor updates it remained virtually unchanged during the last two years.

The process started with an update of the underlying Gentoo base. Which took a few hours to compile. And of course there were a few problems associated. Which also took some time.

Subsequently the configuration via puppet didn't really work out. Some additional obscure issues. More time.

And ultimately the bundling and upload of the updated image didn't work. Even Google wasn't able to help this time.

All that is fine if the required time is available and if the stuff learned while fixing the issues means progress for yourself. But it is a fact: there is neither the time nor does fixing obscure issues align with the targets at hand. The server setup and upgrade must complete in minutes and not hours. It is "just a server" after all.

Sigh... I love Gentoo. I have been a Gentoo developer. I wrote a book about this distribution. Giving up on my developer status for Gentoo was hard. Giving up on Gentoo... damn. Nevertheless: Farewell.

Monday, November 01, 2010

A new old PHP framework

With Horde4 the old "framework" block of code contained in the base Horde application will be split into its single component parts. This should help to underline the modular framework aspect of Horde itself.

The Kolab Server is one of the few systems that tried to use part of the Horde software stack even with Horde3. Both the free/busy system and the Resource management do not require more than a few packages from the Horde core framework.

With Horde3 this approach has always been somewhat awkward. The Horde release process made no use of the fact that the Horde framework was split into modules. With the Kolab Server we had to work around this limitation which resulted in the split packaging layout which will be available with Kolab-Server-2.3. But this is hand made on the Kolab side.

For Horde 4 p@rdus is pushing the use of PEAR with a specialized "component helper". The idea is to facilitate the handling of many small Horde components - each a PEAR package.

The tool currently allows automatic updates to Horde component manifests. It packages development snapshots. Builds continuous integration configuration for a component. It creates packaging specs for a distribution - and lists package dependencies.

Last but not least: It install components. And it does that primarily based on the code repository.

This is an essential feature for the continuous integration setup as all testing of the newest code will happen based on installed components. As a result the packaging will automatically be part of the quality control. Both the developers as well as the packagers will benefit from that.

Once the complete components setup is in place it will be very easy to derive a set of packages from it. Whether these packages are targeted for OpenPKG (Kolab Server 2.2.4 or 2.3) or some later native packaging will not really matter. p@rdus is of course actively working on such packaging and you can watch for commits on the horde4 branch of the Kolab server mercurial repository.