Sonntag, 30. November 2008

Wieder zurück - meinereiner und mein Rechner

Bin wieder im Lande. Mein Rechner auch. Ich muss am Sonntag arbeiten und eine VHS-Powerpoint-Schulung halten (nicht schlimm - draußen ist Schneeregen - man verpasst nix). Mein Rechner sollte arbeiten, will aber nicht. Der Tausch des Mainboards macht ziemliche Nacharbeiten nötig. Bis auf die Onboardnetzkarten habe ich den Kerl aber wieder eingerichtet. Und bevor ich mir weiter die Zeit um die Ohren schlage baue ich die nächsten Tage wahrscheinlich ne neue Netzwerkkarte ein.

Freitag, 28. November 2008

Und wieder BKA-Gesetz

Heute geht es in die Entscheidung im Bundesrat. Dürfen private Computer online durchsucht werden? Ob der Gesetzgeber bedacht hat was passiert, wenn ein potentieller Terrorist seinen Computer als Geschäftscomputer anmeldet? Ist dann die Untersuchung verboten? ;-)

Was ein Schwachsinn.

Donnerstag, 27. November 2008

AJAX, nichts als AJAX - und eine neue Sicherheitslücke

Bin am Sonntag nach Nürberg gereist, dann 3 Tage dort geschult und Mittwochabend weiter nach Landshut (zur BSA, wo ich regelmäßig unterrichte). Gleich geht hier der Kurs los. Und nächste Woche bin ich 3 Tage im Taunus am Schulen. Und was? AJAX. Immer wieder AJAX. Das ist eine richtige AJAX-Jahresabschlussralley.

Und in Bezug auf mein geliebtes AJAX zeigt sich aktuell eine massive Lücke in der Konzeption von Antiviren-Software. Diese kann man nämlich mit AJAX überlisten.

Im Grunde ist das Verfahren ganz einfach und eigentlich so naheliegend, dass es mich wundert, warum erst jetzt das Thema aufkommt.

Ein Angreifer eines Rechners benutzt dabei einfach fragmentierten Schadcode, den konventionelle Antiviren-Programme nicht erkennen können. Diese scannen nur vollständige Signaturen. Für Antivirenprogrammen erhält ein Browser unverdächtig wirkendenden Client-Code, der auf einer Webseite eingebettet wird. Ein Javascript lädt dann stückchenweise Schadecode per AJAX nach. Im RAM wird der Schadcode dann zusammengesetzt, was die Erkennung durch Schutzprogramme noch schwieriger macht. Empfangener Schadcode wird dazu einfach in einer Javascript-Variable gespeichert. Mit weiteren Operationen lässt sich daraus ein Script konstruieren und ins DOM einbinden.
Diese so genannte Script Fragmentation funktioniert angeblich Browser-übergreifend, obgleich bisher noch keine Angriffe in der freien Wildbahn bekannt sind.

Es ist zu hoffen, dass die bestehende Schutzkonzepte von Antivirenprogrammen angepasst werden.

Sonntag, 23. November 2008

AJAX-Schulungen in Nürnberg und Landshut

Heute Abend düse ich ab zu einem Wochentripp nach Bayern. Zuerst habe ich eine 3-tägie AJAX-Schulung in Nürnberg und im Anschluss noch eine 2-täge AJAX-Schulung in Landshut. Hoffentlich schneit es unterwegs nicht zu stark.

Samstag, 22. November 2008

Buch Google Web Toolkit als eBook


Mein Buch Google Web Toolkit (Ralph Steyer, entwickler.press, ISBN 978-3-939084-21-1) wird die nächsten Tage neu als eBook erscheinen.

Hackeralarm rundrum

Vor einigen Wochen wurde ja eine private Webpräsenz von mir gehackt (von meiner Band). Ziemlich kurz nachdem auch die Webseite gehackt wurde, über die wir uns immer zum Gleitschirmfliegen verabreden. Und fast zeitgleich gab es Angriffe auf die Webpräsenz von einem Geschäftspartner. Jetzt steht seit einigen Tagen ein anderer Geschäftspartner voll im Fokus von Angriffen. Irgendwie scheinen die Attacken zuzunehmen. Oder ich habe es nur vorher nur nicht so wahrgenommen, da ich bzw. mein Umfeld nicht so betroffen war.

Freitag, 21. November 2008

Rechner zum Teufel

Super. Mein Hauptrechner ist am A.... Ich bin mir ziemlich sicher, dass entweder das Motherboard (sehr wahrscheinlich) oder das Netzteil defekt ist.

Der PC ist einfach ausgegangen und startet nicht mehr. Lüfter haben alle Strom, Netzwerkkarte wohl auch (Licht leuchtet). Aber nicht einmal das BIOS kommt hoch, das DVD-LW lässt sich nicht öffnen, der Ausschalter unterbricht den Strom nicht. Bin zwar Softwareentwickler und kein Hardwarespezialist, aber das sollte eindeutig sein.

Da der Rechner noch keine 1,5 Jahre alt ist. fällt der Defekt wohl noch unter die Garantie von 2 Jahren. Hab ihn gestern Abend zum Händler geschickt und harre der Dinge.

Die Festplatte habe ich vorher ausgebaut, da mein aktuelles Programmierprojekt und ein paar andere wichtige Daten darauf und in Arbeit sind. Gerade rechtzeitig zum Ausfall habe ich mir einen USB-Adapter zum Anschließen von IDE- und SATA-Festplatten an einen Rechner zugelegt. Kann sich sofort auszahlen.

Donnerstag, 20. November 2008

Onlinedurchsuchung auf der Kippe?

Ich fasse es nicht - der Bundesrat kippt möglicher Weise die Onlinedurchsuchung bzw. das so genannte BKA-Gesetzt. Sollte es doch noch Politiker mit Moral geben? Oder die Rechte der Bürger beachtet werden? Irgendwie kann ich es noch nicht glauben.

Montag, 17. November 2008

[object Error] im Internet Explorer

Ich bin endlich mal wieder am Weiterentwickeln meiner RIA. 3 Tage habe ich Zeit, bevor ich wieder schule.

Jetzt hatte ich mir für heute vorgenommen, endlich den Fehler im Internet Explorer rauszubekommen. Wie schon früher gepostet, werde ich wegen dem Internet Explorer bald wahnsinnig. Und nicht nur ich, wenn ich die Kommentare anderer Webentwickler im Internet sehe.

Jetzt programmiere ich ja gerade eine komplexere AJAX-RIA mit Dojo und Prototype als AJAX-Frameworks zur Unterstützung. Und wie gesagt funktioniert sie auch in allen relevanten Browsern. Nur der Internet Explorer kapiert es einfach nicht. Die Applikation meldet einen [object Error].

Jetzt habe ich bisher den IE einfach ignoriert und die RIA für alle anderen Browser entwickelt. Nur irgendwann muss ich mich dem Problem stellen.

Nun habe ich heute morgen alles Mögliche im IE aufgerüstet:

Script Debugger
,
DebugBar,
IE Developer Toolbar,
IE HttpAnalyzer

Eben alles, was man so braucht, um eine Webapplikation zu analysieren. Zwar gibt es für den IE noch lange nicht die Unterstützung wie für Firefox, aber immerhin ist mittlerweile da auch was da. Und bei dem komplexen Zusammenspiel zwischen AJAX, Prototype und Dojo kann der Fehler ja wer weis wo stecken. Gerade im Zusammenhang mit AJAX sind ja eine Vielzahl von Fehlern im IE bekannt.

NUR!

Mit dem Zeug war ich so schlau wie zuvor. Nichts zu erkennen, warum das Teil aussteigt. Nur eben eine vollkommen nichstsagende Fehlermeldung, die auf irgendein schwerwiegendes Problem hinweist.

Dann also Holzhackermethode und in die JavaScripts nach jedem Schritt ein alert() rein. Und so schrittweise dem Fehler genährt.

Und irgendwann tatsächlich die Zeile gefunden, die den Fehler auswirft:

$(index).style.background = "lightgray";

Bisschen gespielt:

$(index).style.background = "red";



Kein Fehler mehr!

Nicht geglaubt!

Das kann nicht sein.

Weiter gespielt mit anderen Farbnamen.

Kein Fehler mehr!

Ich fasse es nicht.
Wie blöd kann ein Browser sein? Er kennt einfach bei einer Zuweisung per DHTML den Standardtoken "lightgray" nicht und wirft eine Fehlermeldung aus, als ob da ein ultraschwerwiegendes Problem vorliegt ;-(.

Hab alle Token "lightgray" in der Applikation beseitigt und sie läuft auch im IE. Zwar noch nicht ganz fehlerfrei und das Design sieht besch... aus. Aber das sind die üblichen Mängel im IE und die bekomme ich recht sicher in den Griff.

Samstag, 15. November 2008

Ein paar Erklärungen zu dem Java-Programm

Nachdem ich gestern ja die neue Version von meinem Kodierungsprogramm RJSKryp als JAR-Datei online gestellt habe, sind bereits erste Fragen aufgetaucht. Und zwar zu dem JAR-Format.

Offensichtlich erkennen einige Java-verweigernde Betriebssysteme (was meine ich bloß ;-)) bzw. so eingestellte Browser die Bedeutung nicht richtig und interpretieren es als ZIP-Format.

Das ist jetzt nicht grundsätzlich falsch. Das JAR-Format (Java Archive) ist binärkompatibel zum ZIP-Format. Es enthält jedoch zusätzlich eine so genannte Manifestdatei mit Metainformationen. Darüber kann man beispielsweise eine Klasse explizit spezifizieren, um für eine JVM (Java Virtual Machine) diese spezifische Klasse als Startklasse einer Java-Applikation anzugeben.




So sieht etwa der Inhalt von der Manifestdatei in meiner JAR-Datei rjskryp.jar aus:


Manifest-Version: 1.0
Class-Path: .
Main-Class: de.rjs.main.RJSKryp


Deutlich ist die Java-Klasse de.rjs.main.RJSKryp als Startklasse zu erkennen.



Das erlaubt es jetzt, dass das Programm sogar über den Browser direkt beim Anklicken des Links von der JVM ausgeführt werden kann.

Vollkommen analog lässt das Programm lokal starten, wenn die JAR-Datei zuerst lokal gespeichert wurde.

Den Inhalt der JAR-Datei kann man sich aber auch in einem Programm wie 7-ZIP ansehen, da das Format ja wie gesagt binärkompatibel zum ZIP-Format ist.

Freitag, 14. November 2008

Java-Programm zum Download

Ich hatte vor einigen Jahren für verschiedene meiner damaligen Java-Bücher ein einfaches Kodierungsprogramm konzipiert, das ich dann in den verschiedensten Varianten in den Büchern durchgespielt hatte.

Einmal natürlich zur Demonstration von Dateizugriffen mit Java sowie Programmierlogik (also im Wesentlichen Versionen, die auf Konsolenebene gearbeitet haben) und dann als Erweiterung mit einer GUI (zur Demonstration von verschiedenen Techniken mit dem AWT und vor allen Dingen Swing).



Im Rahmen meiner aktuellen Java-Schulung habe ich nun die letzten 2 Wochen ein Praktikum meiner Teilnehmer betreut. Und dafür habe ich als ein Beispiel mein altes Kodierungsprogramm wieder aufgewärmt und parallel zu den Lösungsansätzen meiner Kursteilnehmer selbst eine neue Variante auf Basis von Swing und RandomAccessFile weiterentwickelt.

Hier ist der Download einer ausführbaren Version von dem Programm als JAR-Datei

Das Java-Programm ist natürlich vollkommen plattformneutral und öffnet damit unter jedem Betriebssystem mit einer passenden JVM eine beliebige Datei (über einen JFileChooser). Dabei werden die Daten nach dem Einlesen dann wieder in eine andere Datei geschrieben, deren Name und Ort Sie natürlich frei wählen können.

Die Daten werden vor dem Rausschreiben natürlich auf nützliche Art und Weise verarbeiten.

Dazu wird ein Verschlüsselungs- und Entschlüsselungalgorithmus implementiert, der auf einer Verschiebung der Zeichenkodierung basiert. Der verwendete Algorithmus ist auf Grundlage der Cäsar-Chiffre konzipiert. Dies ist ein einfacher Verschiebungsalgorithmus. Diese Verschlüsselungsmethode lautet wie folgt: für jeden im Quelltext vorkommendes Zeichen setze im Chiffretext einen um einen festen Parameter versetztes Zeichen. Wenn beispielsweise im Quelltext der erste Buchstabe des Alphabetes - ein „A“ - auftaucht und der Verschlüsselungsparameter „3“ ist (angeblich der von Cäsar benutzte Parameter), wird im Chiffretext der vierte Buchstabe des Alphabetes - ein „D“ - genommen, usw. Die Dekodieren geht genau umgekehrt.

Die Verschiebung ist übrigens im Programm über einen Slider frei wählbar und sämtliche Angaben an das Programm werden auf über eine GUI übergeben (JSlider, JOptionPanel, JFileCooser, JButton, JMenuBar, etc.). Ebenso ist das Programm gegen fehlerhafte Verwendung abgesichert. So findet etwa vor dem Erstellen der neuen Datei eine Kontrolle statt, ob die zu erstellende Datei evtl. schon vorhanden ist. In diesem Fall muss der Anwender bestätigen, dass die Zieldatei überschrieben wird.

Zugegebenermaßen ist die angewendete Technik zur Verschlüsselung sehr einfach, bei binären Dateien ist die einfache Cäsar-Chiffre trotzdem wirkungsvoll. Durch die bereits in der Quelldatei vorkommenden Steuerzeichen ist ein Erraten der verwendeten Konstanten extrem erschwert. Überdies kann man alleine durch eine solche Verschiebung von Zeichen automatische Spionagetools in einem Netzwerk (etwa dem Internet) austricksen, die Texte nach bestimmten Kennworten (etwa Geheimzahl oder Kreditkartennummer) scannen.

Hier ist der Download einer ausführbaren Version von dem Programm als JAR-Datei

Donnerstag, 13. November 2008

BKA-Gesetz und Onlinedurchsuchung

Jetzt ist die Sache wohl dingfest - der Bundestag beschließt das umstrittene BKA-Gesetz samt der heimlichen Durchsuchung privater Computer. Aber wozu die gesamte Aufregung?
Natürlich - Privatshäre gibt es nicht mehr. Betrüger, Verbrecher, Firmen und Staat - alle spionieren Alle und Jeden aus. Aus den unterschiedlichsten Gründen. Teils vielleicht sogar ehrenwert, meist aber zumindest halbseiden und überwiegend mit üblen Absichten. Darüber braucht man m.E. gar nicht diskutieren.

Aber - die Aufregung um die Onlinedurchsuchung ist m.E. überflüssig. Warum? Weil es nicht funktionieren wird!

Wie zur Hölle soll denn eine solche Onlineuntersuchung ablaufen? Soll das BKA einem Verdächtigen eine Mail mit Dateianhang schicken und ihn bitten, diesen anzuklicken? Sie haben hier ein Freilos für "Wer wird Millionär". Ich lache mich rund. Damit bekommt man doch nur die Super-DAUs. Schon viele DAUs wissen, dass man sowas nicht macht.

Der Staat kann doch nicht die gleichen Mittel anwender wie Cracker und Standardprogramme verseuchen und Viren und Trojaner ins Gefecht schicken, die wahllos Computer attackieren.

Und selbst wenn solche illegalen Mittel angewendet werden, kann man von potentiellen Tätern annehmen, dass sie zumindest eine VHS-EDV-Grundlagenschulung hinter sich haben und diesen Attacken nicht durch die brutals mögliche Dummeheit zum Opfer fallen.

Also denke ich, die Onlinedurchsuchung ist zwar moralisch als auch in Bezug auf das, was ich von der Verfassung verstehe, ein staatliches Verbrechen, aber auf Grund der Wirkungslosigkeit nur eine Geldvernichtung.

Dienstag, 11. November 2008

Open Source Barometer - kein Interesse an Silverlight & .NET

Ich habe ja schon mehrfach eine Bemerkung zu Silverlight gepostet. Und es ist für mich durchaus interessant, die Perspektiven der EDV im Allgemeinen und RIAs im Besonderen in verschiedene Richtungen auszuloten. In dieser Hinsicht ist die aktuelle Studie von Alfresco Software ziemlich interessant.

In Hinsicht auf RIAs kommt darin klar raus, dass Unternehmen auf heterogene RIAs setzen.
Alfresco Software stellte in der größten Umfrage von April bis September 2008 zu Open Source-Infrastrukturen/Stacks in Unternehmen (25.000 Mitgliedern der Alfresco-Community mit insgesamt 74.000 Mitgliedern) die Frage nach der Akzeptanz von Open Source im Enterprise-Bereich im Allgemeinen und von bestimmten Technologien bei RIAs im Speziellen.
Die meisten Befragten arbeiteten dabei in einer sehr heterogenen Umgebung mit Windows als Basis. Allerdings wurden durch die Bank .NET samt wichtiger Web-Technologien abgelehnt. Und insbesondere wurde ausdrücklich Silverlight nicht akzeptiert.

Stattdessen favorisieren die meisten Befragten ausdrücklich eine ECM-Lösung auf der Basis einer Java-Architektur und AJAX mit integrierten Web 2.0-Tools. Sieht so aus als hätte ich mir doch die richtigen Techniken ausgesucht ;-).

Montag, 10. November 2008

Migration von altem JavaFX Script-Code

Hier gibt es alle Informationen, wie von altem JavaFX Script-Code auf die notwendige Syntax für die kommende Finalversion 1.0 umgestiegen werden kann:

https://openjfx.dev.java.net/migration.html

Hier ist die aktuelle API-Struktur zu finden:
http://javafx.com/releases/preview1/docs/api/

Sonntag, 9. November 2008

JavaFX und kein Ende


JavaFX scheint so langsam wirklich in Schwung zu kommen. In meiner Seite zu JavaFX - http://www.javafx-buch.de ist immer regerer Verkehr zu beobachten und es melden sich ziemlich zahlreich die Besucher an. Mehr als z.Z. in meinem AJAX-Portal - http://www.ajax-net.de (wobei das mehrere Hundert angemeldete User Vorsprung hat).

Jetzt kommen die meisten Besucher ziemlich sicher über mein Buch zu JavaFX bzw. meine DVD.

Nun zeigt sich aber, dass sich in JavaFX auf den ersten Blick jedoch Einiges geändert geändert hat. Wobei sowohl das Buch als auch die DVD m.E. immer noch eine sehr gute Basis für den Einstieg darstellen und mir z.Z. kein anderes deutschsprachiges Lehrmaterial bekannt ist (bisher halten sich andere Autoren und Verlage bzgl. JavaFX bedeckt, um nicht dem Risiko ausgesetzt zu sein, wenn sich zu
viel ändert). Bleibt im wesentlichen die offizielle Doku von Sun: java.sun.com/javafx

Und was die genauen Änderungen angeht - auf den 2. Blick relativiert sich die Sache ziemlich. Man
muss - soweit ich das bisher einschätzen kann, im wesentlichen drei Dinge in Bezug auf mein Buch bzw. die DVD beachten:

1. Die Struktur des APIs - hier finden sich z.B. alle Swing-Klassen nun unter javafx.ext.swing
2. Konsequent function() verwenden. Ich fand den Ansatz mit operation sowieso ziemlich taff. Den Grund für die Zweiteiligung habe ich nicht eingesehen und Sun hat den Weg wohl auch eingestellt.
3. Es gibt natürlich diverse Erweiterungen

Dienstag, 4. November 2008

Office 2007 - warum nur?

Ich bin gerade an einem Arbeitsplatz, auf dem nur Office 2007 verfügbar ist. Eigentlich sollte ich es langsam leid sein über Microsoft zu lästern. Aber Word 2007 frustet mich mal wieder dermaßen - ich kann nicht anders ;-)

Warum?

Warum ist die verdammte Bedienung von Office in der Version 2007 so verändert? Da arbeitet man seit unzähligen Jahren mit Office-Programmen, schreibt zig Bücher, hält Schulungen und dann sitzt man wie ein Anfänger vor diesem Mistprogramm und sucht die Befehle. :-(

Montag, 3. November 2008

Google Chrome Beta 0.3.154.9 mit Sicherheitsupdate

Der höchstumstrittene Browser Google Chrome steht in einer Beta 0.3.154.9 für Windows XP SP2 und für Vista zur Verfügung. Das Update enthält insbesondere die Beseitigung einer Sicherheitslücke, die zum Spoofing ausgenutzt werden konnte. Daneben werden ein paar weitere Probleme der Vorgängerversion beseitigt.

Eigentlich ist die Beseitigung der Sicherheitslücke lobenswert. Aber die zentrale Frage ist doch, ob nicht Chrome selbst die Sicherheitslücke ist? Und die zu beseitigen bedeutet doch nicht anderes als den Browser nie zu installieren oder benutzen.

Sonntag, 2. November 2008

Jaxer 1.0 erschienen

Endlich ist der in Aptana integrierte Open-Source-AJAX-Server in der Finalversion fertig. Ich bin sowieso ein Fan von Aptana respektive dem zugrunde liegende Eclipse und damit wird die gesamte Sache noch runder.

Das Besondere an Jaxer ist, dass damit Webapplikationen JavaScript auch auf dem Server verwenden können (ähnlich wie man es früher in ASP gemacht hat - nur viel, viel leistungsfähiger und besser). Jaxer stellt dazu ein vollständiges JavaScript-Framework mit zahlreichen Neuerungen und Erweiterungen des JavaScript-Umfangs bereit.

Jaxer kann nativ bereits mit HTML, JavaScript, CSS , XMLHttpRequests, JSON und DOM-Scripting umgehen. Als Erweiterung kann man über den Server aus JavaScript heraus direkt auf Datenbanken, Dateien, Netzwerk, Logging, Prozessmanagement und andere integrierte APIs auf dem Server zugreifen. So etwas kann man bei clientseitigem JavaScript natürlich vollkommen vergessen.

Technisch verwendet Jaxer die JavaScript-Engine aus Firefox. Diese wird aber in einer Server-Version zur Verfügung gestellt. Damit können einzelne JavaScript-Funktionen gezielt auf dem Server, dem Client oder auch verteilt auf Client und Server ausgeführt werden.
Serverseitige JavaScript-Funktionen können auch direkt aus einer Website heraus aufgerufen werden. Und zwar mit minimalem Aufwand, denn dazu ist im Grunde nur eine Codezeile notwendig. Die gesamte die Kommunikation (auch asynchron) wird im Hintergrund von Jaxer erledigt.

Als weitere Features unterstützt Jaxer 1.0 RESTful APIs sowie native Unterstützung für JSON.

Jaxer 1.0 ist wie schon erwähnt Open Source unter der GPL, aber es gibt auch eine kommerzielle Pro-Version.

Jaxer wird als Teil des Aptana Studio 1.2 distributet, kann aber auch als eigenständige Anwendung unter aptana.com/jaxer heruntergeladen werden. Zudem kann man Jaxer kostenlos auf Aptanas Server-Cloud ausprobieren.

Onlinetraining mit Ralph Steyer

Onlinetraining mit Ralph Steyer
Onlinetraining mit Ralph Steyer und anderen Autoren bei Video2Brain