Development
PHP string contains und startsWith
Apr 7th
Wer von anderen Programmiersprachen evtl. gewohnt ist, einen String nach einem Zeichen bzw. Teilstring zu durchsuchen, wird in PHP etwas verwundert sein. Eine entsprechende Funktion wie, strcontains (um der Namensgebung in PHP zu folgen) gibt es nicht.
Natürlich wird man sehr schnell fündig werden und auf strpos stoßen, was eben die in der Überschrift genannten Funktionen vereint.
Hintergrund
Folgender Ausdruck liefert den Integer Wert 5 zurück, da ‘der’ im Text an fünfter Stelle (beginnend mit 0) vor kommt.
strpos('Text der was enthält','der')
Suchte man nach ‘Text’ würde man 0 als Ergebnis erhalten.
Ein nicht vorkommendes Zeichen bzw. Textstück wird mit einem ‘false’ quittiert.
Hier zeigt sich dann aber auch ein kleines Problem: PHP behandelt standardmäßig den booleschen Wert ‘false’ wie ’0′.
Ein einfacher Vergleich der Form
if (strpos($haystack,$needle)==0)
könnte dann ein unerwünschtes Ergebnis liefern, wenn man auf die Position 0 prüfen möchte. Wenn der Text $haystack nicht $needle enthält würde ein false zurück geliefert, was bei einem einfachen Vergleich wie 0 behandelt wird, somit die Bedingung erfüllt!
Würde man erwarten, dass das 0 als false interpretiert wird, würde ein $needle, das genau am Beginn von $haystack steht auch für ein falsche Ergebnis sorgen.
In jedem Fall ist es Wichtig zu Wissen, dass PHP für diesen Fall den “===” Vergleichs-Operator ‘Identisch’ kennt. Wird zwar deutlich in der Dokumentation zu strpos beim Rückgabewert darauf hingewiesen, aber evtl. für manchen erst mal verwirrend. Dieser Operator vergleicht auch den Typen, sodass das boolesche false NICHT dasselbe ist, wie der Integer 0.
Umsetzung
Mit diesem Wissen kann man strpos für die ursprünglich gewünschten Funktionen einsetzen:
startsWith entspricht folgendem Vergleich:
if (strpos($heystack,$needle)===0)
contains entspricht folgenem Vergleich:
if (strpos($haystack,$needle)!==false)
Da ich nach etwas PHP-Abstinenz immer wieder etwas brauche, um genau diesen Sachverhalt zu verstehen, habe ich diese Vergleiche in Funktionen ausgelagert, die einen sinnvollen Namen haben.
strcontains($haystack,$needle) {
if (strpos($haystack,$needle)!==false)
return true;
else
return false;
}
strstartswith($haystack,$needle) {
if (strpos($haystack,$needle)===0)
return true;
else
return false;
}
Natürlich könnte man diese Zeilen noch etwas komprimierter schreiben, aber so lässt sich das ganze auch später (oder von Anderen) gut lesen und nachvollziehen.
Kosten 1.3 im App Store – Optionsstart für blau.de
Feb 23rd
Kosten 1.3 ist im App Store erhältlich.
Die Änderungen:
Bugfix:
- Passwort mit Sonderzeichen führt nicht mehr zu Anmeldeproblemen
Features:
- Optionsstartdatum für blau.de festlegbar

An alle blau.de Kunden
ich bitte um Feedback zur neuen Funktion. Die Funktion Optionsstart wurde ausgiebig getestet. Falls dennoch Probleme bei der Auswertung auftreten, bitte mit mir Kontakt aufnehmen.
iPad – Käuferprofil
Feb 1st
Das iPad wird erwartungsgemäß sehr kontrovers diskutiert. Von abwatschen bis in den Himmel loben ist alles vertreten. Meist wird dabei der Vergleich mit der bestehenden eigenen Hardware-Landschaft gezogen.
Mit MacBook (resp. Notebook oder sogar Netbook) und iPhone oder ähnlichem Smartphone bestückt scheint wirklich kaum bedarf an einem weiteren Device. Wohnzimmertauglich ist ein Notebook, transportabel das iPhone.
Trotzdem sehe ich eine Nische, die gar nicht mal so klein ist, die man als technikaffiner Mensch gerne übersieht. Das Problem an PCs / Macs ist meiner Meinung nach schon immer, dass man als “Einsteiger” (besonders ältere Menschen) immer zuerst Lernen muss mit Maus und Tastatur an ein gewünschtes Ziel zu kommen.
Will man irgendetwas an einem PC / Mac machen, muss man selbst für die einfachsten Sachen Einweisungen erhalten, Handbücher lesen etc. Man muss sich mit beschäftigen um heraus zu finden, wie man seine Bilder verwaltet, Mails und Briefe schreibt, welche Software man noch für was nachinstallieren muss, wo man sie her bekommt und und und….
Dazu kommt, dass man bei Fehlbedienung vom Gerät (bzw. Hersteller) immer alleine gelassen wird und im besten Fall einen Bekannten ruft, der einem das wieder gerade biegt.
Ein paar Fragen, die sich dabei zwangsläufig aufdrängen sind:
1. Warum sollte man überhaupt in die Verlegenheit kommen, als Benutzer ein Gerät fehl zu bedienen?!!!
2. Warum Bedarf es immer einer längeren Einarbeitung, bis man zu einem gewünschten Ziel kommt?
3. Warum verkomplizieren Computer sämtliche alltäglichen Tätigkeiten – die sie eigentlich vereinfachen sollten (stichwort Bildverwaltung, Musik hören etc.)
Es ist für mich immer wieder erstaunlich, wie unverkrampft hingegen Bekannte und Verwandte an die Bedienung eines iPhones herangehen. Nach wenigen Minuten herumspielens kommt jeder zu den gewünschten Zielen – SMSen, telefonieren und auch surfen im Browser sind kein Problem.
Es sind wohl 2 Aspekte, die dabei eine Rolle spielen:
1. Touch-Bedienung -> sehr menschliche Form der Bedienung
2. Programme nach dem KISS-Prinzip. Die Standard-Programme Nachrichten / Telefon usw. sind absolut auf die Kernaufgabe konzentriert – und sonst nichts. Dem “Power”-User mögen dabei einige Features fehlen – den Normalos kommt der Minimalismus aber zugute.
Die Kombination “Einfache Programme” und Touch-Bediungung wird ergänzt durch Einschränkung. Die Plattform ist abgeschlossen – von vielen als absolut negativ betrachtet, aber dadurch kann man sich als Kunde darauf verlassen, Software zu erwerben, die auf der Plattform läuft.
Wie es mir früher schon bei Palm-Geräten positiv aufgefallen ist, so kann man auch iPhone und iPod durch keine (mir bekannte) Aktion zum Totalabsturz oder sonstige unverständliche Reaktionen bringen.
Diese ganzen Aspekte machen das Gerät ideal für Menschen, die eben nicht die “Freiheit” haben wollen, alles auf dem Gerät anstellen zu können was sie wollen. Es erschließt dafür aber Kundenkreise, die vorher keine Lust und Zeit hatten, sich mit dem ganzen “Öko-System” PC bzw. Mac auseinander zu setzen.
Insofern denke ich, dass das iPad mehr noch als iPhone/iPod Menschen begeistern wird, die technisch weniger versiert sind; und gleichzeitig, werden die Kunden bedient, die die Detailverliebtheit an einem Mac schon genießen können.
Ich denke nicht, dass das unbedingt ein Erfolgsrezept von Apple alleine bleiben muss. Sollte sich Google mit Android oder alternativ dem Chrome OS auf weiteren Gerätschaften verbreiten, so wäre eine Alternative durchaus denkbar.