Alle Beiträge von Konstantin Filtschew

Über Konstantin Filtschew

Building an operation system without source code, is like buying a self assemble space shuttle without instructions. (Author unknown)

InternetX DNS-Server unter Angriff und Twitter als Informationsquelle

Heute liefen wieder mal größere DDOS (Distributed Denial of Service) Angriffe auf den Provider InternetX. Es war ganz bestimmt reiner Zufall, dass der Angriff Heute an einem Feiertag in Bayern ausgeführt wurde. Um diese Information heraus zu finden, habe ich mir das erste Mal gedanken gemacht – welche Quelle sagt mir unkompliziert, aktuell und schnell was da los ist?

Auf der Webseite von InternetX war natürlich nichts von einer Störung zu sehen. Es wird auch keine Meldung geben, den solche Anbieter lassen lieber die Hotline lahmlegen und die Kunden verärgert, als Information öffentlich auf der für Informationen gedachten Webseite zu stellen. Im Endeffekt findet es eh jeder raus – aber na gut.

Die nächste Idee führte mich zum Heise Newsticker und dem Heise IMonitor. Dort steht leider bis jetzt nichts.

Suchmaschinen sind leider nicht aktuell genug, um solche Informationen heraus zu finden. Eine Suche bei Google führte mich zu den Angriffen vom letzten Jahr. Dabei war sogar ein Twitter Link auf einen Tweet vom letzten Jahr. Twitter – ist das die Lösung?

Das war die Lösung. Das Real Time Web gibt es schon und dieses heißt Twitter. Eine Suche nach  #InternetX auf Twitter förderte mir alle relevanten Informationen zu Tage. Kurz zusammengefasst: #DDOS, #InternetX, viele Leute sauer, viel Gemecker, ….

Die Schlussfolgerung war: Abwarten und InternetX das Problem am Feiertag klären lassen. Da wollte bestimmt jemand die Bayern am Feiertag zum Arbeiten bewegen. 🙂 Alle verärgerten Leute beruhigen und die Hotline nicht belästigen. Sie haben Heute schon genug unnötige Fragen von anderen Leuten gehört.

Real Time Informationen sind schon länger im Internet und die derzeit beste Quelle ist Twitter. Schneller geht es kaum – und für jeden einen Blick wert!

Disclaimer sind nach deutschem Recht Unsinn!

Ich möchte das Thema nicht weiter kommentieren, sondern nur auf eine gute Quelle für diese Information verweisen: Disclaimer: Unnötiger Ballast für E-Mails

Wer allerdings was lustiges und dazu was sinnvolles zu Disclaimern lesen will, der sollte sich den folgenden Artikel anschauen: Disclaimer: Bizarre Stilblüten

An dieser Stelle bereue ich wirklich, dass ich kein Latein in der Schule hatte, wenn auch französisch im Allgemeinen sinnvoller war.

Avatar 3D – eine Filmrevolution oder nur teure Spielerei von Hollywood?

Ich habe mir letztes Wochenende Avatar in 3D im Cineplex angeschaut und habe sehr schnell bereut, dass ich bei diesem Film nicht ins nächste IMax Kino gefahren bin. Eine riesige Leinwand ohne die Leute vor der Nase, hätte diesen 3D Traum noch großartiger gemacht. Ein neues Kinoerlebnis mit beeindruckenden Effekten.

Der Inhalt des Filmes war mittelmäßig – etwas von „Pocahontas“ und „Der mit dem Wolf tanzt“ gespielt in der Zukunft . Mehr dazu brauche ich nicht zu sagen, da darüber genug im Internet berichtet wurde.

Allerdings war es der erste Film mit massiven Einsatz von 3D Szenen. Die ersten Minuten war das Kino gefüllt von freudigen Ooohs und Aaahs der Zuschauer. Nach ungefähr 30 Minuten war 3D zwar noch faszinierend, aber schon Alltag geworden.  Es war ein beeindruckendes Erlebnis trotz 11 Euro für den Film und 1 Euro Miete für die Brille. Ich habe die Brille zurück gegeben und mir kein Souvenir nach Hause mitgenommen. Beim nächsten 3D Film muss man die Brille eh wieder mieten.

Aus meiner Sicht wurde mit Avatar eine kleine Kino- und Filmrevolution gestartet. Nach Bunt-Kino ist es meiner Meinung nach die nächste größere Revolution gewesen. Ich könnte fast schon sagen: „In 5 Jahren wird 2D Kino der Vergangenheit angehören“. Nur hoffe ich, dass nicht alle alten Filme in 3D aufgenommen und neu gezeigt werden. Das wird den Eindruck doch arg trüben.

All diese teure Technik und die teure Produktion hinterlässt aber auch einen flauen Eindruck. Natürlich ist ein Film in 3D super anzusehen, aber der Preis hat die Grenze von 10 Euro sehr weit überschritten. Der massive Einsatz von DRM führte zu Ausfällen in einigen Kinosälen. Nur die 3D Fassungen der Filme wurden mit diesem besonderen Schutz versehen und führten nicht nur zu hohen Kosten, aber auch zu enttäuschten Zuschauern. Auch die Geschichte von Avatar fand ich nicht das Geld wert. 3D hin oder her – mir ist die Geschichte wichtiger, welche der Film erzählt. An die Effekte werden sich die Menschen schnell gewöhnen und als selbstverständlich ansehen. Genau dann schlägt der hohe Preis zurück und einige werden sich drei Mal überlegen, ob sie bereit sind wegen „gewohntem“ den hohen Preis für die Filme zu zahlen. Der Mensch ist ein Gewohnheitstier und wird Rückschritte nicht so einfach akzeptieren.

Ich beende das mal als moderne Weihnachtsgeschichte und wünsche allen frohe Weihnachten und einen guten Rutsch ins neue Jahr. Uns erwartet im neuen Jahr großes im Internet und auch in der Welt außerhalb des Internets.

Mein Vortrag über E-Learning auf dem Barcamp Mainz

An einem Barcamp sollte man auf jeden Fall versuchen aktiv mit einem eigenen Beitrag Teil zu nehmen. Ich habe mir 3 Themen überlegt, aber leider nur geschafft ein Thema ernsthaft auszuarbeiten. Naja ernsthaft – die letzten Korrekturen wurden 2 Stunden vor dem Vortrag durchgeführt. 😉

Ich füge hier weitere Links zu dem Thema ein:

Ansonsten kann ich bei den Veranstaltern und Teilnehmern für zwei sehr interessante Tage bedanken. Ich habe gute wie schlechte Beiträge gesehen und vor allem sehr sehr viel neues gelernt. Zwischen den Sessions kam ich auch mit vielen Barcamp-Teilnehmern in Berührung und habe von vielen neuen Ideen und Innovation für die nahe Zukunft gehört. Ich freue mich schon auf den nächsten Barcamp und Webmontag. Ideen und Innovation sind kaum aufzuhalten!

Weitere Informationen:

Smart Cards durch die in Java eingebaute Java Smartcard I/O javax.smartcardio.* ansprechen

Zuerst mache ich eine kleine Einführung in das Thema Java und Smartcads und beschreibe danach wichtige Punkte für Linux und Windows.

Java hat seit Version 1.5 (5.0) eine Unterstützung für Smartcards bereits eingebaut. Es nutzt dafür die eigene Provider Technik und greift über PC/SC auf die Smartcard zu. Das bedeutet es sind keine weiteren Module für Java notwendig (früher JPCSC für Linux) und die Nutzung erfolgt unabhängig vom Betriebssystem. Zumindest kann ich das für Windows XP/Vista und Linux bestätigen. FreeBSD und Sun Solaris sollten genau so gut funktionieren. Weitere Informationen zu Betriebssystemen in den nächsten Absätzen.

Unter Windows ist die Verwendung denkbar einfach. Für die Nutzung ist ein installierter Treiber für das Lesegerät (Terminal) und natürlich Java notwendig. Windows bringt eine eigene PC/SC Implementierung mit, die Java über den eingebauten Provider nutzt. Dadurch ist die Installation und Einrichtung sehr einfach.

Für Linux ist die Installation fast genau so einfach. Durch die verschiedenen pcsclite-Versionen (PC/SC Implementierung unter Linux) sind aber die Header-Datei (.h) für die Bibliothek notwendig, damit Java die PC/SC Bibliothek richtig ansprechen kann. Dafür reicht meistens die Installation der folgenden Pakete:

  • libpcsclite1
  • pcscd
  • libccid
  • libpcsclite-dev  (WICHTIG: Hier sind die notwendigen Header-Dateien)

Fehlt das Paket libpcsclite-dev bzw. die Header Dateien, so kann Java die PC/SC Bibliothek nicht nutzen und findet deswegen kein Lesegerät (Terminal).

Für Debian/Ubuntu und weitere Debian-Derivate ist die Installation denkbar einfach:

[code]
sudo aptitude install libpcsclite1 pcscd libccid libpcsclite-dev
[/code]

Die Nutzung der JPCSC Middleware, welcher veraltet ist, habe ich bereits früher hier beschreiben.

Um die Verwendung der Java Smartcard I/O zu testen, habe ich ein paar kleine Testprogramme geschrieben, die ich hier veröffentliche. Sie sind auf Englisch kommentiert, so dass keine weitere Erklärungen erfolgen. Ich denke die paar Worte Englisch wird wohl jeder verstehen können. Sie sind extra kurz und einfach gehalten.

[code]
import java.util.List;
import javax.smartcardio.*;

/*
* Look in rt.jar for „javax.smartcardio“ to get further information
* Defined in: JSR 268
*/
public class ListSmartcardReaders {

public static int listCounted() {

/* we use the default TerminalFactory */
TerminalFactory factory = TerminalFactory.getDefault();

try {
/* We can have multiple terminals on one System, so we get a list */
List terminals = factory.terminals().list();

for (CardTerminal terminal : terminals) {
System.out.println(„Card_Terminal_Name: „+ terminal.getName());
System.out.println(„Card_in_Terminal_present: „+terminal.isCardPresent());
System.out.println(„——————————————–„);
}
return terminals.size();

} catch (CardException e) {
e.printStackTrace();
}
return 0;
}

public static void main(String[] args) {
listCounted();
}
}
[/code]

[code]
import java.util.List;
import javax.smartcardio.*;

/*
* Look in rt.jar for „javax.smartcardio“ to get further information
* Defined in: JSR 268
*/
public class ConnectReader {

/**
*
* @param index is the array index of the terminal list (0..x)
* @throws CardException if there are problems accessing the smartcard
*/
public static void connectCard(int index) throws CardException {

/* Is a Reader connected we can access? */
if (TerminalFactory.getDefault().terminals().list().size() == 0) {
System.err.println(„No reader present“);
return;
}

/* Terminal we are working on */
CardTerminal terminal = TerminalFactory.getDefault().terminals().list().get(index);

/* Is a card present? */
if (!terminal.isCardPresent()) {
System.err.println(„No Card present!“);
return;
}

/* Here you have to choose „T=0″,“T=1“, „T=2“, check documentation of your smart card */
//Mostly it’s „T=1“, for older cards its „T=0“
Card card = terminal.connect(„T=1“);

System.out.println(„Card_Info: „+card.toString());
System.out.println(„Card Protocol: „+ card.getProtocol());

//Reset the card for use
ATR atr = card.getATR();

System.out.println(„ATR: “ + atr.getBytes());
System.out.println(„ATR historical bytes: „+ atr.getHistoricalBytes());

/* Get the basic channel. This one can’t be closed */
CardChannel channel = card.getBasicChannel();

/* Try to send a command. This one won’t work! */
byte[] command = { 0, 0, 0, 0};

CommandAPDU someApdu = new CommandAPDU(command);

ResponseAPDU r = channel.transmit(someApdu);
/* Response encoded in bytes */
byte[] response = r.getBytes();

System.out.println(„response: „+ response);

card.disconnect(false);
}

public static void main(String[] args) {
try {
//First Terminal = 0
connectCard(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
[/code]

Für weitere Information über APDUs und die Nutzung der Smartcards empfehle ich das Lesen des Buches Handbuch der Chipkarten oder direkt die dazugehörigen ISO-Normen ISO-7816 und im Speziellen die ISO-Normen ISO7816-4, ISO7816-8 und ISO7816-9.

Auf die Frage „Kommt man ohne das Buch bzw. die Normen aus?“, muss ich leider mit „definitiv nein!“ beantworten, da die Informationen sehr komplex sind und schwer zu verstehen. Im Internet ist bis Heute fast gar nichts vorhanden.
Ich rate aber nach Diplom-, Master- und Bachelorarbeiten zu dem Thema zu suchen. Da gibt es bestimmt Auszüge aus den Normen, um wenigstens die Zusammehänge und die Anfänge zu verstehen.

Kinder lernt gut Fremdsprachen, damit es euch nicht passiert!

Guasto ungleich Schadhaft :)Eine Sprache kennen bedeutet nicht, dass man sie auch wirklich gut beherrscht. Jetzt stellt euch mal vor, ihr zeigt euer Werk ganz stolz einem Muttersprachler und es ist falsch. Der Italiener der dieses Schild gemacht hat, hat es hoffentlich versucht.

Das war allerdings einer der harmlosesten Übersetzungsfehler, die ich mitbekommen hatte. Mir wurden Geschichten von sterbenden (übersetzt von „ausgefallen“) Maschinen erzählt. Hier hatte ich gerade mein Mobiltelefon parat, um diese Werk für die Nachwelt festzuhalten.

In Eclipse Galileo (3.5.X) Plugins installieren/nachinstallieren Probleme

Das Eclipse Update System ist leider sehr complex und damit für Fehler anfällig. Unter bestimmten Bedingungen bekommt man bei der Installation von neuen Plugins folgende Fehler: „No repository found containing: …..“

Dieser Fehler trat bei mir auf und deutet auf die Galileo Update Site direkt von Eclipse:

[code]
An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,net.sf.cglib,2.1.3.v200906051230
No repository found containing: osgi.bundle,org.eclipse.hyades.probekit,4.2.500.v200906041936
No repository found containing: osgi.bundle,org.eclipse.mylyn.commons.soap,3.2.0.v20090617-0100-e3x
No repository found containing: osgi.bundle,org.eclipse.mylyn.jira.core,3.2.0.v20090617-0100-e3x
No repository found containing: osgi.bundle,org.eclipse.mylyn.jira.ui,3.2.0.v20090617-0100-e3x
[/code]

Eclipse versucht alle Update Sites zu kontaktieren und dort Versionen zu erfragen, damit es Abhängigkeiten zwischen den Biblioetheken richtig auflösen kann. Treten dabei Probleme auf, weil die Seite z.B. überlastet oder gerade nicht erreichbar ist, dann misslingt die Installation.

Eine mögliche Lösung besteht darin, die betroffene Seite unter „Window -> Preferences -> Install/Update -> Available Software Sites“ zu deaktivieren.

Das ist meistens die Haupt-Updateseite von Eclipse:

[code]
Galileo        http://download.eclipse.org/releases/galileo Enabled <-- auf Disabled setzen [/code] Hilft das nicht weiter, so müssen am besten weitere Seiten deaktiviert werden, bis die Installation funktioniert.