Google+ und die Suchresultate

Google+ wirkt sich bereits auf die Suchergebnisse aus. In den “Google Webmastertools” gibt es einen neuen Abschnitt mit welchem man das Suchverhalten genauer analysieren kann und den Einfluss der +1’s auf die eigene Homepage erahnen kann.

Ausserdem erscheint es im Moment so, dass Pages welche meine Google+ Freunde “gut” finden (sprich den +1 Button klicken) bei mir eher angezeigt werden. Die Suche wird also mehr und mehr personalisiert. Was Google bisher über unsere Suchanfragen herauszufinden versuchte, servieren wir nun selber auf dem silbernen +1-Tablett. Wir geben unsere Vorlieben preis und kombiniert mit unseren Freundeskreisen/Circles werden wir für Google zunehmend durchschaubarer.

Der gläserne Surfer ist wieder ein Stück durchsichtiger geworden. Wo früher Hotmail, AltaVista und später StudiVZ/LinkedIn/Facebook Ihre Dienste angeboten haben, finden wir heute Google’s Gmail, Google’s Web/Bilder/Karten/… Suche und nun auch noch Google’s soziales Netzwerk Google+. Das Internet wird monopolisiert und wir können uns kaum dagegen wehren, denn Googles Dienst sind meist recht gut und die Konkurrenz kommt kaum an die Qualität und Funktionalität heran.

Neben Google’s Diensten haben wir natürlich noch die Software (Picasa, Chrome, etc) und mittlerweilen sogar Betriebsysteme (ChromeOS für PCs und Android auf Smartphones). Es ist wirklich interessant zu sehen wie eine einzelne Firma so viele Dinge auf einmal hinbekommt. Die meisten anderen Firmen die sowas versucht haben, sind irgendwann an ihrer Grösse gescheitert.

Ich frage mich wann Google die erste Pizza ausliefern wird. Im Grunde müssten wir ja nicht einmal mehr den Belag auswählen oder die Adresse Angeben. Google sollte dies bereits wissen.

Für all diejenigen, welche einen Google Account haben und wissen möchten was den Google alles über sie gespeichert hat, kann dies Nachschauen unter: http://www.google.com/dashboard

Das Dashboard zeigt deutlich wie viele Informationen über uns gespeichert werden. Spannend und zugleich ein bisschen unheimlich.

Let’s bake a cake – Entwickeln eines Webprojektes mit CakePHP

Seit einiger Zeit suche ich eine brauchbare Alternative zu PHP um Webseiten zu erstellen. Neben ASP.NET, Ruby und Python habe ich auch ein bisschen JSP angeschaut. Alle Lösungen waren mir jedoch in irgend einem Punkt unsympathisch. Da ich einzelne PHP-Basierte Anwendungen weiter verwenden möchte kann ich nicht ohne weiteres auf Tomcat/Jetty, etc umsteigen, ansonsten wäre JSP mit Velocity eine annehmbare Lösung gewesen. Zusammen mit Apache und mod_proxy oder mod_jk ist die Lösung jedoch nicht optimal. Insbesondere wenn mehrere Projekte zusammen laufen sollen wird es unter Umständen mühsam. Aus diesem Grund habe ich mich dazu entschieden ein PHP-Framework auszuprobieren. Meine Wahl fiel schlussendlich auf CakePHP.

CakePHP ist ein relativ kleiens PHP-Framework (ca. 5 MB) und funktioniert mehr oder weniger eigenständig. Man muss ein Zipfile in das Webverzeichnis des neuen Projektes entpacken und CakePHP ist mehr oder weniger bereit. Das Framework konzentriert sich auf Datenbankanwendungen, die Idee dabei ist, dass möglichst viel Arbeit vom Framework übernommen wird, so können zum Beispiel die Datenbanken von Hand generiert werden, und dann automatisch die “Models” und “Controler” sowie “Views” welche die Daten aus der Datenbank holen, verarbeiten, anzeigen und schliesslich wieder zurück speichern. Validierungen können direkt aus der Datenbank übernommen werden (zb. die Prüfung ob eine Variable nicht Null sein darf oder ob bei einem INTEGER-Feld wirklich eine Zahl eingegeben wurde, usw).

Ziel dieser Automatisierung ist es jeweils möglichst schnell auf funktionieren CRUD (Create, Read, Update Delete) Anwendungen zu kommen, da heisst Daten können erstellt, ausgelesen, bearbeitet und gelöscht werden. Standardmässig können zwei Benutzerlevel benutzt werden (‘normal’ und ‘admin’). Mit Hilfe einer Rechteverwaltung kann das Konzept jedoch beliebig fein eingestellt werden, so können einzelne Benutzer erstellt werden, Gruppen mit mehren Benutzer sowie Rollen welche den Benutzer oder Gruppen zugewiesen werden können und Rechte welche den Rollen verteilt werden. Mit den Rechten lässt sich dann steuern wer auf welche Funktionen zugreifen darf, also wer welche Daten lesen, schreiben, und löschen darf. Zusätzlich gibt es diverse Hilfsklassen, welche lästige aber notwendige Aufgaben übernehmen. Bilder, Links, etc. können so einfach eingefügt werden, so wird korrekter HTML-Code generiert und alle Links und Bilder haben eine korrekt relative URL egal an welcher stelle man verlinkt. Mit dem URL-Rewriting wäre dies von Hand oftmals gar nicht so einfach. Andere Hilfsklassen ermöglichen die automatische Generierung eines RSS-Feeds oder stellen einfach und zuverlässig Ajax-Funktionen und Elemente bereit und füttern diese mit den Daten aus der Datenbank.

Trotz den vielen Features ist das Framework recht gut aufgeräumt. Der Code welche ein Programmierer in seinem Projekt verwendet ist vollständig in einem Verzeichnis enthalten, so kann Cake aktualisiert werden, ohne dass Dateien aus dem eigenen Projekt überschrieben werden. Zu fast jedem Problem findet man jemanden der dafür eine Lösung gefunden hat, sei es eine Hilfsklasse die schon vorhanden ist oder eine selber geschriebene die man hinzufügen kann, etc. Zu CakePHP gibt es eine recht ausführliche Dokumentation, welche treffender weise Cookbook heisst: http://book.cakephp.org/ und zwei brauchbare Tutorials, welche eine schnelle und einfach Einführung bieten: Getting Started

Die Dokumentation wird auch in andere Sprachen übersetzt, jedoch empfehle ich die englische Version, da die Übersetzungen teilweise maschinell und daher nicht sonderlich gut übersetzt sind.

Für Webprojekte mit Datenbanken kann ich CakePHP empfehlen. Design, Content und Daten können einfach getrennt werden. Ein Webdesigner kann am Design rumbasteln ohne dass er gross mit dem Code dahinter in Berührung kommt.

Falls ihr noch nicht von CakePHP überzeugt sind, könnt ihr ja noch ein paar andere Frameworks anschauen. Hier gibt es eine kleine Übersicht: http://www.phpframeworks.com/

Viel Spass beim ausprobieren!

Programmierst du noch oder backst du schon 😉

Change in Focus

SecurityFocus wurde schon vor mehreren Jahren von Symantec aufgekauft. Nun soll die Seite geschlossen werden und auf Symantec Connect weiter betrieben werden. Symantec hat angekündigt in den nächsten Tagen mit dem Transfer der Daten zu beginnen. Hoffen wir, dass die Qualität der Artikel und News nicht darunter leidet. Es wäre wirklich schade, denn SecurityFocus ist eine wertvolle Quelle für Informationen bezüglich Sicherheit und Sicherheitslücken. Vor allem werden bei SecurityFocus nicht (nur) Exploits sondern Informationen geliefert, es ist ersichtlich welche Versionen der jeweiligen Software betroffen sind und ob es Patches oder andere Lösungen gibt (was vor allem für Administratoren nützlich ist). Exploits gibt es eher weniger und meist nur in Form von Code-Ausschnitten, welche das Problem illustrieren. Die Seite richtet sich daher eher an “Interessierte”, als solche welche einfach ein vor-kompiliertes Programm suchen um irgendwelche Sicherheitslücken auszunutzen. Entsprechend verhalten sich auch die Autoren und Nutzer.

Wie sich der Wechsel auf die Nutzer und Autoren auswirkt werden wir bald sehen.

Eiffel Studio 6.4 vs. Norton Antivirus

>Seit einiger Zeit hab ich Eiffel Studio 6.4 installiert und benutzte es (gezwungener massen) regelmässig. Bis vor kurzem in Kombination mit Norton Antivirus 2009 und seit ein paar Tagen mit Norton Antivirus 2010 (inklusive “intelligentem” Antispyware-Zusatz). Genau dieser “intelligente” Schutz wurde meinem Eiffel Studio zum Verhängnis, denn das Studio beinhaltet diverse Compiler und Interpreter welches das “melting” von vorkompilierten Programm-Teilen mit nicht-kompiliertem Code ermöglichen. So werden einzelne Zeilen Code die geändert werden Interpretiert, während bei den umgeänderten Zeilen der kompilierte Code verwendet wird. Die Idee dahinter: Code welcher kompiliert wurde läuft ein wenig schneller, das “melting” geht ziemlich zackig, usw.
Das Problem: das Verhalten des Studios beim “melting” ist dem Verhalten eines Virus ziemlich nahe.
Norton wertet “ex.exe” als böse und beschützt mich davor in dem die Datei in “Quarantäne” gestellt wird. Mein Studio startet nicht mehr (und als es vorher noch starbar war, wurde der Code nur noch kompiliert aber nicht mehr “gemelted”).
Tja… “ex.exe” von den Scans, etc ausschliessen bringt nichts, denn nach einem Reboot war die Datei in Quarantäne und das Studio unbenutzbar. Es dauerte relativ lang bis ich herausgefunden hatte, das Norton mich ohne zu fragen “beschützt”.
Manchmal wünsche ich mir, dass Programme ein bisschen weniger “mitdenken”…

ikee – Erster iPhone-Wurm aufgetaucht

>Nachdem vor einiger Zeit ein Hacker aus Holland von sich reden machte, kopierte nun ein Australier die Idee und baute “ikee”, einen Wurm welcher sich selbständig weiterverbreitet. Das vorgehen ist exakt dasselbe wie beim Holländer:
Auf iPhones welche “jailbreaked” wurden können weitere Programme installiert werden. Sehr beliebt ist dabei OpenSSH. OppenSSH ist ein SSH-Server mit welchem man auf das iPhone zugreifen kann. Es lassen sich Dateien raufladen sowie beliebige Befehle ausführen. Selbstverständlich hat nicht jeder darauf Zugriff, den man muss einen Benutzeraccount haben. Da normalerweise niemand Zugriff auf die Accounts des iPhones hat, wurde das Passwort für “root” (der Administrator-Account des iPhones) sowie für “mobile” von Apple gesetzt und lautet auf allen Geräten gleich. Wenn nun jemand sein iPhone “jailbreaked”, dann sollte er die Passwörter dieser beiden Accounts ändern. Viele Benutzer vergessen dies oder denken schlicht nicht daran, dass ein iPhone vom Internet aus erreichbar ist. Da die meisten Telefonfirmen bestimte IP-Bereiche für UMTS/EDGE reservieren, wissen die Hacker jeweils in welchen Länder bei welchen IPs probiert werden muss. Der australische Hacker hat den Quelltext von ikee veröffentlicht, daher dürften bald aggressivere Versionen auftauchen.
Dies unterstreicht nochmals, das ein Jailbreak nicht nur Vorteile sondern auch drastische Nachteile haben kann und es ist verständlich, dass Apple diese negativen Schlagzeilen vermeiden möchte.
All diejenigen die ihr iPhone mit SSH nutzen wollen empfehle ich folgende Page: http://cydia.saurik.com/password.html Da wird Schritt für Schritt erklärt wie man das Passwort ändert.

Sind meine Firefox-Plug-ins aktuell?

>Bei Firefox gibt es sowohl Add-ons (Die Erweiterungen wie die Google-Toolbar, oder ähnliches) und Plug-ins. Plug-ins werden im Gegensatz zu den Add-ons bei allen Benutzer auf einem PC installiert. Bekannte Plug-Ins sind zum Beispiel diejenigen von Adobe (Flash) oder das Java-Plugin von Sun. Plug-Ins sind schneller als Add-ons, da diese auf dem Rechner direkt (“nativ) ausgeführt werden. Ein Add-on dagegen ist ein Script welches von Firefox interpretiert wird.
Es gibt nun diverse Vor- und Nachteile der beiden Varianten und es gibt eine Daseinsberechtigung für beide.
Add-Ons sind meist Plattformunabhängig, Plug-ins dagegen müssen für jedes System einzeln kompiliert (und meist sogar ein bisschen anders programmiert) werden.
Die Add-ons benötigen keine Zusatzsoftware und können daher leicht bei jedem Start von Firefox (automatisch) auf Updates überprüft werden. Da bei den Plug-Ins oftmals noch zusätzliche Software benötigt wird, prüft Firefox bei diesen nicht ob Updates verfügbar sind. Man würde sich ja auch wirklich wundern wenn Firefox plötzlich die neusten Java-Updates, Silverlight oder ein paar neue Microsoft-Office-Patches installieren will.
Da aber in letzter Zeit immer mehr Browser aufgrund veralteter Plug-ins Sicherheitslücken aufweisen, versuchen die Firefox-Entwickler etwas dagegen zu tun. Zu diesem Zweck wurde folgende Homepage eingerichtet:
http://www.mozilla.com/en-US/plugincheck/
Man sieht auf einen Blick welche Plug-ins nicht mehr aktuell sind und wie man diese Updaten kann.
Leider funktioniert dies nicht mit allen Plug-ins, aber bei den meisten welche wirklich Sicherheitsrelevant sind klappt der Test recht zuverlässig.
Entgegen des weit verbreiteten Mottos “Never touch a running system” bin ich der Meinung, dass zumindest Browser und andere Programme welche direkte Verbindungen in Netzwerke (und insbesondere das Internet) herstellen immer auf einem aktuellen Stand gehalten werden sollten.

Thawte vs. StartCom / StartSSL

>Thawte stellt die kostenlosen Email-Zertifikate ein (Quelle: heise). Also muss etwas neues her. In die engere Auswahl kamen CaCert und StartCom (auch bekannt als StartSSL). Nachdem die Root-Zertifikate von StartCom und StartSSL im Gegensatz zu CACert weiter verbreitet zu sein scheinen habe ich mich nun für StartSSL entschieden. Die Anmeldung verlief ohne Probleme und die Zertifikate konnten im Gegensatz zu Thawte sowohl mit Firefox als auch mit IE8 unter Windows 7 erstellt und installiert werden. Bei Thawte war da ein “kleines Workaround” notwendig. Einziger Nachteil scheint zu sein, dass für die besseren Zertifikate (Domains mit Wildcards, Email-Zertifikate welche den Namen des Absenders und nicht nur seine Emailadresse enthalten) eine “Class 2”-Authentifizierung notwendig ist und für diese muss man zahlen (einmalig 40$). Ausserdem muss man sich zwei Notare suchen, was auch nicht wirklich einfach ist, da die ganze Sache noch nicht so alt ist und in der Schweiz nur gerade eine Hand voll verfügbar sind.
Für meinen Gebrauch reicht ein “Class 1”-Zertifikat erstmal aus und da bis jetzt bei StartSSL alles sehr gut funktioniert hat, fällt das Fazit erstmal positiv aus.

Windows 7 / Vista und Personal E-mail Certificates

>Thawte bietet kostenlose Zertifikate an um Emails zu Signieren. Die Idee gefiel mir und ich hab es gleich mal ausprobiert.
-> Anmelden, Zertifikat erstellen, warten bis es fertig ausgestellt wird, dann runterladen installieren und Emails signieren.
So zumindest hatte ich mir das vorgestellt. Ich verwendete Firefox beim Erstellen und bis zum Runterladen des Zertifikats ging auch alles gut. Nur installieren lies es sich nicht. Es fehlte der private Schlüssel. Nach langem Suchen fand ich dann heraus, dass ich das ganze mit dem Internet Explorer machen muss, da sonst der private Schlüssel nicht in den Zertifikatsspeicher von Windows kommt.
Also. Altes Zertifikat widerrufen, neues mit dem IE erstellen. Tja, einfacher gesagt als getan. Thawte mag den IE8 nicht! Wenn man den IE8 in den “Kompatibilitätsmodus” wechselt, verhält er sich beinahe wie ein IE7. Auch der “Kompatibilitäsmodus” hilft nur bedingt, denn Windows 7/Vista unterstützen einige Funktionen nicht und so kann der IE die Zertifikate nicht installieren.
Schlussendlich habe ich dann einen anderen PC (bzw. VMWare) mit Windows XP verwendet. Da funktionierte das Ganze dann mit IE8 (und dem Kompatibilitätsmodus) wunderbar. Das Zertifikat konnte Installiert und dann wieder Exportiert werden. Beides inklusive privatem Key.
Die Exportierte Version lies sich dann ohne weiteres in Windows 7 installieren (eigentlich importieren) und Outlook 2007 akzeptierte das Zertifikat ohne wenn und aber.