Transaction Isolation Levels

Deutsch This blog post is based on a talk that I have given in the Ruby on Rails User Group. Who knows Transactions? Who knows really well what transactions are? What is a Transaction? Just common sense what transactions mean: We open an transaction (implicitely or explicitely) We perform a certain number of operations (for …

Share Button

Früher ging alles schneller

Früher ging alles schneller, aber dann kamen die Computer und haben alles kompliziert gemacht. Oder es wurden einfache Computer durch komplizierte ersetzt. Nur zwei Beispiele: Früher hatten die Leute beim Fahrkartenschalter der Bahn ein mechanisches Gerät, mit dem sie blitzschnell die gewünschte Fahrkarte generieren konnten. Die Fahrkarte war nur so groß wie zwei mittelgroße Münzen …

Share Button

Login Mechanisms

By Karl Brodowsky IT Sky Consulting GmbH… Deutsch E-Banking examples „Calculator“ RSA-Number-Generator SMS Sheet with 100 Codes Android-App USB-Device SmartCard Not so common for banks: plain old username+password Login with google, twitter, facebook Calculator Enter PIN Code Enter Code from login page Read Result from calculator Enter Result in Login Page Security Questions: Depends on …

Share Button

Login-Verfahren

Karl Brodowsky IT Sky Consulting GmbH… English Für die Authentisierung in Webapplikationen gibt es verschieden Ansätze. Ich beschreibe einmal einige, die mir tatsächlich begegnet sind, und mache mir ein paar Gedanken, was man davon erwarten kann. Nun ist die Frage, ob so etwas nicht sehr einfach ist, man muss nur irgendwo Namen und Passwörter speichern …

Share Button

Auf GPU rechnen

Heutige Rechner haben bekanntlich sehr leistungsfähige CPUs mit „Quadcore“ und mehr. Aber auch die Grafikkarten sind ziemlich toll geworden und haben zum Teil auch so große eigene Lüfter wie die CPU. Sie haben eine Menge eigenes Memory und sie können recht komplizierte Operationen selbsttätig rechnen, natürlich nur für die grafische Darstellung. Nun stellt sich die …

Share Button

Alle zwei Wochen

Ich werde den Rhythmus dieses Blog auf alle 14 Tage umstellen.

Share Button

Einheiten mitführen

Typische Programme rechnen mit Größen, also mit Zahlwerten, die mit irgendeiner Einheit kombiniert sind. Das können Temperaturen, Längen, Zeitdauern, Geldbeträge und vieles mehr sein. Weil früher jedes Byte teuer war, hat sich etabliert, dass man nur mit den Zahlwerten arbeitet und die Einheiten implizit durch die Programmlogik ins Spiel kommen. Das funktioniert in einfache Fällen, …

Share Button

Verbindung verschiedener Verabeitungsschritte

Häufig beinhaltet eine Software verschiedene Verarbeitungsschritte, die von den Daten nacheinander durchlaufen werden. Im einfachsten Fall kann man mit Verabeitungsschritten f, g und h man so etwas machen wie (Pseudocode): for x in input_data { y = h(g(f(x));   store_partial_result(y); } Das stimmt, wenn die Datenmengen jeweils übereinstimmen. Häufig ist aber in der Praxis der Fall, …

Share Button

Non-Blocking I/O

In Posix-Systemen (Linux, Unix, MacOS X,…) basieren die I/O-Operationen hauptsächlich auf den Systemaufrufen read(..) und write(..). Die meisten anderen I/O-Operationen lassen sich darauf zurückführen und auch I/O von anderen Programmiersprachen als C dürfte letztlich indirekt zu read() und write() führen. read() ist eine Funktion, die einen (numerischen) Filedeskriptor, einen Pointer auf einen hinreichend großen Speicherbereich …

Share Button

MoSQL

Bei einem Meetup-Treffen in Zürich wurde ein neues Backend für mysql-Datenbanken vorgestellt, das die Skalierung erleichtern soll: MoSQL Zur Zeit wird daran noch entwickelt, aber man kann Vorabversionen schon testen. Nun stellt sich die Frage, ob man so etwas braucht, weil die meisten mysql-Installationen ja klein sind und für größere Datenbanken PostgreSQL, Oracle, DB2 etc. …

Share Button