Permalink

Ubuntu 9.10 und ZendStudio bzw. Eclipse

Eclipse funktioniert nicht unter Ubuntu 9.10

Nein, so ganz richtig ist das natürlich nicht. Genauergesagt funktioniert nur eine kleine Sache nicht – nämlich der Linksklick mit der Maus. Das führt dazu dass alle, die es gewöhnt sind mit einer grafischen Oberfläche zu arbeiten mit dem neuen Ubuntu so ziemlich erstaunt sein müssten. Der Bug ist bereits bekannt (Buttons disappear or do not respond to mouse clicks in Eclipse) und sollte bald gefixt werden.

Mein persönliches Highlight bei dem Bug Log:

Gabe Gorelick wrote on 2009-10-05: #4

Can you provide a screenshot of the bug

Der Workaround für das Button Problem

Man lege einfach ein neues Shell Script an dass man irgendwo platziert und dann aufruft.

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/yourpath/ZendStudio

Das wars auch schon. Leider hat mich das ganze 2 Stunden gekostet! Ich hab ja erst gedacht der Grafikkartentreiber wäre es gewesen! Wie immer, wenn es hilfreich war oder ihr wisst wie man es noch leichter lösen kann, einfach einen Kommentar hinterlassen.

Permalink

PHP 5.3 Experimental unter Ubuntu installieren

Warum noch eine weitere Anleitung um PHP 5.3 zu installieren?

Weil es meiner Meinung nach nur wenige Anleitungen gibt die sich mit einem Experimental Build beschäftigen. Die meisten Anleitungen beschränken sich auf Backports und weitere Kleinigkeiten. Das Problem ist dann aber dass Sachen wie PEAR oder PECL einfach nicht mehr funktionieren. Der etwas komplizierterer Weg über einen Experimental Build ist in dem Fall eine erwähnenswerte Alternative die ich auch hier erklären werde.

Ein Experimental Build ist nicht Anderes als eine  Ansamlungen von Quellcode dass vorkonfiguriert verfügbar ist aber aufgrund verschiedener Gründe nicht für den Produktiveinsatz freigegeben ist. Dies kann mehrere Ursachen haben. Meistens ist die QA des Debian Projektes wieder mal mit anderen Sachen beschäftigt. Vergleichen wir die aktuelle Debian Distribution mit der aktuellsten Ubuntu, so sind in Sachen Aktualität doch massive Unterschiede. Wer also die aktuellsten Pakete haben möchte, muss entweder auf Backports zurückgreifen oder kompilliert sich selber die passenden. Dieser Artikel geht auf das Kompillieren eines Experimental Builds ein und da Ubuntu ja auf Debian basiert sollte das fertige Paket auch problemlos zu installieren sein.

Vorbereitung

Da die Installation komplett unter einer Konsole geschieht, sind grundlegende Kentnisse der Shell notwendig. Die Installation wurde auf einem jungfräulichen System gemacht um alle Eventualitäten auszuschließen. Ich empfehle stark das Verwenden einer virtuellen Maschine wie VirtualBox, VmWare oder Ähnliche. In dem Fall verwende ich als Gastsystem Ubuntu 9.04 und als Host einen Hyper-V.

Update (3. Dezember 2009): Ich hab es gerade eben auf Ubuntu 9.10 installiert. Geht ohne Probleme :)

Während des Kompillieren könnt ihr übrigens ruhig mal für ein paar Stunden an die frische Luft gehen. Bei mir hat es circa zwei Stunden gedauert. Erwähnenswert ist eventuell noch folgendes Zitat:

Never touch a running system!

Auf gut Deutsch: Nicht unbedingt auf einem Produktivserver installieren, besonders nicht wenn euer Job davon abhängt. Der Titel sagt es ganz deutlich: Wir bauen uns ein Experimental Build.

Installation

Zuerst sollte man sich das Paket installieren dass notwendig ist damit wir Debian Pakete bauen können. Versierte Admins würden behaupten es geht auch ohne aber man muss sich das Leben ja nicht schwerer machen. Nebenbei halten wir das System auch auf den aktuellsten Stand.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

Nachdem das erledigt ist müssen alle Pakete gezogen werden die nachher beim Kompillieren notwendig sind um potentielle Konflikte zu lösen. In dem Fall wollen wir nachher ein PHP5 Build erstellen und müssen dafür die Abhängigkeiten lösen. Das geht ganz einfach mit

sudo apt-get build-dep php5

Ich hoffe ihr habt euch inzwischen nen neuen Kaffee gezogen denn solange hat es bei mir gedauert bis alle Pakete drauf waren. Jetzt gehts an die Wurst. Debian listet auf seiner Webseite immer die aktuellsten Pakete auf inklusive den passenden Downloadlink. Übersichtshalber findet ihr für PHP 5.3 den Link unter http://packages.debian.org/de/source/experimental/php5. Aber eigentlich lässt sich dieser Schritt komplett überspringen. Also zieht man sich jetzt einfach den kompletten Quellcode, patcht ihn und stoßen den Compiler an.

sudo -s
mkdir -p /source/php
cd /source/php
wget http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.3.0.orig.tar.gz
wget http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.3.0-3.diff.gz
wget http://ftp.de.debian.org/debian/pool/main/p/php5/php5_5.3.0-3.dsc
tar -xvzf php5_5.3.0.orig.tar.gz
mv php-5.3.0 php5-5.3.0
cat php5_5.3.0-3.diff.gz |gunzip |patch -p0
cd php5-5.3.0
chmod +x debian/rules
dpkg-buildpackage -us -uc
apt-get install firebird2.0-dev libc-client-dev libmcrypt-dev libmysqlclient15-dev

Puhh, wenn es hier Probleme gibt könnt ihr das mal posten. Möglicherweise kann ich da helfen oder ein anderer hilfsbereiter User. Im Idealfall ist das Ding ohne Probleme durchgelaufen und die Pakete lassen sich ganz bequem mit dem Paketmanager installieren.

sudo dpkg -i *.deb

Jetzt müsste der Paketmanager wegen ungelöste Abhängigkeit herummeckern also lösen wir die mal mit

sudo apt-get install -f

Nun noch schnell einen Test im Browser machen nachdem wir Apache neu gestartet haben. Jetzt kräftig auf die eigene Schulter klopfen oder dem PC mal ne Pause gönnen :P

sudo /etc/init.d/apache2 restart
phpinfo mit php 5.3

phpinfo mit php 5.3

So, das wars. Bei Anregungen zu dem Artikel oder Kritik oder einfach nur weil ihr Danke sagen wollts, könnt ihr mir gerne einen Kommentar hinterlassen.

Permalink

Bih Jolokia Chilli mit 800.000 Scoville

Bih Jolokia, das angeblich schärfste Chilli der Welt

Verschiedene Anbieter und Konsumenten aller Nationen sind sich einig dass Bih Jolokia, das wohl schärfste Chilli der Welt ist. Es ist eine relativ große Chillisorte mit einem etwas größeren Umfang und ich finde sie schaut aus wie eine kleine rote Paprika. Was macht nun diese Sorte aber so scharf?

Ein paar verrückte Forscher aus Indien haben sich zum Ziel gesetzt das schärfste Chilli der Welt zu produzieren. Die schärfste bekannte Chilisorte, Bhut Jolokia, scheint aus einer natürlichen Kreuzung hervorgegangen zu sein. Zu diesem Ergebnis sind Paul Bosland und Jit Baral von der New Mexico State University in Las Cruces bei molekulargenetischen Analysen gekommen. Die im indischen Bundesstaat Assam häufig angepflanzte Bhut Jolokia – dort sind auch noch andere Bezeichnungen geläufig – entspricht vom Erscheinungsbild her der in Südamerika heimischen Chilipflanze Capsicum chinense, wie die Forscher unlängst in der Zeitschrift „Hort Science“ (Bd. 42, S. 190) berichtet haben. Im Erbgut fanden sich aber außerdem Abschnitte von Desoxyribonukleinsäure, die offenbar von der nahe verwandten, ebenfalls aus Südamerika stammenden Art Capsicum frutescens

Bezugsquellen

Es gibt nur wenige Shops die diese Sorte entweder als Samen zum selberzüchten oder aber als Gewürz bzw. in getrockneter Form anbieten. Diese sind der Pepperworld Shop und Chilli Shop 24.

Anwendung

Ich hatte als Testexemplar eine Packung Bih Jolokia Pulver. Da es sich um ein Pulver handelt sind die Einsatzmöglichkeiten nahezu unendlich. Ich habe also die vergangenen Wochen damit verbracht, fast jede Mahlzeit mit dem Chillipulver zu verfeinern und kann schlussendlich einen kleinen Erlebnissbericht geben.

Wenn das Pulver auf kalten Speisen eingesetzt wird, geht ziemlich viel von der Schärfe verloren bzw. sie ist wenig spürbar. Das hatte zur Folge dass ich mir auf einem Brot großflächig das Pulver aufgestreut habe, nur um danach festzustellen dass dies im Nachhinein mit Magenschmerzen verbunden ist :)

In Suppen oder auch zu einer guten Soße aber entfaltet selbst kleinste Mengen ihre volle Wirkung. Hier schmeckt man sogar die leicht süßliche Eigennote des Chillis heraus. Ich empehle hier eine Tafelspitze auf einen Liter Suppe.

Fazit

Die 800.000 Scoville haben mehr mit Marketing zu tun als mit dem Pulver. Es kann schon sein dass die Sorte “Bih Jolokia” zu den schärfsten Sorten der Welt zählt und tatsächlich solch extreme Scoville Werte enthält, ich vermute aber dass durch verschiedene Produktionsfaktoren ein großer Teil der Schärfe verloren geht. Zum Vergleich habe ich eine frische Thai Chilli auseinandergenommen und der Unterschied war sowohl geschmacklich als auch von der Schärfe sofort zu spüren. Wer also wirklich ein gutes Chilli will sollte vielleicht nicht zu dem Pulver greifen sondern eher die Flocken nehmen. Als Tafelgewürz könnte es auf langer Sicht den Cayenne Pfeffer ersetzen.

Permalink

PHP Strings hashen und cachen

Warum hashen und cachen?

Ohne lange Erklärungen gehe ich direkt zu einem Beispiel. Gegeben ist eine URL inklusive viele Parameter. Wir wollen diese URL maskieren damit der User diese URL nicht sehen kann.

Die base64_encode() Methode

Encodes the given data with base64.

This encoding is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies.

Base64-encoded data takes about 33% more space than the original data.

Base 64 eignet sich hervorragend dazu, Links zu maskieren. Es hat aber wie schon im Quote erwähnt einen gewaltigen Nachteil: Der Originalstring wird größer!

Weiterhin hat base64 noch einen kleinen Nachteil. Einige Sonderzeichen werden nicht unterstützt. Daher müssen diese erst einmal rausgefilter werden.

$link = "http://www.beispiel.tld/link?param1=eins&param2=zwei&param3=drei";
$encodedLink = strtr ( base64_encode ( $link ), '+/=', '-_,' );

Die Memcache Methode

Memcache module provides handy procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications.

Super Sache, denn mit Memcache lassen sich mit der Methode Memcache::add() Variablen im Speicher ablegen. Die Methode add() nimmt zwei Argumente entgegen – key und value. Als Key bietet sich ein unique identifier an, zum Beispiel ein Hashtag.

$link = "http://www.beispiel.tld/link?param1=eins&param2=zwei&param3=drei";
$md5 = md5($link);
Memcache::add($md5, $value);

Die APC Methode

Auch APC bietet eine Methode an um Dateien direkt im Cache abzulagern. Die Funktionsweise von APC und Memcache sind oberflächlich ähnlich. Der Unterschied ist aber dass Memcache ein verteiltes Caching ermöglicht während APC nur lokal cached. Der Zugriff auf APC ist daher sehr schnell. Es bietet sich besonders an wenn Werte oft geändert und gelesen werden.

PHP bietet von Haus an eine native Unterstützung für APC. Die funktion heisst in dem Fall apc_add() und nimmt auch wie bei Memcache::add() die Gleichen zwei Argumente entgegen: key und value.

$link = "http://www.beispiel.tld/link?param1=eins&param2=zwei&param3=drei";
$md5 = md5($link);
apc_add($md5, $value);
Permalink

Chuck Norris Programming Jokes

1. When Chuck Norris throws exceptions, it’s across the room.
2. All arrays Chuck Norris declares are of infinite size, because Chuck Norris knows no bounds.
3. Chuck Norris doesn’t have disk latency because the hard drive knows to hurry the hell up.
4. Chuck Norris writes code that optimizes itself.
5. Chuck Norris can’t test for equality because he has no equal.
6. Chuck Norris doesn’t need garbage collection because he doesn’t call .Dispose(), he calls .DropKick().
7. Chuck Norris’s first program was kill -9.
8. Chuck Norris burst the dot com bubble.
9. All browsers support the hex definitions #chuck and #norris for the colors black and blue.
10. MySpace actually isn’t your space, it’s Chuck’s (he just lets you use it).
11. Chuck Norris can write infinite recursion functions…and have them return.
12. Chuck Norris can solve the Towers of Hanoi in one move.
13. The only pattern Chuck Norris knows is God Object.
14. Chuck Norris finished World of Warcraft.
15. Project managers never ask Chuck Norris for estimations…ever.
16. Chuck Norris doesn’t use web standards as the web will conform to him.
17. “It works on my machine” always holds true for Chuck Norris.
18. Whiteboards are white because Chuck Norris scared them that way.
19. Chuck Norris doesn’t do Burn Down charts, he does Smack Down charts.
20. Chuck Norris can delete the Recycling Bin.
21. Chuck Norris’s beard can type 140 wpm.
22. Chuck Norris can unit test entire applications with a single assert.
23. Chuck Norris doesn’t bug hunt as that signifies a probability of failure, he goes bug killing.
24. Chuck Norris’s keyboard doesn’t have a Ctrl key because nothing controls Chuck Norris.
25. When Chuck Norris is web surfing websites get the message “Warning: Internet Explorer has deemed this user to be malicious or dangerous. Proceed?”.