Markus Baersch

Software · Beratung · Lösungen

Suche im Blog

Sign In

Monday, 19 April 2010

EasyPeasy: Ideales Linux für den eeePC 901

Wer sich zu früh für ein Netbook entschieden hat, wird an Windows nicht viel Freude haben. Nachdem ich mit der viel zu kleinen 7 Zoll Version meine ersten Schritte mit Linux auf einem eeePC machen durfte und ich zu schnell auf ein neueres Modell umgestiegen war (901), auf dem Windows XP zwar läuft, aber wegen der kleinen, schnellen (4 GB) und viel zu lahmen zweiten SSD in keiner Installationsvariante Spaß macht, habe ich mich entschieden, auch den wegen des ewig knappen Speichers und der ewigen Probleme bei der Aktualisierung des Systems ungeliebten 901 wieder nutzbar zu machen. Sprich: Auch da muss Linux her.

Ein paar Versuche mit eeebuntu und anderen Kandidaten später bin ich nun bei EasyPeasy hängen geblieben:

EasyPeasy 1.5
EasyPeasy nutzt 1024x600 optimal aus: Klick mich!

Die Installation ist denkbar simpel und nach dem Download des ISO-Images und der Erstellung eines USB-Bootsticks kann man erst einmal in Ruhe als Livesystem austesten, ob man damit glücklich wird, bevor die Installation vorgenommen wird. Parallelinstallationen zu XP sollte man sich aber sparen, wenn man nicht selbst für mehr Platz auf den SSDs gesorgt hat.

An Applikationen mangelt es nicht und ich habe dem Standardumfang nur wenige Anwendungen hinzufügen müssen, um alles, was ich vorher unter Windows mit dem Netbook angestellt habe, nun auch mit EasyPeasy zu erledigen. Gute Sache - kann ich nur jedem empfehlen, der wie ich bisher das Gefühl hatte, die Lücke zwischen Handy und Notebook mit dem Netbook dann doch nur zum Teil geschlossen zu haben ;)

# 
Sunday, 21 December 2008

JavaScript-Debugging kostenlos mit Visual Studio

Der enorme Vorteil des Visual Studio beim Debugging von JavaScript ist die Tatsache, dass (fast) alle Unterschiede, die man sonst zwischen dem Debuggen von "echten" Anwendungen und (clientseitigen) Scripten kennt, in dieser Lösung ausradiert werden. Man muss sich allerdings mit der Einschränkung begnügen, dass sich der Debugcomfort auf den Internet-Explorer beschränkt und andere Browser hiermit nicht verwendet werden können. Im Zusammenspiel mit dem IE kann JavaScript-Entwicklung aber mehr oder weniger vollwertig genau so wie bei der Entwicklung von VB, C#, C++ oder anderen "VS-Sprachen" ablaufen: IntelliSense (oder wie heißt diese Funktion nun gerade bei MS?), Haltepunkte (!), Wertemanipulation und komplette Auswertung von Objekten, Eigenschaften und DOM - alles zur Laufzeit und ggf. manuell ausgelöst durch Klicks im Browser. Und schon macht JavaScript wieder Spaß - sogar, wenn man nach Fehlern sucht ;)

Javascript Debugger im VS

Dank des Debuggers im Visual Studio mag ich JavaScript plötzlich wieder ;)

Haltepunkte und überwachte Ausdrücke

Haltepunkte, überwachte Ausdrücke, Aufrufliste, Einzelschritt, Prozedurschritt - alles genau wie bei C# & Co. Eben ein vollwertiger Profi-Debugger; nur eben für JavaScript. Freu! ;)

Debugging im Browser aktivieren

Damit die Verbindung zum Browserprozess funktioniert, muss dies im IE explizit erlaubt werden, was dankenswerterweise nicht im Standard vorkonfiguriert ist. Um die Brücke zu öffnen, muss im IE unter Extras - Internetoptionen - Erweitert relativ weit oben in der Liste der Optionen das Scriptdebugging aktiviert werden (die Optionen zum deaktivieren also ausschalten).

IE Debugging Optionen

Ebenso ist es hifreich, die Anzeige von Scriptfehlern zu aktivieren, so dass der Klick auf die Statusleiste im Fehlerfall entfallen kann.

JavaScript - Debugging im Visual Studio nutzen

Um nun z. B. einen Haltepunkt im Script sezten zu können, wird im VS unter Extras die Verbindung zum Internet-Exporer über "mit Prrozess verbinden..." hergestellt, indem iexplore.exe (genau: der muss dazu gestartet sein) aus der Prozessliste ausgewählt wird. In der Projektmappe werden nun alle am Prozess "hängenden" Dateien angezeigt... darunter auch die HTML-Quellcodes, externe CSS-Dateien und Scripte. Per Doppelklick auf die gewünschte Datei - also das Script oder die Script beinhaltende HTML-Datei - wird diese in den Editor geladen und kann nun bearbeitet werden (im Fall einer lokalen Datei) oder in jedm Fall mit einem Haltepunkt versehen werden. Wird das Script automatisch beim Laden der Seite ausgeführt, genügt ein Reload. Ansonsten klickt man nun auf den Link oder anderen Auslöser für das Ereignis, welches das gewünschte Script aufruft (bzw. den Fehler auslöst ;)). Am Haltepunkt kann nun z. B. Einsicht in aktuelle Zustände von Objekten, Variabeninhalte etc. genommen und das JavaScript schrittweise weiter ausgeführt werden.

Kostenlose Alternative zum "kompletten" Visual Studio

Um diese Vorteile nutzen zu können, ist nicht unbedingt der Erwerb eines Visual Studio erforderlich. Nicht nur zum Ausprobieren, sondern bei Gefallen auch zum dauerhaften Gebrauch eignet sich die kostenlose Express-Edition; z. B. vom Visual Web Developer 2008 - leider steht hierbei aber der Debugger für JavaScript nur über Umwege zur Verfügung. Dennoch kann man mit einem Trick (siehe unten) Webanwendungen auch mit der kostenfreien Variante komfortabel von Fehlern befreien und während der Entwicklung analysieren. Man erhält zudem u. A. einen inzwischen erwachsen gewordener Editor, der gleichermaßen für ASP, HTML, etc. verwendet werden kann. Nur bei PHP ist Essig mit dem Comfort und selbst das Nachpflegen von Syntaxhighlighting für PHP im VS scheitert in dieser Version, weil die Voraussetzungen fehlen. Wer sich bei PHP also auch wohlführen will und keinen zweiten Editor einsetzen mag, sollte sich die Komodo IDE (nicht den freien Editor) ansehen, denn dort ist neben allem anderen auch das Debugging von Scripten möglich. Ob auf der anderen Seite im VS,PHP, das auf der VS-IDE aufsetzt, direkt oder durch Parallelinstallation des Visual Web Developers beides unter einen Hut bringen läßt, kann ich leider nicht sagen, da ich VS.PHP nicht nutze (wer es weiß ist gebeten, einen Kommentar zu hinterlassen - Danke!).  

Visual Web Developer 2008 in der Express-Edition installieren

Die Installation des Pakets ist... nun ja: "relativ" mühselig. Am Anfang steht ein Download des kleinen Installers unter http://www.microsoft.com/express/vwd/, der die benötigten 138 MB (zzgl. ggf. 84 MB für den optionalen SQL Express 2008, der aber für ein erstes Ausprobieren - oder bei Vorhandensein einer älteren Fassung - nicht unbedingt benötigt wird) für das Setup aus dem Internet nachzieht. Das ist bei schnellen Verbindungen kein Thema und in einigen Minuten erledigt, sonst sicher ggf. schon ein erstes kleines Problem.

Die Installation des etwa 1.3 GB benötigenden Pakets dauert hingegen - Visual Studio-typisch - einige Zeit und lädt dazu ein, in der Zwischenzeit etwas Sinnvolleres als die Beobachtung des Fortschrittsbalkens zu unternehmen. Allein die C++ Runtime und das .NET-Framework in der Version 3.5 brauchen zur Installation länger, als das Nachladen des Setups aus dem Netz. Und das sind nur die ersten beiden von insgesamt 11 Komponenten des Visual Web Developer 2008 Express. Mit einem Gesamtaufwand von etwa 1,5 bis 2 Stunden (je nach System und Webanbindung) dauert der ganze Spaß zwar deutlich länger als die Installation eines reinen Editors, dafür bekommt man aber auch einiges mehr. Viele hilfreiche Funktionen rund um CSS, ein hilfreicher Objektinspektor, Instellisense zur Codevervollständigung und auch die einfache Verwendung der AJAX-Controls von MS sind Argumente, die auch für Entwickler, die sonst nicht zu den Visual-Studio-Fans zu zählen sind oder bisher einfach nichts damit zu tun hatten, einen gewichtigen Anreiz bieten. Und vielleicht beschäftigt man sich in einem ruhigen Moment so erstmals mit der komplexen Welt der DotNetNuke-Modulentwicklung, die mein persönlicher Einstieg in das Visual Studio war und die sich auch mit der Express-Edition des Web Developer 2008 ohne finanzielle Hürden erkunden läßt... aber zurück zum Debugger:

Debugger für JavaScript auch in der Express-Version nutzen

Während man in der vollen Version des VS über den oben genannten Menüpunkt unter "Extras" bequem eine Verbindung mit dem gewünschten Prozess aufnehmen kann, gelingt dies im Express-Studio nur dadurch, dass ein neues Webprojekt erzeugt wird. Dazu wählt man "Datei - Neue Website" und dann "Leere Website" aus der Liste der Vorlagen. Dieses (tatsächich leere) Projekt kann nun über die Symbolleiste, das Menü "Debug" oder einfach F5 gestartet werden. Die nachfolgend erscheinende Nachfrage zur "web.config" muss einmalig bestätigt werden. Wer nun nicht vom Internet Explorer, sondern seinem geliebten abweichenden Standardbrowser begrüßt wird, kann die Ausführung z. B. über "Debugging - Debuggung beenden" stoppen und muss den gewünschten Browser wählen. Dazu genügt ein Klick mit der rechten Maustaste auf die leere Website im Projektmappen-Exlorer auf der rechten Seite im VS und ein weiterer Klick auf "Browserauswahl" im erscheinenden Kontextmenü. Dort kann der Internet Explorer dauerhaft als Standard für das Projekt definiert werden.

Wenn nun in einer neuen Registerkarte die zu untersuchende Webseite geöffnet wird, erscheint im Projektmappen-Explorer wie oben beschrieben der Knoten "Scriptdokumente", in dem alle Dateien - auch externe Scripte der aufgerufenen Webseite - angezeigt werden. Diese können nun per Doppelklick in den Editor geladen werden. Voilà: Haltepunkte (F9), Wertemanupulation, Anzeige sich ändernder Variablenwerte, Einzelschritte vorwärts (F10), Prozedurschritte und freies Bewegen rückwärts in der Historie per Mausklick durch den Code... alles drin. Viel Spaß damit ;)

P.S.: Gestandene Delphianer werden mit den genau andersherum als gewohnt belegten Hotkeys F5 und F9 ihre wahre Freude in Visua Studio haben. Ich setze regelmäßig durch den projektweisen Wechsel von Delphi zum Visual Studio Haltepunkte, wenn ich eigentlich starten will (halb so wild)... oder starte das Projekt, wenn ich einen Haltepunkt setzen will (bisweilen extrem blöd). 


# 
Saturday, 20 December 2008

TortoiseSVN: Global ignore pattern funktioniert nicht?

Wenn beim Import in das Subversion-Repository ständig Dateien hochgeladen werden, die lt. "global ignore pattern" in den Einstellungen des Tortoise doch eigentlich ausgelassen werden sollten, dann liegt das mit ca. 0.1% Wahrscheinlichkeit daran, dass Tortoise etwas falsch gemacht hat. Der Rest der Wahrscheinlichkeit verteilt sich in mir unbekannten Anteilen auf mehrere Varianten, die aber immer darauf hinauslaufen, dass das Muster ganz einfach "falsch" definiert wurde. Leerzeichen als Trenner sind ungewöhnlich, die Notation beim Ausschließen ganzer Ordner ebenso (für Windows-Menschen wie mich jedenfalls). Und so passiert eben mitunter nicht das, was man erwartet hat - sondern nur das, was auch wirklich definiert wurde.

In meinem Fall war es ganz einfach der Umstand, dass groß- und kleingeschriebene Extensions hier eben nicht dasselbe bedeuten. Das hätte einige Stunden Frust verhindern können. Merke: *.dcu *.dcp *.ddp *.mb *.db *.y?? *.x?? ist nicht gleich *.DCU *.DCP *.DDP *.MB *.DB *.Y?? *.X??.

# 

"Unbekannter Laufzeitfehler" bei JavaScript - nur im Internet-Explorer

Na toll - ein JavaScript, das auf anderen Seiten bereits eingebunden ist und dort einwandfrei funktioniert, versagt auf einer neuen Site plötzlich - und dann ausgerechnet und ausschließlich im Internet-Explorer. Während man in Firefox und anderen Browsern mit dem Script keine Probleme hat, will der IE einfach nicht tun, was man von ihm verlangt und zeigt nach einem Klick auf das dezente "Fehler auf der Seite" in der Statusleiste und "Details anzeigen >>" die hilfreiche Meldung "Unbekannter Laufzeitfehler". Mit einigen genervten alert()-Versuchen und / oder einem ordentlichen Debugger, der auch im IE den Comfort eines Dragonfly oder der zahlreichen Debugger für Firefox bietet, findet man endlich die korrekte Zeile, die "irgendwo in der Nähe" der angegebenen Zeilennummer der IE-Fehlermeldung liegt und wo irgendwo eine Anweisung nach dem Muster

irgendwas.innerHTML = "sonstwas";

zu finden ist. Damit also gleich zur Suchmaschine und nach "innerHTML unbekannter Laufzeitfehler IE" oder ähnlichen Kombinationen gesucht, findet man schnell die Erklärung, dass sich der IE hier ausnahmsweise nicht falsch, sondern überkorrekt verhält und die Zuweisung von syntaktisch unvollständigen Codeblöcken mitunter auf diese sehr uninformative Weise zurückweist. Ist also z. B. ein Tag im zugewiesenen neuen Inhalt des Containers nicht korrekt geschlossen, weigert sich der IE, die Anweisung auszuführen. In seltenen Fällen mag dieser Hinweis aber nicht zum Ziel führen... doer zumindest nur auf Umwegen. Im Fall, der mich zu diesem Beitrag "inspiriert" hat, lag das Problem nämlich nicht am dynamisch zugewiesenen Inhalt, sondern an einem Fehler in der bestehenden Struktur der Seite, ganz in der Nähe des Containers, dem durch das JavaScript neues innerHTML zugewiesen werden sollte. Konkret war es ein nicht geschlossenes Endtag für den Link, der das Script auslösen sollte. Ein Beispiel, das den Fehler im vorliegenden Fall veranschaulicht, funktioniert allerdings komischerweise im IE auch mit dem Fehler - es mag zu vereinfacht sein, als dass es zum Auslösen der Laufzeitstörung ausreicht. Dennoch genügt das Beispiel zur Illustration der Fehlerursache, die zwar mit nicht valider Struktur zu tun hat... aber eben nicht im zugewiesenen Inhalt, sondern im bereits vor der Manipulation /bzw. dem Versuch) vorhandenen DOM. 

<p><a href="#" onclick="document.getElementById('testjs').innerHTML='<strong>Hallo</strong> IE!'; return false;">Sag "Hallo"</a</p>
<p id="testjs"></p>
...

Das fehlende ">" beim schließenden </a> am Ende der ersten Zeile war - im übertragenen Fall, der aus einer komplexeren Seitenstruktur und einem Funktionsaufruf statt direktem Script im onclick bestand -die Fehlerquelle für den Unbekannten Laufzeitfehler im IE, während Firefox, Safari, Chrome und andere kein Problem damit hatten. Vielleicht hilft dieser Beitrag ja einmal jemandem, die von mir verplemperte Zeit zu vermeiden - schön wär´s jedenfalls.     

# 
Monday, 03 November 2008

Delphi for PHP 2.0 für Nicht-Delphianer

Nach meinen eigenen Gehversuchen in Version 1 und einem nur virtuellen Überblick über Version 2.0 von Delphi for PHP hatte ich vergangene Woche im Rahmen der fragwürdigen "EKON 12 / Ajax In Action / International PHP Conference - Kombiveranstaltung" (dazu vielleicht später einmal mehr) die Gelegenheit, mir die nachgebesserte Fassung ein wenig näher anzusehen. Man muss schon zugeben, dass die Version deutlich besser als Version 1 dasteht. Und damit ist nicht nur die Hilfe gemeint, denn da war erstens noch reichlich Luft nach oben vorhanden und zweitens ist die Hilfe auch heute - in guter Delphi - Manier - immer noch nicht als Referenzklasse zu bezeichnen. Die allgemeine "Benutzbarkeit" hat aber merklich zugenommen und es ist für mich zumindest denkbar, dass man damit gute Ergebnisse erzielen kann (wenngleich ein Ernst zu nehmender kommerzieller Erfolg des Produkts nach wie vor unwahrscheinlich bleibt). Ich habe es nur mangels Not nie selbst ausprobiert.

Nicht zum ersten Mal habe ich mich aber gefragt, wer genau die Zielgruppe von Delphi for PHP ist. Streng genommen richtet sich Delphi for PHP ja nicht an Delphi-Anwender. Der Name soll zwar dazu dienen zu verdeutlichen, dass damit die Entwicklung von PHP-Anwendungen so einfach wie das Entwickeln in Delphi ist. Vor allem für Einsteiger ist Delphi for PHP schließlich ein prima Werkzeug.... die haben aber leider wahrscheinlich überhaupt keine Ahnung, was Delphi ist oder warum es toll sein sollte. PHP-Einsteigern und "Webentwicklungs-Umsteigern" ist es ganz bestimmt eine enorme Erleichterung, sich möglichst viel Arbeit von einer guten IDE und einem geeigneten Framework abnehmen zu lassen und sich im Idealfall nie mit Dingen befassen zu müssen, die "unter der Haube" stattfinden. Und Delphi for PHP bietet dem Entwickler in der Tat einige Vorteile:

  • Reichlich Wiederverwendbares in Form einer Framework- / Widget-  Kombination (VCL for PHP)
  • Effizientes lokales Entwickeln und Testen direkt nach der Installation
  • Die konfigurationsstressfreie Verwendung eines Debuggers
  • Die vergleichslose Integration eines Frameworks und einer IDE in Form der VCL for PHP und der produktivitätsfördernden Funktionalität einer Delphi-IDE; beides mehr oder weniger aus einer Hand (Quadram)
  • Ein brauchbarer Profiler, der bei der Optimierung von Performanceengpässen hilft
  • Der nahezu "codefreie" Einsatz von AJAX-Funktionalität dank der guten XAJAX-Integration
  • Zugriff (via adodb) auf zahlreiche Datenquellen ohne besonderen Konfigurationsaufwand

Wer also schon seine Wahl getroffen hat, bestimmte Frameworks kennen und lieben gelernt hat und auch mit seinem Editor hoch zufrieden ist, für den mag der Anreiz nicht groß genug sein; zumal man sich den Großteil davon selbst "herbeikonfigurieren" kann. Um aber nicht den typischen Einstieg über Bücher mit Scripten aus dem PHP3-Zeitalter zu machen und sich erst später mit Objekten, Frameworks und anderen Dingen jenseits von echo "Hallo Welt"; zu befassen, ist Delphi for PHP ganz sicher ein viel besserer Einstieg in PHP. Schade nur, dass wahrscheinlich wenige - mangels Kenntnis - diesen Weg wählen werden.

Klar, Delphi for PHP ist natürlich auch weit entfernt davon, perfekt zu sein und viele Funktionen wecken mehr Wünsche als sie zu decken, aber man muss ganz einfach anerkennen, dass hier eigentlich etwas sehr Richtiges getan wurde, indem man rund um PHP ein Gesamtpaket geschnürt hat, das dem Interessenten einen Einstieg erlaubt, ohne dass zuerst WAMPP / XAMPP, ein Editor, ein Framework, ein dies und ein jenes besorgt, installiert, konfiguriert und ausprobiert werden muss. Und vor allem steht hier das schnelle Ergebnis und eine gut bedienbare Benutzeroberfläche des Endprodukts - eben delphilike - im Vordergrund. Mit etwas mehr begleitender Literatur könnte dieses Paket vielleicht sogar noch attraktiver sein. Aber vielleicht macht MS es ja bald besser. Die Annäherung von Microsoft (in Form von Visual Studio, IIS & Co.) an PHP ist jedenfalls nicht mehr zu übersehen.

# 
Monday, 26 May 2008

Update für Delphi for PHP

Eigentlich nur aus schlechtem Gewissen, weil ich nach meiner anfänglichen Begeisterung für Delphi for PHP schnell wieder das Interesse verloren habe (das liegt aber weniger am Produkt, sondern an meinen konkreten Anforderungen), habe ich mir mal das Update 2.0 angesehen - erst online (Onkel Nick zeigt die Neuerungen als Video) und dann anhand des "lebenden" Objekts. Nachdem ich wohl als letzter gemerkt habe, dass das Framework hinter der "PHP VCL" schon lange vor Delphi for PHP als Framework des Herstellers Quadram verfügbar war, habe ich hauptsächlich mit Erweiterungen und Verbesserungen der Komponentenbibliothek gerechnet. Es ist aber doch noch ein wenig mehr als das in die 2.0 gekommen:

  • HTML-Designer: Yet another integrated HTML-WYSIWYG - Editor: Klar, dass man den braucht, wenn man in Featurelisten gegen andere Produkte anstinken will. Ob man ihn für die Arbeit benötigt oder nicht, muss jeder selbst entscheiden. Wer sich einmal angewöhnt hat, einen Browser und einen lokalen Server für die Kontrolle einzusetzen, kann sicher gut darauf verzichten und man wird Delphi auch kaum als Editor Nummer 1 für den Aufbau kompleter Webseiten einsetzen. Delphi soll sicherlich auch kein ExpressionWeb werden (dazu müßten auch noch einige Fehler eingebaut werden, um gleich zu ziehen...).
  • Templated Forms: Wer bisher ASP-Anwendungen mit VS erstellt hat, wird sich darüber sicher freuen. Die Technik ist zwar "nur" deshalb implementiert, damit der neu integrierte HTMl-Editor überhaupt verwendet werden kann, das schmälert aber nicht die Tatsache, dass hiermit ähnlich gut oder schlecht zwischen Code und Design getrennt werden kann wie in anderen Werkzeugen (natürlich klappt das nie zu 100% - es sei denn, man schlägt sich mit WPF, XAML & Co. herum).
  • Editor- und IDE-Erweiterungen: "Code Folding" ist nichts, was ein guter Editor nicht auch in allen unterstützten Sprachen könnte. "Error Insight" sorgt für Syntaxprüfung bei der Eingabe - das erwartet man auch schon mehr oder weniger von jeder IDE. Und auch "Code Insight" ist ein wenig schneller geworden, so dass man hier und da auch als Schnellschreiber darauf zurückgreifen mag. Da ist es schon praktischer, dass neue und ungespeicherte Abschnitte im Quelltext sichtbar gemacht werden. Und andere sinnvolle Anpassungen kennt man schon von Delphi Win32 / .NET. So kann z. B. die Ansicht der Werkzeugpalette durch simple Eingabe einer Bezeichnung gefiltert werden. Der Code Formatter hilft bei der Generierung lesbarer Quellcodes - hier scheinen also hauptsächlich Lücken gefüllt zu sein, die in der V1.0 noch auffällig waren.
  • Profiler & Co.: Ein Profiler hilft nun beim Debugging und Performancetuning einer PHP-Anwendung. Und auch ein kleiner Datenbank / SQL-Explorer erleichert die Arbeit bzw. erspart den Wechsel in eine geeignete Drittanwendung. Und wer mit Oracle-Datenbanken hantieren darf, der bekommt native Komponenten für den Zugriff.

Und es gibt natürlich zahlreiche Detailverbesserungen und Neuimplementierungen bestehender Funktionen, die eine generelle Verbesserung der Geschwindigkeit und Stabilität im Fokus haben... wie bei jedem Update also. Auch wie bei jedem Update ist das Versprechen, die Dokumentation sei nun "noch besser". Ich habe allerdings aufgehört, dies zu überprüfen und suche gleich bei Google, wenn ich Fragen habe.

Die VCL wird derweil ständig weiter gepflegt. Die Integration in Delphi for PHP hat dem Framework offensichtlich gut getan und das Projekt bringt auch ohne Versionssprünge in der IDE laufend verfügbare Erweiterungen und Verbesserungen. Wer sich also mit der 1.0 angefreundet hat, wird die 2.0 wohl ausnahmsweise gut gebrauchen können? So richtig beurteilen kann man es aber sicher erst bei Version 3.0, denn wenn Delphi for PHP wirklich mit Delphi für Win32 / .NET vergleichbar sein will, dann muss die 3.0 weitaus besser als die 2.0 werden. Denn traditionell waren und sind es die ungeraden Releases von Delphi, die man wirklich braucht und 2.0, 4.0 und alles andere waren immer Updates, die man sich eigentlich sparen konnte.

So, Pflicht erfüllt ;) Bleibt mir nur noch zuzugeben, dass ich mit diesem Delphi nicht wirklich ernsthaft arbeiten werde - was aber daran liegt, dass ich nicht jeden Tag mit PHP zu tun habe und vieles eben doch mit Microsoft-Mitteln löse - Schande über mich! Dafür kann ich mich ja schon mal auf die nächste Version des Visual Studio freuen, denn da wird vielleicht auch PHP in die Liste der unterstüzten Sprachen aufgenommen werden (das übrigens ist nicht nur eine reine Spekulation). Windows Server 2008 spricht ja schließlich auch schon "von Haus aus" PHP...

# 
Thursday, 15 May 2008

Codegear wird verkauft: Delphi (mal wieder) in der Diskussion

OK, ich gebe es zu: in den letzten Jahren bin ich mehr und mehr in Richtung Web und .NET "abgedriftet" und habe selbst immer weniger mit Delphi zu tun. Dennoch war es kein schöner Anblick, wie nach der Ausgliederung von Delphi und anderen Produkten aus dem "Borland-Hauptgeschäft" nach und nach aus selbstbewussten "Jetzt legen wir erst mal wieder richtig los" - Parolen eine "keiner will mich mehr haben" - Panik wurde. Und nun wird es also bald amtlich, dass die Suche ein Ende hat (siehe z. B. Artikel bei Heise) Aber: Ist nun nur die Suche nach einem Abnehmer zu Ende oder blüht auch den betroffenen Produkten der Abgesang?

Borland - Inprise - Borland - "DevCo" - Codegear... und nun Embarcadero als neuer Besitzer - das tut wenigen Produkten gut. Der Preis, zu dem normalerweise kaum eine kleine Pommesbudenkette zu haben ist (schlappe 23 Millionen Dollar, wenngleich ich die selbst nicht ohne ein paar Tage sparen aufbringen könnte) signalisiert ebenso, dass die langwierige Suche nach einem Abnehmer nicht ganz so einfach war, wie man es sich bei der "DevCo" seinerzeit noch gedacht hat.

Ist das nun der oft herbeigeredete Anfang vom Ende oder geht es doch wieder in die richtige Richtung? War das nun schon einige Jahre alte Delphi 7 wirklich die letzte Fassung, der man noch echte Verbesserungen ansehen konnte oder kehrt man vom Zukauf immer merkwürdigerer AddOns nun auf einen anderen, solideren Weg zurück? Bringt die "Befruchtung" durch die neue Mutter vielleicht brauchbare Impulse? Keine Ahnung. Aus alter Verbundenheit will ich es aber für das Produkt hoffen - egal, ob ich es noch täglich brauche oder nicht. Vom guten alten Turbo Pascal bleibt sonst einfach nichts mehr übrig... und das wäre einfach viel zu schade ;)

# 
Wednesday, 09 April 2008

Werkzeuge für Web-Entwickler in Apple Safari

Apple´s Browser Safari ist in der neuen Version 3.1 auch für XP und Vista eine Alternative zum IE, die einige Vorteile zu bieten hat. Obwohl sich in Deutschland eine gewisse Internet-Explorer-Müdigkeit breit zu machen scheint, beschert dieser Glücksfall mehr oder weniger ausschließlich dem Firefox (nicht, dass er es nicht verdient hätte) neue Nutzer. Opera oder gar Safari und andere Browser haben zumindest hier zu Lande nicht viel davon. Dafür bekommt Apple für den Safari in der Presse in letzter Zeit vermehrt Aufmerksamkeit, weil die neue Version nicht nur sehr schnell ist und dank WebKit das "Standardkonformste" ist, was derzeit auf einem Windows-Rechner zum Laufen zu bewegen ist, sondern auch weil er einfach Spaß macht. Die "Verbesserung" der Lesbarkeit ist zwar fragwürdig oder zumindest gewöhnungsbedürftig, aber man kann den Effekt auch runterregeln und zumindest die Vergrößerung durch Fettschrift hervorgehobener Textpassagen macht das Überfliegen einer Seite wirklich leichter.

Vor allem aber für Entwickler bietet Safari einige Werkzeuge, die zwar (noch?) gut versteckt sind, aber für den Web-Entwickler hilfreiche Informationen bieten, die in der einen oder anderen Form zwar auch von anderen Werkzeugen für andere Browser dargeboten werden, aber allein schon aus optischen Gründen einen Blick wert sind. Ich bin und bleibe ein bekennender Fan von Firebug und Firefox, wenn es um die Analyse oder Designanpassung von Webseiten geht und die Developer-Toolbar scheint auch im IE8 nicht wirklich an Firebug heranzureichen... aber das muss ja nicht immer so sein. Außerdem bietet der Web-Inspector und die Developer-Tools in Safari auch einige andere Kleinigkeiten, die sonst nur durch AddOns in anderen Browsern oder Zusatztools nutzbar sind.    

Web-Inspector in Apple Safari aktivieren

Web-Inspector aufrufen

Der Weg zur Aktivierung der Developer-Tools und des Web-Inspectors führt beim Safari für Windows über die Parameterdateien im persönlichen Profil des Anwenders. Diese sind im Ordner %APPDATA%\Apple Computer\Safari\ zu finden. Wer unter %AppData% (z. B. "C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\") der Ordner "Apple Computer/Safari" nicht findet: Der Browser muss nach der Installation wenigstens einmal gestartet werden, damit das Profil angelegt wird ;) 

In der Datei %APPDATA%\Apple Computer\Safari\WebKitPreferences.plist, die mit einem beliebigen Texteditor bearbeitet werden kann, muss zur Aktivierung des Web-Inspectors ein neuer Schlüssel erzeugt werden (der Browser sollte geschlossen sein). Key "WebKitDeveloperExtras" eintragen und mit dem Wert "true" belegen:

<key>WebKitDeveloperExtras</key>
<true/>

Der Web-Inspector kann nach einem Neustart über das Kontextmenü in einer Webseite geöffnet werden und zeigt nicht nur Elementeigenschaften ähnlich dem altbewährten Firebug im FF an, sondern auch z. B. die Ladezeiten für jedes geladene Element einer Seite übersichtlich als Grafik.

Developer-Menü in Safari aktivieren

Developer Menü in Safari

Man kann auch in der Hauptmenüleiste ein "Developer"-Menü aktivieren, um nicht zwingend das Kontextmenü verwenden zu müssen, um auf den Web-Inspector zuzugreifen. Außerdem bietet das menü weitere Funktionen an, die bei der Analyse von Webseiten hilfreich sind. Zur Aktivierung wird in der Datei com.apple.Safari.plist unter "Preferences" in oben genanntem Ordner (also der Datei %APPDATA%\Apple Computer\Safari\Preferences\com.apple.Safari.plist) ein ähnlicher Eintrag vorgenommen (für die Version 3.1 des Browsers; bei 3.0 kann der gleiche Schlüssel in de preferences.plist eingetragen werden, die direkt im Profilverzeichnis liegt) :

<key>IncludeDebugMenu</key>
<true/>

Anwendungsbeispiel:
Ladezeiten von Webseiten analysieren

Ladezeitenanalyse
Klick zum Vergrößern

Während die Konsole des Inspektors zwar schöner ist, aber funktional hinter Firebug zurückliegt, der auch Manipulationen am Code und Design zuläßt, so dass Anpassungen gleich live ausgetestet werden können, ist gerade die "Network"-Ansicht mit den Ladezeiten für alle Elemente einer Seite ein sehr hilfreiches Werkzeug bei der Ladezeitenanalyse und der Identifikation evtl. "Flaschenhälse"... und daher nicht nur im Zusammenhang mit dem Qualitätsfaktor für Google AdWords interessant. Auf einem zweiten Bildschirm dauerhaft im Blick während des Surfens erhält man schnell einen Eindruck über das Ladeverhalten auf einer Domain... wenngleich der Safari - Browser ja ohnehin unverschämt schnell ist und derzeit alle Konkurrenten im Vergleich schlägt. Das gilt aber fairerweise schließlich auch für die Referenzseiten, die man ebenso im Safari mit dem Werkzeug grob "durchmißt". Absolut betrachtet sind die Zahlen also vielleicht weniger wert als eine Ladezeitenanalyse, die von Tools automatisiert zu verschiedenen Zeiten und über unterschiedliche Wege angefertigt wird, im Verhältnis zu anderen Seiten ergeben sich aber valide Vergleichsdaten... und es kostet nichts.  

Nachtrag vom 15.04.2008
"Um die Dose zu öffnen, spannen Sie sie in einen Schraubstock ein, führen Sie einen Kabelbinder durch die Öse und spannen Sie diese mit einem Flaschenzug, bis... oder Sie ziehen den Verschluss einfach mit der Hand ab...". Einfacher geht es offenbar auch beim Safari, wenn man die Developer-Werzeuge nutzen will: In Safari 3.1 einfach auf BEARBEITEN - EINSTELLUNGEN - ERWEITERT und dort die Option zur Aktivierung der Tools anklicken, dann kann man sich auch die ganze Turnerei in den Profildateien ersparen ;-)

Erweiterte Einstellungen Safari

Danke an "Geizhals" für den Hinweis (siehe Kommentare zu diesem Beitrag)

# 
Thursday, 03 April 2008

Internet Explorer 8 (IE8) gefahrlos selbst testen

Dass der IE8 den Acid2 - Test ohne allzu große Schmerzen bestanden hat und auch dem Acid3 - Test zumindest eine auswertbare Antwort zurückliefern kann, hatte mich schon neugierig gemacht. Nach anfänglichen Problemen mit dem Download ist es mir dann zwar gelungen, das Setup für die Testversion des IE8 für Vista herunterzuladen, eine Installation auf einem Produktivrechner wollte ich mir dann aber nach einiger Überlegung doch nicht antun. Konflikte mit der bestehenden Installation des IE7, der nur dank "MultipleIEs" friedlich neben seinen Ahnen IE6, IE5.5, IE4 und IE3 lebt, sind schließlich vorhersehbar und den IE7 mit einer so frühen (und englischsprachigen) Version des IE8 zu ersetzen, klingt trotz des "IE7-Simulationsmodus" im Internet-Explorer 8 nicht nach einer guten Idee.

Ein Image des kompletten Systems zu ziehen, wenn man weiß, dass man es gleich wieder zurückspielen wird, um vernünftig weiter zu arbeiten, ist sicher auch nicht die Lösung. Also flugs zur Virtualisierung gegriffen. Ob man nun Virtual PC, Moka, Virtual Box oder VMWare bevorzugt: Auf einem virtuellen PC ist der Test solcher Vorabversionen zweifelsfrei einfacher und problemloser als auf einem Rechner, auf dem man ernsthaft arbeiten möchte.

IE8 und Virtual PC

Angenehm überrascht war ich da, dass man bei Microsoft ein fertiges Image von Windows XP inkl. Internet Explorer 8 für Virtual PC 2007 finden kann. Neben den älteren Fassungen des fertigen XP - VPC mit IE6 oder IE7 hat man erfreulicherweise auch gleich eine Variante für frühe Kompatibilitätstests zum IE8 im Download Center bereitgestellt. Damit ist ein gefahrloser und vor allem problemloser Test des IE8 ein Kinderspiel und man muss sich nicht einmal selbst Gedanken über die Installation eines entsprechenden virtuellen Systems machen oder gar sein Gewissen mit virtuellen Installationen von Betriebssystemen belasten, die die man gar keine Lizenz hat. Die Systeme, die mittels eines "Internet Explorer Application Compatibility VPC Image" erstellt werden, sind zwar nur in englisch verfügbar, dafür aber bis zum Ende der beschränkten Laufzeit (derzeit bis Anfang Juli 2008) auch legal. Da sie schließlich nur dem Testen dienen, muss man sich auch keine großen Gedanken wegen der eingeschränkten Nutzbarkeit machen und es ist davon auszugehen, dass rechtzeitig neue VPC-Images zur Verfügung gestellt werden, wenn die Nutzbarkeit der aktuellen Fassungen ausläuft. Klasse Service von MS, der nur dadurch geschmälert wird, dass man sich bei der Beschreibung der herunterladbaren Dateien nicht gerade um epische Breite bemüht hat....

Wer deshalb von den Dateinamen der Downloadliste unter oben genanntem Link verrwirrt ist und nicht weiß, was genau er herunterladen soll: IEx_VPC.EXE steht für ein XP-Image mit Internet Explorer Version x. Die anderen drei Dateien IE7-VIS1.exe bis IE7-VIS2.rar enthalten offensichtlich genau das, was man vermutet: Einen komplett fertig installierten und ebenso englischen Virtual PC mit Windows Vista (Business) und dem IE7. Wer also schon immer mal sehen wollte, ob sich auch Vista ordentlich virtualisieren läßt und den Download der 1.8 GB nicht scheut, darf sich hier ebenfalls bedienen, ohne sich eine Vista-Lizenz aus den Rippen schneiden zu müssen. Für gewisse Tests sicher recht praktisch; für einen ersten Eindruck vom IE8 aber definitiv die falsche Wahl...

# 
Tuesday, 25 March 2008

Neue Vorlage für Widerrufsbelehrung und Rückgabebelehrung

Prima, wenn es Muster vom Bundesministerium für Justiz (BMJ) gibt, die man z. B. bei so sensiblen Themen wie der Widerrufsbelehrung in einem Online-Shop einsetzen kann. Leider haben die bisherigen Muster aber nicht immer für Sicherheit gesorgt, sondern hier und da auch Anlass zur Klage gegeben. Aus diesem Grund können neue Mustertexte für Widerrifsbelehrung und Rückgabebelehrung im Rahmen der BGB-Informationspflichten-Verordnung beim BMJ online bezogen werden, die ab dem 1.4. gültig sind. Wenn Sie in Ihrem Shop ebenfalls im Bestellvorgang sichtbar und möglichst rechtssicher auf Widerrufs- oder Rückgaberecht hinweisen wollen, um die Fristen bereits ab der Tätigung des Onlinekaufs laufen zu lassen, sollten Sie also ab April auf die neuen Muster aufspringen und passende Belehrungstexte in den Shop einpflegen. Die alten Texte bleiben noch mit einer Übergangsfrist "gültig" (siehe http://www.bmj.de/bgbinfovo)

# 
Tuesday, 04 December 2007

eBooks kostenlos für Entwickler zum Download

Der Tipp ist einfach zu gut, um ihn nur in ein einzelnes Blog zu schreiben: Ein aufmerksamer Kollege machte mich gerade auf die Advendskalenderaktion bei entwickler.press aufmerksam: Dort kann man jeden Tag (und nur an diesem einen Tag!) jeweils einen Titel als kostenloses eBook gratis herunterladen. Also nix wie hin und bis Weihnachten dranbleiben, wer etwas mit Fachliteratur für Softwareentwickler anfangen kann (als Weihnachtsgeschenk wegmailen zählt nicht!). Bisher schon verpaßte eBooks (Mist!):

  • managed DirectX mit C#
  • Visual C#
  • Java 6

Heute noch als eBook zum Download zu bekommen:

  • das Google Web Toolkit

Also nix wie hin, wenn es noch nicht zu spät ist...

#