Direkt zum Hauptbereich

Posts

Es werden Posts vom August, 2006 angezeigt.

Hightech-Strategie für Deutschland

Wußten Sie, dass die deutsche Branche für Informations- und Kommunikationstechnologien (IKT) rund 750.000 Menschen beschäftigt und der Markt für IKT in Deutschland ca. 134 Milliarden Euro beträgt? Wußten Sie, dass mehr als jeder zweite Halbleiter aus Europa "Made in Germany" ist? Über 90% aller Prozessoren arbeiten nicht in einem PC, sondern in einem sogenannten "eingebetteten System" -- interessant, nicht wahr? (Seien Sie sicher, da läuft kaum Java oder C# drauf ;-) Ach, schon gewußt, wie bedeutsam simulierte Realitäten, Grid Computing und das Internet der Dinge sind? All diese Informationen habe ich aus der gestern (Mittwoch, 30. August 2006) vom Bundesministerium für Bildung und Forschung (BMBF) veröffentlichten " Hightech-Strategie für Deutschland " (wählen Sie die Langfassung, auch hier zu beziehen), siehe S. 54 ff. Ich finde, da lohnt es sich hineinzuschauen.

Netze spannen mit Design by Contract

Was verbirgt sich hinter diesem Methodenaufruf? method float squareRoot(float: number) Eine Methode namens "squareRoot" (Quadratwurzel), die zu ihrem Aufruf eine Fließkommazahl "number" erwartet und eine Fließkommazahl zurückgibt. Es ist unschwer zu erraten, was die Methode tut. Sie berechnet die Wurzel zu einer Zahl. Sicher? Die Vermutung, was die Methode macht, begründet sich einzig auf der Namensgebung. Namen sind äußerst wichtig -- nicht nur beim Programmieren. Ein Name löst bei uns Menschen eine Menge aus. Wir verbinden mit Namen Erfahrungswerte, ordnen ihnen Bedeutung (Semantik) zu etc. Allerdings klären Namen nicht unbedingt alles ab. Akzeptiert die Methode auch negative Zahlen als Eingabe? Was passiert dann? Liefert die Methode nur die positive Lösung zu einer Wurzel oder auch die negative Lösung? (Die Wurzel aus 4 ist 2, aber auch -2 ist ein gültiges Ergebnis: -2 mal -2 = 4.) Es gibt Techniken, Methoden wesentlich präziser zu spezifizieren als rein übe...

Fuzzing

In der aktuellen c't 18/2006 wird das Fuzzing vorgestellt (Christiane Rütten: Datensalat -- Schwachstellensuche mit Fuzzing ). Das Fuzzing hat nichts mit Fuzzy-Logik zu tun. Gemeint ist eine weitgehend automatisierte Suche nach Programmfehlern. Das Fehlverhalten eines Programms versucht das Fuzzing zu provozieren durch die Generierung zufälliger Eingabewerte bis hin zur gezielten Mutation bekannter, gültiger Eingabewerte. Die Grundidee ist zwar nicht neu, aber das Fuzzing scheint erst jetzt zur Blüte zu kommen. Mit dieser Technik sind in jüngster Zeit viele Schwachstellen in allen gängigen Web-Browserns gefunden worden. Das Fuzzing ist geeignet für Kommunikationsprotokolle jeglicher Art und natürlich auch für Datenformate. Nach dem Lesen des c't-Artikels bekomme ich geradezu Lust, es einmal selber zu probieren. Es gibt so viele Protokolle und Implementierungen, da dürfte ein Erfolgserlebnis nicht lange auf sich warten lassen. Es gibt auch schon fertige Tools , die man dazu nut...

Defizite im Software Engineering

Dieses Paper " Defizite im Software Engineering " von Siegfried Wendt bringt es brillant auf den Punkt, wenn er von Präsenzwissen und der Anschauungssemantik spricht, Abstraktion von Vergröberung unterscheidet, das Problem der Arbeitsteilung beleuchtet und Ausbildungsdefizite im Software Engineering aufzeigt. So klar hat mir das noch keiner vor Augen geführt. Der Artikel ist erschienen in Informatik-Spektrum 16/1 (1993): 34 - 38. Heidelberg: Springer, siehe hier . Siegfried Wendt ist emeritierter Professor; er war der Gründungsrektor des Hasso-Plattner-Instituts in Potsdam.

Wie alt ist die Informatik?

Wie alt ist die Informatik? 60 Jahre? 70 Jahre? 80 Jahre? 1941 baute Konrad Zuse die Z3, den wohl ersten funktionstüchtigen Computer. Zuvor entstehen in den 1930er Jahren für die Informatik so grundlegende Arbeiten wie etwa die von Alan Turing und Alonzo Church . Es scheint also hinzukommen mit den 70, 80 Jahren. So alt ist das, was wir heute als Informatik bezeichnen. Die Prinzipien der Datenspeicherung und der Datenverarbeitung sind allerdings viel älter, sehr viel älter -- 3.5 Milliarden Jahre. Vor so langer Zeit kehrte genug Ruhe auf dem Planeten Erde ein. Das Leben konnte entstehen und gleich zu Beginn schuf die Evolution einen Code, der die Baupläne des Lebens speicherte. Wir nennen das heute den genetischen Code. Die ganzen biochemischen Prozesse, die diesen Code zu lesen verstehen und zur Produktion von Aminosäuren verwenden, sind im Grunde nichts anderes als eine biochemische Datenverarbeitungsanlage, ein Computer. Der Code steckt ausnahmslos in jeder unserer Zellen. In ein...

JavaScript Port-Scanning

So kann man sich irren. Bislang hielt ich JavaScript für ziemlich harmlos. Der in einer Webseite eingebundene JavaScript-Code wird im Browser clientseitig ausgeführt und ermöglicht eindrucksvolle Effekte, wie es neuerdings AJAX-Applikationen demonstrieren. JavaScript bleibt dabei gewissermassen im Gefängnis der Ausführungsumgebung des Browsers eingesperrt. Schaden kann JavaScript dabei nicht anrichten. JavaScript hat z.B. keinen Zugriff auf das Dateisystem. Aber mit JavaScript kann man dennoch durch die Gitterstäbe des Browsergefängnisses spähen! Und das sogar ziemlich weit. Es ist möglich Port-Scans durchzuführen und das Rechnernetz eines ahnungslosen Surfers auszuspähen. Die verwendete Technik dahinter hat etwas bestechendes -- einmal abgesehen davon, was man damit anrichten kann. Ich wurde darauf in einer heise-Meldung aufmerksam. Die Idee ist so einfach wie genial: Nehmen wir im ersten Schritt die Suche nach ausspähbaren Zielen. Das Image-Objekt in JavaScript kennt ein Attribut ...

Semacodes lesen

Es gibt Leute, die haben so schön einfache Ideen. Kennen Sie Semacodes ? Das ist ein zweidimensionaler Barcode. Die Bahn benutzt z.B. diesen Code für Online-Tickets, auch die Post bedient sich der Semacodes. Ein quadratisches Feld aus lauter schwarzen und weißen Kästchen kodiert binär die Daten. Was man für Semacodes benötigt, ist ein Lesegerät. Und hier ist irgendwann ein pfiffiger Mensch auf die Idee gekommen, da ja nun fast jeder mit einem Fotohandy herumläuft, die Kamera als Lesegerät zu nutzen. Ein Java-Programm reicht aus, das die Bildverarbeitung erledigt, was nicht ganz einfach, aber auch nicht so schwer ist ... fertig. Wenn Sie wollen, nehmen Sie das gleich zum Einstiegspunkt ins Web. So auch die Idee des Semapedia-Projekts . Hier noch ein paar ähnliche Ideen dazu.

InformaTiCup 2006

Die GI , die Gesellschaft für Informatik e.V., schreibt dieses Jahr ihren 2. Wettbewerb für Studierende aus, den InformatTiCup . Die Aufgaben finde ich sehr reizvoll und eine schöne Herausforderung für kleine Teams.