[php] URLs effektiver zusammensetzen

Als PHP Entwickler muss man sich ja auch ab und zu mal um den Zusammenbau von URLs kümmern – entweder wird einem diese Arbeit von einem Framework abgenommen, oder man muss manuell ran. Mir geht es hier um den manuellen Weg. Man kann da folgendermaßen rangehen:

$url = "http://host/?id=10";
if($_GET["name"] != "")
{
	$url .= '&name='$_GET["name"];
}
if($_GET["country"] != "")
{
	$url .= '&country='$_GET["country"];
}
usw.


Wie man sieht, muss man für jeden eventuellen Parameter eigene if-Abfragen bauen, deren Muster ist aber immer das gleiche. Was spricht also dagegen, es folgendermaßen zu lösen?

$url = "http://host/?id=10";
$parameters = array(
	array("name"=>"name", "value"=>$_GET["name"]),
	array("name"=>"country", "value"=>$_GET["country"])
);
foreach($parameters as $parameter)
{
	if($parameter["value"] != "")
	{
		$url .= '&'.$parameter["name"].'='.$parameter["value"];
	}
}

Ok, im ersten Moment ist der neue Code bei gleichem Ergebnis etwas umfangreicher, jedoch ergibt sich ein erheblicher Vorteil, wenn neue Parameter dazu kommen. Denn nun muss man einfach dem $parameters-Array ein neues Element hinzufügen und schon wird dieses mit in die URL eingebaut.

[Quicktip] Motorola Milestone kein Internet trotz Empfang

Ich führe hier mal die bereits vom alten Blog bekannte Reihe der Quicktips weiter, diesmal mit einem Tip zum Motorola Milestone. Ich hatte seit dem letzten Service-Update von Android 2.1 das Problem, dass ich teilweise unterwegs eine HSPA/3G/EDGE/GPRS Verbindung angezeigt bekomme, jedoch weder im Browser noch sonst irgendwo der Zugriff auf das Internet möglich ist. Und dazu möchte ich hier die Lösung aufzeigen.

Das Problem liegt am Wlan: fährt man das Handy mit eingeschaltenem Wlan ein und es verbindet sich anschließend gleich mit einem bekannten Wlan, dann tritt genau dieser Fehler auf. Sobald man das Wlan verlässt hat mein kein Internet mehr. Die einzige Lösung ist ein Neustart des Telefons, natürlich erst, wenn ihr das Wlan ausgeschalten habt.

Ich weiß, dass ist keine schöne Lösung, denn ab und zu vergisst man es doch mal, aber zumindest kennt ihr nun die Ursache des Problems 😉

Es bleibt zu hoffen, dass die Probleme mit dem hoffentlich noch in diesem Jahr erscheinenden Android 2.2 Update behoben werden.

Twitter auf Facebook Fanpage einbinden

Facebook ist manchmal etwas undurchsichtig – vor allem, wenn es um die sog. Fanpages geht. Auch bytelude.de hat eine eigene Fanpage, die allerdings meinem privaten Facebookprofil untergeordnet ist – Facebook schlägt dies ausdrücklich als den richtigen Weg vor. Naja…

Kommen wir zu meinem Problem: Wenn ich im Blog einen neuen Post veröffentliche, dann wird mittels Twitter-Plugin automatisch ein entsprechender Tweet erstellt. RSS ist den meisten Leuten leider unbekannt, daher ist es als Blogger sinnvoll, auf die neuen Kommunikationskanäle zu setzen. So, jetzt möchte ich aber natürlich auch, dass neben dem Twitter-Account auch die Fanpage über neue Einträge informiert wird. Facebook bietet mir auch gleich an, meine Fanpage mit Twitter zu verknüpfen, allerdings geht das nur in die Richtung Facebook zu Twitter, und nicht umgekehrt. Und genau hier liegt mein Problem.

Bisher bietet Facebook keine wirkliche Lösung an, daher habe ich mich ein bisschen umgesehen und folgendes gefunden:

Twitter auf Facebook Fanpages – eine fast unendliche Geschichte

Das Zauberwort heißt twitterfeed.com.
Ich hoffe, dass es anderen Leuten genauso wie mir hilft 😉

Leider liegt die maximale Frequenz für neue Tweets bei einer halben Stunde – d.h. im ungünstigsten Fall erscheint euer Tweet erst eine halbe Stunde später auf der Fanpage.

The Social Network – der Facebook Film

Viele Leute wünschen sich wahrscheinlich, dass ihr Leben mal verfilmt wird – Mark Zuckerberg wohl eher nicht. Denn “The social network” zeigt einen echt schrägen Typen, der zwar IT-mäßig echt was drauf hat, aber dafür sozial völlig versagt. Und genau deshalb ist der Film mit dem Siegel “Anschaupflicht” zu versehen: man erkennt, was man falsch machen kann. Vor allem, wenn sehr viel Geld und die falschen Leute ins Spiel kommen.

“The social network” erzählt die Geschichte von Facebook und dessen Gründer auf so tolle Weise, dass man den Hype wirklich miterleben kann. Die Charaktere werden nicht zu aufdringlich, aber dennoch interessant und ausführlich vorgestellt und so baut sich langsam die Geschichte um den jüngsten Milliadär ever auf. Der Film zeigt sehr genau auf, dass bei Geld die Freundschaft eben doch aufhört und er stimmt auch nachdenklich, dass so ein Typ über 500 Millionen Nutzerprofile wacht.

Vor allem der Hauptdarsteller Jesse Eisenberg überzeugt mit seinem grandiosen Spiel aus Mimik und Gestik. Leider werden aber einige andere Charaktere völlig überspitzt und klischeehaft dargestellt – allen voran die beiden Ruder-Brüder. Alles in allem ist der Cast aber gut gewählt.

Meine Lieblingsszene war ganz klar das Hackerbattle zum Finden neuer Praktikanten – ich werde das mal bei uns im Unternehmen vorschlagen 😉 Ein großer Teil der restlichen Lacher fiehl auf Mark’s Verhalten zurück. Richtig gut fand ich auch die ziemlich nerdigen Teile, bei denen schon relativ detailiert über Python- und Perl-Scripte gesprochen wurde – die die es verstanden hatten fanden es interessant, für die restlichen Kinogänger klang es einfach nur nach Hacker. Grandios war aber letztendlich “der Tunnel” – den ich von mir selbst kenne: man codet wie besessen vor sich hin, ist voll im Flow und schafft extrem was. Und man sollte keinesfalls unterbrochen werden.

Der Film war durchweg spannend/interessant, und das bei einer gefühlten Länge von 5 Stunden. Bisher haben das erst wenige Filme bei mir geschafft. Die 4,50 € für die Kinokarte wirken somit als noch viel bessere Investition.

Was man natürlich anmerken muss: der Film hat nicht umsonst kein “Facebook” im Titel, da er als ein reines Fiktionswerk anzusehen ist, welches einzig auf dem Buch “Milliardär per Zufall: Die Gründung von Facebook – eine Geschichte über Sex, Geld, Freundschaft und Betrug” basiert. Weder von Facebook noch von Zuckerberg selbst gab es eine Autorisierung – welche diese bei einer solchen Darstellung des Firmengründers wahrscheinlich auch kaum geben würde. Auch war sicherlich nicht alles im Leben des Mark Zuckerberg so interessant und spielfilmreif, wie es dargestellt wird. Deshalb sollte man sich selbst ein Bild machen. Was man aber festhalten kann: es scheint doch vieles von dem wahr zu sein.

iPhoto – die fast perfekte Fotoverwaltung

Mit jedem Jahr in der IT wird man irgendwie mehr und mehr betriebsblind und verlässt sich auf Tools und Vorgehensweisen, die man “schon immmer so macht”. Leider ist das gerade in dieser Branche sehr fatal, da es fast täglich neue Möglichkeiten gibt.

Mein Umstieg auf den Mac hatte mir bereits gezeigt, was ich so lange schon verpasst hatte. Kurz darauf wechselte ich vom Standalone-MP3-Player mit manueller Ordnersortierung zu iTunes und war ganz begeistert von der viel intuitiveren Art, seine Musik zu verwalten – jede Datei gibt es nur einmal, aber man kann sie beliebig oft einordnen.

Tja, und was soll ich sagen, die gleiche blöde Angewohnheit hatte ich mir für Fotos beibehalten. Fotos in Ordnern zu organisieren ist einfach nur 1.0. Nachdem ich die Vorzüge von von iPhoto gesehen habe, frage ich mich noch immer, warum ich so lange damit gewartet habe. Ich muss allerdings gestehen, dass ich iPhoto schon einmal probiert hatte, von seinem zusätzlichen Speicherbedarf aber abgeschreckt war. Nachdem ich nun aber ca. 20Gb an Bildern importiert habe und dies “nur” 1 GB zusätzlichen Speicher für Metadaten belegte, hatte sich dieser zusätzliche Bedarf schnell wieder relativiert.

Aber kommen wir zu den Vorteilen: iPhoto ist im Prinzip iTunes für Fotos. Jedes Bild wird nur einmal physikalisch abgespeichert, kann dann aber beliebig organisiert werden. Es gibt intelligente Ordner, mit denen man z.B. alle Fotos eines Ortes oder Datum oder beides kombiniert usw. anzeigen lassen kann. Genauso gut kann man aber auch Alben anlegen und beliebige Fotos darin platzieren. Außerdem kann man Tags vergeben, bewerten, bearbeiten usw. Und das alles geht super schnell und flott. Noch nie bin ich so flink durch meine Bilder gebrowsed. Neben Text-Tags kann man auch die Orte angeben, an denen die Fotos geschossen worden – falls dies nicht bereits von der Kamera / dem Handy erledigt wurde. Anschließend kann man auf einer Google-Maps Karte die Orte sehen, von denen man Fotos hat:

Aber das richte Killerfeature ist die Gesichtserkennung: Ähnlich wie in Facebook kann man Personen auf Bildern markieren, nur das iPhoto nach ein paar Beispielen die einzelnen Personen automatisch erkennt. Und das funktioniert mit etwas Übung relativ gut. Natürlich sind dafür Fotoqualität, Ausleuchtung usw. entscheidend, aber trotz Wiedrigkeiten funktioniert es in gefühlt 80% aller Fälle. Und das macht das Taggen einzelner Bilder ungemein einfacher. Seit dem neusten Update werden auch gleich während der Namenseingabe Vorschläge aus dem Adressbuch übernommen.

iPhoto kann natürlich auch direkt auf angesteckte Kameras zugreifen und die darauf befindlichen Fotos importieren. Auch RAW-Bilder sind kein Problem und können auch direkt im Programm nachbearbeitet werden.

Nun hat man seine Bilder in iPhoto drin, vertaggt usw., aber was stellt man damit an? Neben dem einfachen Betrachten kann man Bilder bzw. Alben direkt bei Facebook hochladen, wobei sogar die Gesichts-Tags mit übernommen werden. Auch nachträgliche Änderungen an den Bildern werden zu Facebook übertragen. Natürlich ist auch der Versand per Mail kein Problem, denn auch das geht direkt aus iPhoto heraus.

Richtig nett ist auch das Slideshow-Feature. Es gibt verschiedene Themen, wie z.B. das Fotoalbum, bei dem die Fotos virtuell in ein vergilbtes Fotoalbum geklebt sind und die Kamera zwischen den einzelnen Seiten wechselt. Natürlich sind auch der Ken-Burns Effekt, der Polaroid-Stapel sowie die klassische Überblendung vertreten. Richtig klasse ist, dass man die Slideshow mit Musik (vorgegeben oder aus iTunes) unterlegen kann und sich die Slideshow an die Musik anpasst. Alles in allem ein wirklich nettes Feature.


Man kann sogar Fotoalben, Poster und Fotoabzüge über Apple direkt in iPhoto bestellen. Gerade für nicht-Technik-affine Menschen ist das echt cool gelöst.

Und falls man nochmal etwas anderes mit den Fotos vor hat, so gibt es natürlich noch eine Export-Funktion: hier kann man die Originalbilder, verkleinerte Versionen oder direkt Slideshow-DVDs exportieren, um diese dann in anderen Programmen verwenden zu können.

Da iPhoto ein Programm von Apple ist, wird es auch von vielen anderen Programmen unterstützt. Photoshop z.B. kann direkt auf die iPhoto Bibliothek zugreifen. Tools wie Lightroom werden damit eigentlich überflüssig.

iPhoto ist neben iMovie, Garageband und iWeb im iLife Paket von Apple enthalten. Das Paket kostet 79 € und ist auf jeden Fall eine Investition wert.

Minecraft – baust du noch, oder lebst du schon?

Gamer kann man meiner Meinung nach in zwei Gruppen einteilen: die Oldschhool Zocker und die Generation Aldi-Rechner. Ich kann mich ganz klar zu Oldschool Generation zählen, die noch Spiele wie Monkey Island, Wolfenstein 3D, Maniac Mansion, Prince of Persia, Duke Nukem 3D usw. gespielt hat – für Generation Aldi-Rechner ein absolutes No-Go, weil “da die Grafik ja so schlecht ist”. Vielen der vor allem jüngeren Spieler ist Grafik einfach wichtiger als sehr gutes Gameplay und eine tolle Story. Natürlich spricht nichts dagegen, ein tolles Spiel mit bombastischer Grafik zu haben, aber das ist eher schönes Beiwerk.

Warum nun diese Einleitung? Es geht um Minecraft – ein Spiel, welches den Abstraktionsgrad ziemlich an die Grenze treibt. Sowohl grafisch als auch spielerisch. Die bei jedem neuen Spiel zufällig generierte Spielwelt besteht nur aus Blöcken bzw. Pixeln – selbst die Sonne ist nur ein großer weißer Pixel. Und was macht nun mit all diesen Punkten? Bauen!

Aber gehen wir die Sache etwas anders an: Stellt euch vor, ihr befindet euch plötzlich auf einer einsamen Insel und seid allein. Gut, nicht ganz allein, da gibts schon noch das ein oder andere Tier und auch ein paar Zombies, Riesen-Spinnen und andere Monster – aber dazu später mehr. Was macht man nun? Man sucht sich Material und baut sich eine Hütte. Um das zu schaffen braucht man Werkzeug – welches ihr natürlich nicht habt. Also muss auch das Werkzeug erstmal aus Materialien gebaut werden, welche ihr so auf der Insel findet bzw. abbauen könnt. Das klingt natürlich alles sehr abstrakt, daher sagt ein Video wohl mehr als tausend Worte:

Die am leichtesten zu beschaffende Ressource ist Holz. Selbst Bäume bestehen einfach nur aus Blöcken, weshalb man sie Stück für Stück zerlegen kann – physikalische Gesetze muss man hier einfach mal ausblenden, denn die Bäume fallen nicht zusammen, wenn man ihnen Holzblöcke entnimmt. Hat man genug Holz zusammen, kann man sich eine Axt bauen bauen, mit der die Gewinnung von weiterem Holz oder Steinen wesentlich schneller vorran geht. Mit noch mehr Holz kann man sich eine Werkbank bauen, mit deren Hilfe man mehr Ressoucen miteinander kombinieren kann, um neue Dinge zu erschaffen. Dieser Punkt des Spieles ist das Crafting.

Natürlich hat der Tag auch nur eine beschränkte Zeit und man sollte sich bis zum Einbruch der Nacht eine sichere Unterkunft gebaut haben. Man kann sich z.B. eine Höhle graben oder aus Holz/Steinen ein Häuschen bauen. Den Eingang sollte man erstmal verbarrikadieren, da man anfänglich gegen jede Art von Monster kaum eine Chance hat – was sich natürlich radikal ändert, wenn man im Verlauf des Spiels effektive Waffen wie Schwerter oder Pfeil und Bogen erzeugen kann.

Mittels Holz und Kohle kann man Fackeln bauen, es besteht die Möglichkeit Glas herzustellen, Schienen zu bauen – selbst eine Achterbahn ist möglich, wie folgendes Video zeigt:

Das Ziel des Spiels ist, einfach nur zu überleben. Die Kreativität kommt da von ganz allein. Ich muss wirklich sagen, dass das Spiel süchtig macht. Das tolle ist, dass man Minecraft völlig kostenlos und auch noch direkt im Browser testen kann – die Classic-Version. Allerdings hat man schon sehr viele Gegenstände und es gibt weder Gesundheit noch Monster – es ist der Sandbox-Modus. Wirklich interessant ist da doch der Survival Modus, der eben Monster und co. bietet. Und den gibt’s nur in der Kaufversion.

Obwohl sich das Spiel derzeit noch im Alphastadium befindet, kann man es nur käuflich erwerben. Es kostet 9,95€, ab dem Betastadium wird es 20€ kosten. Da selbst Beta-Software meist extrem fehlerbehaftet ist, könnte man hier meinen, dass es sich um Abzocke handelt. Was nicht der Fall ist. Minecraft ist derzeit bereits sehr gut spielbar und bisher sind mir bis auf ein ein paar Schattenfehler keine Bugs aufgefallen. Wer das Game bereits jetzt kauft, bekommt alle weiteren Updates kostenlos. Ein fairer Deal würde ich sagen und die 9,95€ haben sich für mich auf jeden Fall gelohnt.

Tutorial: ESXi Server mit der HP Z400 Workstation

Heute gibt es mal einen Gastbeitrag von einem meiner Auszubildenden zum Thema VMware ESXi Server. Der ESXi ist die kostenlose Variante des ESX Servers, der für die Servervirtualisation eingesetzt wird. Dabei wird kein Betriebssystem als Unterbau benötigt, da der ESX direkt in eine kleine Linux-Umgebung integriert ist. Das bringt zum einen extreme zusätzliche Performance, zum anderen auch eine geringere Bug-Anfälligkeit des Host-Systems. Patrick hatte bei der Einrichtung einige Probleme, da die Treiber für die Netzwerkkarte seiner Workstation nicht richtig erkannt wurden. Doch lest selbst:

Ich habe mich in der letzten Woche, aufgrund meiner Ausbildungsstelle, mit dem ESXi Server auseinandergesetzt.
Ziel war es, den Server auf einer HP Z400 Workstation zum Laufen zu bringen. VMware stellt hierfür eine kostenlose
ISO-Datei auf ihrem Webserver bereit.

Mit dem gebrannten ISO-Image im CD-Laufwerk traten auch schon die ersten Probleme auf:
Zum einen wird der Netzwerkadapter (NIC) vom ESXi Server nicht unterstützt, zum anderen lädt der ESXi standartmäßig SCSI Festplatten-Treiber. Da in der HP Z400 in der derzeitigen Konfiguration nur SATA Platten verwendet werden (bisher nur eine, später wird ein RAID folgen), musste ich mich durch verschiedenste Foren und Lösungsvorschläge kämpfen.

Letztendlich konnten beide Probleme folgendermaßen gelöst werden:

Ich habe mir eine Ubuntu Live-CD erstellt und diese auf der Workstation starten lassen,
mir das ‘mkesxiaio’ Bash-Script runtergeladen und in den Ordner ‘/Downloads/tmp/’ kopiert. In den gleichen Ordner kamen jeweils noch die ISO-Datei des ESXi 4.1 Servers und eine, aus dem vm-help.com Forum,
modifizierte, oem.tgz.

Im Anschluss startete ich das Terminal und wechselte in den Ordner ‘/Downloads/tmp/’,
um das Script mit ‘sudo chmod +x mkesxiaio_3.x.x.sh’ ausführbar zu machen
und per ‘sudo ./mkesxiaio_3.x.x.sh’ auszuführen.

Das Script frägt dann auch gleich, welche ESXi Version man benutzt. In diesem Fall wählte ich die ‘3’ für die Version 4.1.

Nachdem überprüft wurde, ob die benötigte Linux Tools in der Distribution vorhanden sind, konnte ich auswählen,
in welcher Form (modifiziertes ISO-Image, Installation auf den USB laden, Server auf den USB installieren) das Image ausgegeben werden soll. Ich wählte “Server auf USB-Stick installieren”.

Als die Frage, ob die init.d editiert werden soll, erschien, wählte ich “ja” und fügte folgendes am Ende der Datei ein:
vmkload_mod tg3.o
vmkload_mod lvmdriver

Dadurch werden bei jedem Boot-Vorgang die fehlenden Netzwerktreiber nachgeladen.

Nachdem der Stick erstellt war, konnte ich von selbigem Booten und den ESXi einrichten.

Die Instant Search für Youtube

Feross Aboukhadijeh, Student an der Universität von Stanford, hatte mit seinem Studienkollegen nach der Bekanntmachung der Google Instant Search eine mutige Wette abgeschlossen: Das ist kein großes Ding, das gleiche schaff ich für Youtube innerhalb einer Stunde nachzubauen. Er hat es nicht in einer Stunde geschafft – sondern in drei. Nachdem er fertig war, postete er noch eine Statusmeldung bei Facebook und legte sich anschließend schlafen:

Als er am nächsten Morgen erwachte, befanden sich bereits über 700 Mails in seinem Postfach – von Leuten, die ihm gratulierten, aber auch Interviewanfragen wie z.B. von der Washington Post. Er landete auf mehreren großen Internetportalen auf der Startseite und war die Story des Tages.

Als Krönung des Ganzen gab es dann noch ein Jobangebot vom Youtube CEO persönlich – natürlich per Twitter 😉

Mittlerweile hat Feross das Angebot angenommen und wird von nun an für Youtube arbeiten.

Wie Feross selbst sagte, ist das Ganze nichts aufwändiges – aber er hat diese “leichte” Arbeit zum richtigen Zeitpunkt und vor allem als erster erledigt. So einfach kann es gehen und man wird über Nacht zur Internet-Legende. Über Sinn oder Unsinn einer Instant-Search kann man sich streiten, ich persönlich kann damit jedenfalls nichts anfangen – sowohl bei Google als auch Youtube. Wenn ich etwas suche, dann kenne ich das Suchwort und klicke anschließend auf Suchen – das erzeugt auf den Servern weniger Last und mir weniger Traffic. Trotzdem ist die Instant-Search technisch gesehen natürlich eine tolle Sache und erst durch die aktuelle Breitbandversorgung und vor allem Ajax möglich. Man darf gespannt sein, was wir in den nächsten Jahren noch alles so sehen werden…

Links:
ytinstant.com