Donnerstag, 19. Juli 2007

Mehr Spaß mit Google

mp3s torrents & Co mit Google suchen.

Ein sehr interessantes Youtube Video rund um ein paar Google Hacks:


Dienstag, 17. Juli 2007

Die Tagessuppe: Enzos Laucheintopf

Dies ist sowas wie mein Standardeintopf, der sich sehr gut mit saisonalen Gemüse variieren lässt. Auch bei dieser Suppe gilt - einfach und gesund.

Zu diesem Rezept muß ein großer Vorteil Österreichischer Märkte und Supermärkte hevorgehoben werden. Es gibt überall diese praktischen Bündel mit frischen Österreichischen Suppengemüse bestehend aus Karotten, Sellerie, Lauch, gelbe Rüben, Petersilwurzel. Diese Zusammenstellung ist schoeine gute geschmackliche Basis. Furchtbar gesund soll das ganze Zeug auch sein. so aber nicht lange unsinnige Zeilen getippt - jetzt geht es zu den Zutaten und der Rezeptur.


Zutaten

  • 3-4 Lauchstangen
  • 2-3 Kartoffeln
  • 1 Bund Österreichisches Suppengemüse
  • 1 Zwiebel oder Bund Frühlingszwiebeln
  • ½ Knoblauchzähe
  • 1 EL Öl
  • Salz, Pfeffer, Kümmel

Zubereitung

Zwiebel und Knoblauch kleinschneiden. Öl in den Suppentopf geben und bei leichter Flamme Knoblauch und Zwiebel glasig anbraten. Ca. 2L Wasser hinzugeben und zum Kochen bringen. Während der Wartezeit Kartoffeln, Lauchstangen und Suppengemüse kleinschneiden. Gemüse in das kochende Wasser geben und ca. 15 Minuten köcheln lassen. Bei Bedarf kann auch ien halber Suppenwürfel hinzugegeben werden. Zum Schluß die Suppe mit Salz, Pfeffer und Kümmel würzen. Als Variante mit Fleischeinlage kann man zu Beginn beim Anbraten Speckwürfel oder Beispielsweise Cabanossi hinzufügen.


Guten Appetit wünscht euch Euer Enzo

PHP HACKS: Verkettete Listen

Aus aktuellen Anlaß: PHP ist ein Krampf, aber manchmal muß man durch. Wie bastelt man sich mit dieser Sprache ohne Zeiger verkettete Listen? Geht Nicht - gibt es nicht!

Aus unerfindlichen Gründen mußte ich mich heute mit PHP und verketteten Listen rumschlagen. Ohne Zeiger und einem Witz von Referenzen war mir das erstmal gar nicht klar, wie ich das zusammengebastelt bekomme. Ich wollte die Geschichte schon mit einem Array faken, nach ein bisschen blättern zu Referenzen in den PHP Online Dokumentationen, hab ich aber doch noch eine recht simple Methode gefunden. Zum Nachvollziehen habe ich hier nur in eine einfachen Version hineingetippt. Es geht vor allem um die Methode die PHP Referenz zu benutzen. Eine PHP Referenz schaft eigentlich mehr einen zweiten Namen eines Objektes denn eine wirkliche Referenz:



class ListItem {
var $next;
var $data;

function ListItem($_data = NULL) {
$this->next=NULL;
$this->data=$_data;
}

}

class Liste {
var $head=NULL;

function Liste() {}

function addItem($_item) {
$item = new ListItem($_item);
$tmp=&$this->head;
while($tmp) {
$tmp=&$tmp->next;
}
$tmp=$item;
}

function getListe() {
$tmp=&$this->head;
while($tmp) {
echo $tmp->data;
$tmp=&$tmp->next;
}
}
}

Falls man die Methodik durchschaut hat, sind weitere Feature wie eine Referenz auf das Listenende recht einfach zu handhaben.

Sonntag, 15. Juli 2007

Schwule raus rappen - Nachtrag

Nicht ganz ohne Worte ...

G-Hot (Sprich: Jihad) hat jetzt eine Stellungsname zu seinem Track keine Toleranz veröffentlicht. Eigentlich wollte ich ja ohne Worte drunterschreiben -- aber die Anmerkung kann ich mir nicht verkneifen, die Entschuldigung ist offensichtlich rein kommerzieller Natur. Die Werbung für eine neue Platte passt auch nicht wirklich unter Entschuldigung...


Achtung! Sprachliebhabern wird vom Ansehen dieses Videos abgeraten.


Freitag, 13. Juli 2007

Google Map Hacks II

Von Positionen und Markern.

Im zweiten Teil der Google Maps Hacks geht es rund ums die Kartenkontrollen und Marker - Positionsmarken - auf der Karte. Die Google Map API bietet einen reichhaltigen Fundus an Kontrollelementen. die Positionsmarken bieten einen Spektrum von einfachen nackten Markern bis hin zu Infoboxen mit Medieninhalten wie Links, Bildern oder gar Videos. In diesem Teil des Tutorial will ich mich darauf beschränken einen Postionsmarker auf meine Heimatstadt Wien zu setzen.


Für die zweite Karte in meinem Blog benötige ich jetzt auch ein zweites Google Map Objekt. Die load() Funktion aus dem ersten Teil dieser Einführung muß daher erweitert werden. Dazu wird wieder der HTML Header editiert werden. Die zweite Karte nenne ich map2 und die zugehörige HTML Division bekommt die Id map2:



function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

var map2 = new GMap2(document.getElementById("map2"));
map2.setCenter(new GLatLng(48.2086,16.3719), 14);
}
}

Der Konstruktur GMap2() erzeugt das Karten Objekt map2 und benötigt als Parameter einen Verweis auf die HTML DOM Struktur in der der die Karte dargestellt wird. document ist die Basis jeder HTML Dokumentes in der mit der Funktion getElementById() nach dem mit der Id map2 gesucht wird. Die Methode setCenter() der GMap2 Objektes setzt den Kartenmittelpunkt und die Vergrößerungsstufe der Funktion. Als Argumente benötigt es ein Punktobjekt, das mit dem Konstruktor GLatLong() erzeugt wird, und die Vergrößerungsstufe als Integerwert, wobei 1 die größte Vergrößerungsstufe darstellt. Die Gleitkommazahlen 48.2086 und 16.3719 sind der Längen- und Breitengrad von Wien.



Jetzt soll der Benutzer der Karte natürlich nicht auf eine Vergrößerungsstufe festgelegt werden und außerdem bietet Google noch hübsche Satellitenbilder, die wir ihm auch zur Verfügung stellen wollen. Wir benötigen noch Steuerungselemente für unsere Karte, um auf diese Funktionen zugreifen zu können. Dazu bietet uns Google mit seiner API einfache Möglichkeiten mit der Methode addControl(). Wir erweitern jetzt die alt Bekannte load() Funktion, mit dieser Methode:



function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

var map2 = new GMap2(document.getElementById("map2"));
map2.addControl(new GSmallMapControl());
map2.addControl(new GMapTypeControl());
map2.setCenter(new GLatLng(48.2086,16.3719), 14);
}
}


Der Konstruktor GSmallMapControl() erweitert unsere Karte um ein kleines Steuerelement und der Konstruktor GMapTypeControl() bietet eine Auswahl der Kartentypen für den Benutzer.



Als letztes wollen wir noch einen Positionsmarkierung in die Karte setzen. In diesem Teil der Einführung beschränken wir uns auf einen einfachen Marker im Kartenmittelpunkt. Kartenfeatures werden mit der Methode addOverlay() über die Karte gelegt. Neben Positionsmarkierungen können unter anderem auch auch Linien, Infoboxen oder Bilder über die Karte gelegt werden. Eine Markierungsobjekt wird mit dem Konstruktor GMarker() erzeugt, dem als Argument wiederum einen Punkt mit auf dem Weg gegeben wird. erzeugt:



function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

var map2 = new GMap2(document.getElementById("map2"));
map2.addControl(new GSmallMapControl());
map2.addControl(new GMapTypeControl());
map2.setCenter(new GLatLng(48.2086,16.3719), 14);

map2.addOverlay(new GMarker(map2.getCenter());
}
}


Die Methode getCenter() bestimmt den aktuellen Kartenmittelpunkt. Den kennen wir zwar im vorliegenden Fall, die Funktion wollte ich aber schon einmal zu Dokumentationszwecken einführen. Unsere Karte ist jetzt schon um ein paar Features reicher geworden. Um die Karte darzustellen, brauchen wir nur noch eine Division mit der Id map2 im HTML Body. Ich Unsere Karte ist jetzt schon um ein paar Features reicher geworden und im Anschluß folgt die Division <div id="map2" style="width: 300px; height: 300px;"></div>:



Im nächsten Teil des Tutorium wird es vor allem um mehr um die Möglichkeiten der Marker und ein paar weitere Karten Overlays gehen

Mittwoch, 11. Juli 2007

Schwule raus rappen und weg chillen

Sexismus und Homophobie in der Musik schmerzt nicht nur in Ohren. Höhrer werden aber auch in ihrer Weltsicht geprägt und die musikalisch proklamierte Gewalt in Realität umgesetzt. Musik Labels und Fans spielen die Aussagen gerne als symbolisierte Gewalt wie in Horrorfilmen runter. Die Realität ist eine andere. Gerade in den sich sonst gesellschaftskritisch gebenden Hiphop und Dancehall Szenen gehört Homophobie und Sexismus noch eher zum guten Ton. Kritik aus der eigenen Szene ist selten. Im aktuellen Song des Rappers G-Hot keine Toleranz ist im deutschsprachigen Raum eine neue Eskalationsstufe erreicht. Die Schwulen werden aus dem Land gejagt und ihrer Penisse entledigt. Das war dann wohl selbst der Hiphop Szene zuviel und eine Berliner Rapperin zeigte den Rapper an: Keine Toleranz

In den einschlägigen Kommentaren auf diversen Hiphop-foren und den Videokommentaren auf youtube (die Videos sind inzwischen komplett verschwunden) ist und war zu lesen, daß die Homophoben Auswüchse durchaus auch Zustimmung in der Hiphopszene finden. Wie schon bei den Diskussionen um Homophobie im Dancehall um Buju Banton und Elephant Man verwechselt man auch gerne wieder Meinungsfreiheit mit dem Aufruf zu Mord und Totschlag. Buju Banton und Co verzichten zwar bei europäischen Auftritten inzwischen auf ihre homophoben Stücke, nicht aber bei ihren Auftritten in Jamaika. Gerade Dancehallfans die sich über Konzertabsagen von Buju Banton und anderen aufregen, haben auch nicht verstanden, daß es nicht nur um die Situation hier geht, sondern vor allem um die Situation in Jamaika:

Die Tagessuppe: Knoblauchsuppe

Einfach, lecker und gesund - Enzos Knoblauchsuppe

Bisher ist mir das Blog noch ein bisschen zu technisch ausgerichtet. Also muß eine neue Rubrik her. Und in Anlehnung an meinen Blognamen hielt ich es für furchtbar intelligent mal etwas über Suppen zu schreiben. Also werde ich jetzt unter der neuen Rubrik die Tagessuppe Suppenrezepte veröffentlichen --- aber Mist, daß ist ja schon wieder eine Anleitung. Ich verspreche aber zu den bisher sehr Servicelastigen Artikeln, werden sich noch Beiträge mit bunten Bildern, pseudointellektuellen und politischen Texten sowie auch Kultur gesellen. Versprochen!


Zutaten
  • 10 Knoblauchzehen
  • 1 Zwiebel oder Bunt Frühlingszwiebeln
  • 1 Teelöffel Öl
  • 1 Tasse Mehl
  • ½ Liter Suppenbrühe
  • 200g Sahne/Schlagoberst
  • 125 ml Weißwein
  • Pfeffer, Salz, Chilipulver, Muskat, frischer Schnittlauch

Zubereitung

Frische Knoblauchzehen und Zwiebel in kleine Würfel schneiden. In einem Topf das Öl erhitzen und Knoblauch sowie Zwiebel leicht andünsten. Dabei sollten weder Knoblauch noch Zwiebel braun werden, sondern nur glasig. das Mehl darüber stäuben und mit dem Weißwein ablöschen. Nun wird die Suppenbrühe hinzugegossen und die Suppe kurz aufgekocht. Danach die Suppe circa 10 bis 15 Minuten köcheln lassen. Die Suppe nun mit dem Pürierstab sahnig schlagen und Schlagoberst unterrühren, als Variation kann man auch zusätzlich Sauerrahm hinzufügen. Mit Pfeffer, Salz, Chili und Muskat würzen. Kurz vor dem Servieren die Suppe mit Schnittlauch bestreuen.


Guten Appetit wünscht Euch, euer Enzo


Achtung! Vom Verzehr vor Dates, Bewerbungsgesprächen und Zahnarztbesuchen wird dringend abgeraten!

Dienstag, 10. Juli 2007

Email Signaturen

Eine kleine Einführung in Email Signaturen.

Emails sind schon lange nicht mehr das einfache und saubere Kommunikationsmittel, das sie in den Zeiten vor Dotcom-Blase und dem Internetanschluß für jedermann waren. SPAM belagert den Briefeingang, Phishingmails ergaunern Kontendaten und virtuelle Zombies verschicken diesen Müll sogar eventuell unter der Emailadresse eines Bekannten. Auch wird der Staat aber auch dunkle Gestalten abseits jeglicher staatlicher Regulierung immer neugieriger, was in Emails denn so geschrieben steht. Email Signaturen und Verschlüsselung bieten eine einfache Methode, um diesen Gefahren des virtuellen Postzustellungsdienstes etwas entgegenzusetzen.


Die Email Signatur stellt eine Art elektronische Unterschrift dar, mit der der Urheber der Email überprüft werden kann. Die Signatur teilt sich in einen privaten Schlüssel und einen öffentlichen Schlüssel auf. Der private Schlüssel dient zum Unterzeichnen der Email und bleibt allein in den Händen des Besitzers. Mit dem öffentliche Schlüssel kann die Unterschrift des Besitzers überprüft werden, und sie kann auf verschiedene Weisen veröffentlicht werden. Die Veröffentlichung kann per Webseite oder sogenannte Schlüsselserver erfolgen. Soll der öffentliche Schlüssel nur einem begrenzten Personenkreis zur Verfügung stehen, kann er auch per Email oder Speichermedien wie zB. USB Sticks weitergegeben werden.


Kaum etwas ist im Leben wirklich sicher und so auch nicht die digitale Signatur. Ein sorgfältiger Umgang und einige Vorsichtsmaßnahmen machen es aber potentiellen Angreifern enorm schwer bis unmöglich sie mit bisher bekannten Verfahren zu knacken. Über einige Verfahren die Signatur- und Verschlüsselungssicherheit zu erhöhen, werde ich in einem späteren Beitrag berichten.


Warum Signieren


Die Vorteile einer digitalen Signatur und dem Schlüsselverfahren sind

  • Die Email kann eindeutig dem Verfasser zugeordnet werden.
  • SPAM-Filter der Email Server werden entlastet, da Signaturen bisher ein sicheres Kriterium sind, daß die Email kein SPAM ist.
  • Ist der öffentliche Schlüssel des Emailempfängers bekannt, kann die Email verschlüsselt werden und sensible Informationen wie Kontodaten oder Firmendaten bleiben unberechtigten Dritten verschlossen.


Womit Signieren


Für alle verbreiteten Mailprogramme gibt es verschiedene Anbieter von Signaturprogrammen. In folgenden werde ich mich auf Programme konzentrieren, die das Opensource Programm GNU Privacy Guard (gnupg) verwenden. Eine Alternative zu gnupg ist das kommerziell vertriebene Pretty Good Privacy (PGP), das im übrigen kompatibel zu gnupg ist. Das Open Source Konzept von gnupg bietet den Sicherheitsvorteil gegenüber kommerziellen Anbietern, daß die Software von unabhängigen Personen begutachtet werden kann.


Was wird benötigt


Im wesentlichen wird das Programm gnupg sowie ein sogenanntes Plugin Programm für das jeweils benutzte Email Programm benötigt. In den etablierten Linux Distributionen ist gnupg bereits implementiert oder wird in den Softwarepacketen angeboten. Für Windowsbenutzer gibt es das Programmpacket gpg4win, das bereits sowohl gnupg sowie Plugins für Microsoft Outlook 2003 und den Windows Explorer enthält. Mac Benutzer erhalten Informationen unter Mac GNU Privacy Guard.


Im nächsten Beitrag zum Thema werde ich die Konfiguration und Funktionsweise von gnupg weiter erläutern.

Montag, 9. Juli 2007

Google Map Hacks I

Eine Einführung in die Nutzung von Google Maps in Webseiten insbesondere bei Blogs auf blogger.com.

Die große Datenkracke Google ist nicht nur wegen ihrer uminösen Datensammelwut so gefährlich, sondern weil Google so viele nützliche Dinge anbietet, die einen dazu bringen, sich an der Datensammelei zu beteiligen. Mich hat für ein Webseitenprojekt der Google Map Virus infiziert und, um die Krankheit weiterzugeben, gibt es hier jetzt auch ein kleines Tutorial. Google Map lässt sich quasi in jeder Webseite einbetten, schöne neue Ajax und Web 2.0 Welt. In den folgenden Tagen werde ich in loser Folge ein paar Tricks und Tipps rundum Google Maps veröffentlichen. Dieser erste Beitrag beschäftigt sich vor allem mit der Implementierung von Google Maps in einem Blogger Blog.

Als ersten Schritt benötigt man einen Account auf blogger.com oder einen anderen Webspace, der die Editierung des HTML Header erlaubt. Eine Einführung in die Anlegung eines Blogs auf Blogger findet sich bei Greasepaint Mustache.

Im zweiten Schritt registriert man sich bei Google Maps und erhält einen Schlüssel, um auf die Javascript API von Google Maps zugreifen zu können. Bei der Registrierung muß die URL der Webseite angegeben werden. In dem Fall dieses Blogs ist dies http://enzo-suppenkueche.blogspot.com/.

Nach erfolgreicher Registrierung wird man zu einer Seite mit dem erforderlichen Schlüssel und ersten Implementierungshinweisen weitergeleitet. Der Schlüssel funktioniert nur für die angegebene Adresse. Der Schlüssel in folgenden Beispielen muß also durch den eigenen ersetzt werden.

Der Schlüssel wird im HTML Header der jeweiligen Webseite angegeben. Dazu fügt man in den Header Bereich die Zeile
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAASZ3N6clfNgwdCS_5dY9qvRRU-RQhKSfS4adaOne2TJRLmIboSRQtuI6jOlEU5REGqSarJpmOJ8jDKQ' type='text/javascript'/>

Der Schlüssel ist der Buchstabensalat hinter key= und muß für die individuelle Webseite angepasst werden. Auf Blogger.com kann man die HTML Vorlage unter dem Verweis "HTML bearbeiten" der Vorlageneinstellung editieren. Die ersten Zeilen der HTML Vorlage sollten dann etwa so aussehen:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>
<b:include data='blog' name='all-head-content'/>
<title></title>
<script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAASZ3N6clfNgwdCS_5dY9qvRRU-RQhKSfS4adaOne2TJRLmIboSRQtuI6jOlEU5REGqSarJpmOJ8jDKQ'
type='text/javascript'/>


Jetzt kann die Google Map API genutzt werden. Um eine Karte im Blog einzufügen, wird zusätlicher Javascript Code im Header nach der Schlüsselabfrage eingefügt. Der folgende Code ermöglicht die Darstellung eine Karte mit den Koordinaten 37.4419°, -122.1419° und der Zoomstufe 13 in einer HTML Divion mit der ID "map".

<script type='text/javascript'>

//<![CDATA[

function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
}
}

//]]>
</script>


Der Code implementiert eine Funktion load(), die ein Google Map Objekt kreiert und den Kartenmittelpunkt auf die gewünschten Koordinaten und Zoomstufe setzt. Die einzelnen Bestandteile werden im nächsten Teil dieses Tutorials näher beschrieben. Die Funktion load() muß zusammen mit der Google API Methode GUnload() im HTML Body Tag der Webseite eingefügt werden:
<body onload='load()' onunload='GUnload()'>

Als letzten Schritt dieses Tutorials erstellt man einen Post im Blog der die Map Division enthält bzw fügt die Division im HTML Code der Webseite ein:
<div id="map" style="width: 400px; height: 300px;"></div>

Mit dem Style Attribute des Division Tag werden die Breite und Höhe der Karte angegeben. Sollen mehrere Karten auf einer Webseite/Blog erstellt werden, müssen mehrere Google Map Objekte geschaffen werden, die auf verschiedene Division IDs verweisen. Hierzu werde ich in einem späteren Beitrag näher eingehen.

Das Ergebnis sollte dann so aussehen: