Montag, April 30, 2007

Drupal

Habe soeben meine ersten Versuche mit dem CMS Drupal gemacht. Nachdem ich eher weniger gute Erfahrungen mit Joomla gemacht habe, bin ich hier doch voll und ganz begeistert. Was mir besonders auffällt, ist, dass es näher für den Entwickler ist und zudem eine sehr gute Dokumentation hat (Englisch). Habe sogar ein Podcast dazu gefunden..
Ist zudem sehr sauber programmiert.

Donnerstag, April 26, 2007

Studenten Webcompanies vereinen

Habe heute eine interessante Mail bekommen. Ein Student von der Uni St. Gallen will versuchen, "auslaufende Studenten Webfirmen" zu vereinen und weiter zuführen. Ich finde das Konzept eigentlich noch recht interessant und befinde mich in einer ähnlichen Situation, zwar bin ich noch nicht fertig, doch es wird auch einmal soweit kommen.

Wer interessiert ist, kann sich das Konzept mal anschauen. Vielleicht hift dies ja dem einen oder anderen. Ich bin auf jeden Fall gespannt, was daraus wird und werde die Seite im Auge behalten.

Montag, April 23, 2007

Webseiten in Internet Explorer (IE) testen

Jeder Webentwickler kennt die Probleme mit dem Internet Explorer. Sie sind einfach hässlich. Dazu kommt noch, dass die verschiedenen Version sich unterschiedlich verhalten und immer noch ältere Versionen im Einsatz sind. Man muss also mindestens die Seiten im IE 7 Und IE 6 anschauen.
Praktisches kleines Tool: http://tredosoft.com/Multiple_IE
Dieses Tool erlaubt eine parallele Installation von verschienen Versionen des Internet Explorers. Wirklich ganz praktisch und wohl fast ein muss für jeden Webentwickler.

Samstag, April 21, 2007

Aptana - Javascript IDE

Vor wohl mittlerweile knapp 10 Jahren habe ich das erste mal Javascript programmiert. Es war ein cooles Erlebnis, da keine grossen Softwareanforderungen und komplizierte kompiliervorgänge nötig waren, doch irgendwie ist Javascript dann ein wenig in Veruf gekommen.

Seit wohl 2 Jahren oder so ist Javascript wieder richtig in! Ich habe es bis anhin sehr gemieden, da es einfach sehr mühsam war mit den verschiedenen Browsern. Im FF funktioniert, im IE nicht und von Opera ist gar nicht die Rede. Es kam dazu, dass ich keine Vernünftige Entwicklungsumgebung (IDE) kannte und so das Programmieren eher mühsam war.
Im Zuge meiner Arbeit und meiner Bachelorarbeit bin ich seit einigen Wochen wieder in Kontakt mit Javascript bekommen und habe irgendwo über Aptana gelesen.

Aptana ist eine super IDE für Javascript und zudem Open Source. Wer bereits mit Eclipse gearbeitet hat, wird mit Aptana sehr schnell vertraut sein. Die Oberfläche sieht genau gleich aus.

Was ich super finde:

  • Syntax highlighting
  • Syntax fehler werden bereits zur Entwicklungszeit angezeigt... keine Mühsame Fehlersuche nach vergessenen Kommas.
  • Open Source
  • Debugging Modus
  • Code vervollständiger! (genial!)
  • Diverse Views
Also, ich denke für Javascript Entwickler sicher eine super Sache. Ich bin bis jetzt noch nicht gross dazu gekommen Javascript in Aptana zu entwickeln, werde es jedoch bei nächster Gelegenheit sicher machen.

Links

Freitag, April 20, 2007

Umlaute bei AJAX Requests/Anfragen

Immer mal habe ich mich gefragt, was diese komischen Fragezeichen sollen. In meinem normalen HTML Dokument sind Umlaute immer korrekt angezeigt worden, doch sobald dann neue Daten via AJAX nachgeladen worden sind, wurden die Umlaute durch irgendwelche Fragezeichen ersetzt.
Klaro, es muss irgend etwas mit dem Header zu tun haben, doch wie lösen?
Ganz einfach:

header('Content-Type: text/html; charset=iso-8859-1');
Den Code einfach in die PHP Datei reinschreiben, die die Daten zurückliefert. Ich hoffe, das kann auch sonst noch jemandem helfen...

Mittwoch, April 18, 2007

2 Grundlagen des Semantischen Webs

2 Grundlagen des Semantischen Webs

Die technologischen Bausteine für das Semantische Web bestehen bereits. Um das Semantische Web zu realisieren sind nicht neue Technologien gesucht, sondern deren Anwendung. (4) meint: „At present, the greatest needs are in the areas of integration, standardization, development of tools, and adoption by users.“

2.1 Explizite Metadaten

Momentan ist der Inhalt des Webs so formatiert, dass es für den Menschen einfach lesbar ist, nicht aber für einen Computer. HTML ist eine einfache Markup Sprache, welche das Web dominiert. Eine Seite könnte wie folge aussehen:



<h1>Agilitas Physiotherapy Center</h1>
Welcome to the home page of the Agilitas Physiotherapy Centre. Do you feel pain? Have you had an injury? Let our staff Lisa Daenport, Kelly Townsend (our lovely secreatary) and Steve Matthews take care of your body and soul.

Für einen Menschen ist dieser Text vollkommen ausreichend, eine Maschine wird jedoch Probleme damit haben. Wird HTML durch einen besseren Markup ersetzt, kann der obige Text auch für eine Maschine verständlich werden.



<company>
<treatmentoffered>Physiotherapy</treatmentoffered>
<companyname>Agilitas Physiotherapy Centre</companyname>
<staff>
<therapist>Lisa Davenport</therapist>
<therapist>Steve Matthews</therapist>
<secretary>Kelly Townsend</secretary>
</staff>
</company>

Dieser mit Metadaten versehender Text (Daten über Daten) ist nun auch für Maschinen leicht verständlich, solange die entsprechenden Metadaten interpretiert werden können.

Mikroformate1 verfolgen genau dieses Ziel, jedoch nach wie vor basierend auf HTML als Markup Sprache. So gibt es z.B. Eine hCard, welche einen genau definierten Syntax hat, so dass eine Maschine weiss, wann es sich um einen Wohnort und wann um einen Vornamen handelt.



Zurück | Vorwärts

Montag, April 16, 2007

1.3 Die Vision vom Semantischen Web

1.3 Die Vision vom Semantischen Web

Das Semantische Web hat vor allem durch das berühmte Paper von Tim Berners-Lee „The Semantic Web“ viel Auftrieb bekommen. Berners-Lee beschreibt, wie Menschen mittels Agenten Informationen viel schneller finden können. Im weiteren können Agenten von verschiedenen Personen miteinander kommunizieren. Die Agenten sind um die Informationsbeschaffung besorgt und legen diese dem Benutzer in übersichtlicher Form vor, so dass dieser jeweils noch die Entscheidung treffen muss.

Berners-Lee erklärt dies an einem kleinen Szenario, wo es darum geht, einen Arzt für die kranke Mutter zu finden, welcher in der Nähe ist und gleichzeitig noch einen passenden Termin.

Eine weitere Anwendung liesse sich auch im Business-to-Business Electronic Commerce einfach finden. Traditionell wird die B2B Kommunikation über EDI abgewickelt. Diese Technologie ist jedoch sehr kompliziert und schwer wartbar. Zudem ist EDI eine isolierte Technologie.

XML konnte hier bereits einiges verbessern, unterstützt jedoch nur die Kommunikation, wenn das Vokabular im Voraus klar definiert wurde.

Das Semantische Web wird es den Firmen erlauben, Partnerschaften mit anderen viel einfacher einzugehen, da Unterschiede in der Terminologie einfach durch ein standard „abstract domain model“ überbrückt werden. So werden Versteigerungen, Verhandlungen und Verträge in Zukunft halbautomatisch ausgeführt.

Zurück | Vorwärts

Freitag, April 13, 2007

Typ Definition in Funktionen

Java ist hier sehr restriktiv und Typenfehler sind sehr unwahrscheinlich, da diese bereits beim Kompilationszeitpunkt erkannt werden:


public void processArray(String[] arString){
for(int i=0;i


Dies wird man in Java spätestens bei der Kompilation merken, wenn nicht schon beim programmieren (Eclipse wird hier nämlich mekern).

In PHP ist dies jedoch nicht ganz so offensichtlich:

public function processArray($arString){
foreach($arString as $string){
print '$string';
}
}

processArray("Hallo Welt");


Dies wird erst zur Laufzeit zu einem Fehler führen und zwangszweise zu einem Programmabbruch. Dem kam man Vorbeugen:

public function processArray(array $arString){
foreach($arString as $string){
print '$string';
}
}


Dies würde dem folgenden entsprechen:

public function processArray($arString){
if (!($arString instanceof array){
foreach($arString as $string){
print \'$string\';
}
}
}


Den grossen Vorteil, den ich darin sehe, ist vor allem die Leserlichkeit. Beim Entwickeln wird man sich wohl um diese Dinge nicht kümmern, da man sehr vertraut mit dem Code ist, will man jedoch später etwas ändern bzw. jemand anders will den Code anschauen, so wird es um ein einfaches einfacher sein, wenn die Variablen bereits einen Typ haben.

Zudem benutze ich die Entwicklungsumgebung Zend Studio, welches einen sehr guten Autovervollständiger hat. Somit wird mir beim Aufrufen jeweils auch gezeigt, was für ein Typ die Variable sein muss.

1.2 Lösungsansätze


1.2 Lösungsansätze

Grundsätzlich gibt es zwei Lösungsansätze. Auf der einen Seite wäre die klassische künstliche Intelligenz. Dies hätte den Vorteil, dass das Web in seiner aktuellen Form nicht verändert wird, da der Inhalt von intelligenten Maschinen ausgewertet werden kann. Trotz einiger Fortschritte scheint die Aufgabe nach wie vor zu ambitiös.

Als zweiter Ansatz ist das Semantische Web. Dabei wird das bestehende Web in einer für Maschinen einfacher verständlichen Form geschrieben. Das Semantische Web wird nicht parallel zum bereits existierenden Web sein, sondern langsam daraus entstehen.

Zurück | Vorwärts

Donnerstag, April 12, 2007

Semantic Web 1.1

Im folgenden werde ich eine kleine Zusammenfassung über das Semantische Web machen. Ich denke, dass eigentlich sehr viel Potential darin steckt, dass es jedoch im Moment einfach noch sehr in den Kinderschuhen steckt und sich lediglich die Akademiker daran freuen.

Es wird wohl einfach noch ein paar Tools brauchen, welche das Semantic web auch für den normalen User schmackhaft macht.

Im Rahmen einer Arbeit an der Uni habe ich mich ein wenig damit befasst und musste dazu ein kleines Papier schreiben, was doch einen guten Überblick über das Thema abgibt.

Am Besten einfach das RSS Feed abonnieren, damit die neuen Teil automatisch "reinflattern".


1. Motivation für das semantische Web

1.1 Ausgangslage

Das world wide web (www) wie es heute besteht, basiert auf einer unstrukturierten Sammlung von Daten, welche hauptsächlich von Menschen konsumiert werden. Sogar maschinell erstellte Inhalte aus Datenbanken werde meist ohne die klaren Strukturen der Datenbank präsentiert.

Das klassische Szenario für den Einsatz des www ist das stichwortbasierte Suche in Suchmaschinen wie Google, Yahoo oder MSN nach entsprechenden Inhalten. Es ist offensichtlich, dass dieser Prozess nicht sehr gut durch Software unterstützt wird und birgt einige ernsthafte Probleme:

  • Hohe Trefferquote, schlechte Präzision. Selbst wenn die wichtigen Seiten in den Resultaten erscheinen, so sind kaum nutzbar, da gleichzeitig tausende von anderen wenig relevanten Seiten erscheinen.

  • Wenige oder gar keine Treffer.

  • Resultate sind sehr vokabularabhängig. Bei der erstmaligen Suche ergeben die gewählten Keywords oft nicht die gewünschten Resultate, da die gesuchte Seite andere Wörteer benutzt.

  • Als Resultat kommt eine einzele Webseite. Oftmals kommt es jedoch vor, dass die Informationen über mehrere Seiten verteilt sind. Diese müssen dann durch erneute Suchanfragen gefunden werden.

Ein kleines Beispiel soll die heutige Problematik mit keyword basierten Suchmaschinen illustrieren:

„I am a professor of computer science.“
„I am a professor of computer science, well you may think. Well, ...“

Es ist offensichtlich, dass es sich hier um zwei komplett verschiedene Aussagen handelt, obwohl sie sich sehr ähneln.

Aufgrund dieser Problematik wird die Informationsbeschaffung im World Wide Web oftmals zu einer langwierigen und dadurch auch teuren Suche.

Vorwärts

Thinkature


Ist ein hübscher kleiner Service. Dieser Dienst ermöglicht es, zusammen zu zeichnen.

Features:

  • Textfelder
  • Pfeile
  • Farben wechseln
  • Freihand zeichnen
  • Chat
  • Voice chat (nicht ausprobiert)
  • Bilder per Drag and Drop einfügen (scheint aber noch ein wenig Buggy)
Ich könnte mir durchaus vorstellen, mit einem solchen Tool irgendwelche Dinge zu planen. Problem ist halt einfach, dass man einen entsprechenden Account haben muss.
Bei nächster Gelegenheit werde ich dieses Ding sicher ausprobieren.

Links

Donnerstag, April 05, 2007

PHP Trail - Trailfire

Anlässlich des gestrigen Posts möchte ich doch noch mal auf Firetrail zurückkommen und ein weiteres gutes Anwendungsbeispiel zeigen.
Immer wieder liest man in Foren die Frage: Ich möchte PHP lernen, wo fange ich an. Was gibt es einfacheres, als den Fragenden einfach einen Trail Link zu geben?

Kleines Beispiel: PHP Trailfire

Das ist nur eine weitere Anwendung und ich bin sicher, dass noch viele andere Anwendungen kommen werden. Es gibt eine neue Technologie (bzw. Anwendung von Technologie) aber die Nutzer müssen zuerst Wege finden, um diese auch anzuwenden.

Mittwoch, April 04, 2007

Trailfire - Das Netz wird enger

Trailfire - Pfadfeuer oder so ähnlich. Was steckt dahinter? ... eine geniale Web 2.0 Anwendung.

Das Prinzip ist ganz einfach. Webseiten können zusammengeknüpft werden. Es entsteht dann ein Pfad. Ich habe hier ein kleines Beispiel gemacht:

http://trailfire.com/rapsli/trails/33217/Webentwicklungen%20-%20Podcast

Ok, der Link verweist auf die erste Seite des Trails. Oben rechts erscheint eine Sprechblase, welche Notizen vom Trailersteller anzeigt. Zudem wird dort gezeigt, wieviele Seiten der Pfad enthält. So kann der Pfad entlanggewandert, Entlanggesurft werden.
Unterwegs kann man seine eigenen Kommentare dazu schreiben.

Wie findet man den Pfad?

  • Man bekommt einen Link, so wie den oben und so ist man auf dem Pfad unterwegs.
  • Es gibt Übersichtsseiten: Diese können dann auch von Google gefunden werden.
  • Firefox oder IE Plugin. Diese zeigen Trails an, wenn ein Trail auf der Seite vorhanden wird.
Pfad erstellen:
Ist eigentlich ganz einfach. Dazu benötigt man das entsprechende Plugin für Firefox oder IE. Im Firefox erscheinen dann zwei neue Icons und zudem hat man die Möglichkeit eine Sidebar anzeigen zu lassen.

Naja, was soll ich noch mehr dazu sagen. Am Besten einfach mal ausprobieren.

Anwendung:
  • Die Anwendung ist in meiner Sicht immens und ich denke, Trailfire hat eine super Zukunft. So kann es zu Ausbildungszwecken gebraucht werden. Lehrer können einfach einen Trail erstellen und den Schülern geben.
  • Reisen können erstellt werden und mit Kommentaren versehen werden. Es ist nicht mehr nötig, Portale zu erstellen, um Informationen zu sammeln. Die entsprechenden Seiten können einfach zusammengeknüpft werden und mit Kommentaren versehen werden.
  • Referenzen.
  • Und ich weiss es sonst auch noch nicht, was alles... Vielleicht wisst ihr noch ein paar Anwendungen...

Links:

Portable apps: FileHippo Update Checker


Ich melde mich wieder einmal zurück von den Portable Apps, und da habe ich wirklich was praktisches gefunden. Nachdem ich gestern einem nahen Verwandten wieder mal den Computer säubern musste, da er fasst nicht mehr lief, habe ich in diesem Zusammenhang wieder einmal die Frage gestellt, ob es nicht noch mehr nützliche Portable Apps gibt. Gerade wenn man oft auf fremden Computern arbeiten muss, gerade, wenn man sie reparieren muss, sind bei mir heute Portable Apps auf dem USB-Stick nicht mehr wegzudenken, und nicht selten, wenn fündig, habe ich auch schon eine Software bei mir deinstalliert und benutze fort an nur noch die Portable Verison dieser, welche ich dann alle schön geordnet in einem Ordner auf der Lokalen Festplatte abspeichere.
Nun zum neusten Fund. Das Programm heist FileHippo. Gerade mal 104kB wiegt es, und bietet gerade mal zwei Funktionen, die es aber in sich haben. Es durchsucht die Festplatte nach Programmen, und vergleicht diese mit einer Datanbank. Dannach öffnet es im Browser eine Seite und bietet zu all den Programmen updates an, von welchen es eine neuere Version gibt. Mit einem Link versehen, hat man das Update rasch bei sich und die Software ist wieder up to date. Funktioniert sehr schnell und findet wirklich erstaunlich viel.
Kombiniert mit einem Download Programm kann man natürlich auch gerade alle Updates die man braucht in einem Zug herunterladen und ausführen.
Besonders lästig fand ich in der Vergangenheit die Sofware, welche im Hintergrund immer noch ein Updater-Dienst laden (Quicktime, realplayer, usw.), welchen man immer Manuell ausschalten muss. AUf die Updates möchte man aber dann ja auch nicht verzichten, und so erweist sich dieses Helferlein als sehr nützlich. Man könnte dann zum Beispiel auch ein Task erstellen, so dass das Programm einmal in der Woche geladen wird.
Ich werde es aber vorallem auf dem USB Stick lassen, und jeweils benutzen, wenn ich einem Freund wieder mal den Compi "reinigen" muss.
Hier der Link zum Download:
http://www.filehippo.com/updatechecker/

Viel Spass damit!

Montag, April 02, 2007

Google 1. April Scherz? - Internet via Toilette - tisp

http://www.google.com/tisp/

Sieht doch noch ganz lustig aus... und ich muss sagen, dass ich zuerst schon ein wenig erstaunt war. Würde Google es wagen, einen 1. April Scherz zu veröffentlichen. Es sieht ja schon ganz gut aus, doch meine Informatikausbildung lässt irgendwie Zweifel daran aufkommen ;)
Es wäre ja schon ganz praktisch, mal abgesehen davon, dass es in meiner Wohnung nicht möglich ist, den Spühlkasten zu öffnen. Ich wäre dann wohl einer, der weiterhin bezahlen muss...

Google ist wirklich innovativ...

Ein paar Screenshots:

Podcast client - Ziepod - Winamp - ITunes

Endlich habe ich einen guten Podcast Client gefunden - Ziepod

Hintergrund:
Ursprünglich hatte ich ITunes installiert und war eigentlich sehr zufrieden damit. Das GUI war sehr benutzerfreundlich und die Funktionalität auch. Doch dann kam das herbe erwachen. Ich habe mir einen schönen Sansa e250 MP3 Player gekauft doch scheint ITunes den nicht zu mögen. und so habe ich mich auf die Suche nach einer anderen Software gemacht.

Fündig wurde ich bei Winamp. GUI war ein wenig gewöhnungsbedürftig aber die Funktionalität war einfach super und so habe ich mich schnell damit angefreundet.
Nach einigen Monaten habe ich Probleme bekommen mit den Podcasts. Irgendwie schienen die nicht mehr so richtig zu funktionieren. Es war sehr ärgerlich.

Zufälligerweise habe ich in einem Forum über Foobar2000 gelesen. Ein MP3 Player. Installiert und angeschaut. GUI: Extrem hässlich. Aber es lassen sich ganz einfach viele Extensions einbauen und dann wird auch das GUI schöner. Der absolute Vorteil: Extrem niedriger Ressourcenverbrauch und das ist wirklich genial. So kann ich endlich wieder mit Eclipse entwickeln und nebenbei Musik hören. Kleiner Vergleich. Winamp braucht bei mir ca. 50 MB im Arbeitsspeicher. Foobar2000 lediglich 2-3 MB, wenn er minimiert in der Taskliste läuft. Schon ein deftiger Unterschied!
Einziger Nachteil: Kein RSS Feedreader für Podcasts.

So habe ich mich auf die Suche nach einem Podcast Client gemacht und wurde beim Ziepod fündig. Die Oberfläche wurde wohl von ITunes kopiert, aber das machts ja eigentlich nur besser.


Dies soll kein ausführliches Review sein, sondern lediglich ein Anstoss für Leute, welche auch auf der Suche sind.

Links