#
Archive for Januar, 2007

Vorsicht vor PreparedStatements mit LIKE

Gerade erlebt: Man sendet seine Datenbankabfragen per PreparedStatement, damit auch alles performant läuft, da die PreparedStatements schön gecacht werden können und auch davor bewahren, allzu einfach Opfer von SQL-Injections zu werden.
Doch Vorsicht! Benutzt man LIKE Statements und davon mehrere über mehrere Tabellen, so kann der Queryoptimizer einiger Datenbanken (,u. a. bei Oracle beobachtet,) beim vorkompilieren des Statements nicht genau beurteilen, wo und wie die Platzhalter im Statement stehen werden.
Die Folge kann dabei sein, das solche Abfragen zu Fulltablescanns führen und daher alles verlangsamen. In solchen Fällen sollte man sein SQL dynamisch aufbauen. Doch auch hier Vorsicht: Denn ein einfaches

LIKE username = '"+username+"'

eröffnet SQL-Injections alle Türen. Hiergegen hilft lediglich das Validieren und Prüfen der Benutzereingabe.

Aller Anfang ist schwer

Neulich sprach ich mit einem Feund darüber, dass er gerne Programmieren lernen würde.

Und so musste ich darüber nachdenken, wie man jemandem, der noch nie irgend etwas programmiert hat, erklärt, wie das geht. Ich meine, da gibt es sooooviel zu erzählen, von Bits und Bytes angefangen, über Zahlentypen mit verschiedenen Wertebereichen, über Arrays, Zeichenketten und Variablentypen, über Methoden oder Funktionen. Und ganz zu schweigen von OO-Konzepten und den milliarden von Klassen in APIs.

Zu diesem Zweck wollte ich mich mal nach einem Buch umschauen, das für totale Newbies die Grundlagen verständlich erklärt und in eine Programmiersprache, am besten Java, einführt.
Solltet ihr da eine Idee haben, dann laßt es mich doch bitte wissen 😉

Wallpaper Changer

Ich wollte mein neu installiertes System optisch etwas aufpeppen und zu dem RKLauncher, der diesen lustigen Programmlauncher unten (wie beim Mac) anzeigt noch durch ein paar außerwählte Wallpapers abrunden. Doch im Netz konnte ich nur riesige (mehrere MB große) Programme finden, die es mit erlauben sollten, meine Wallpaper nach dem Zufallsprinzip auszutauschen.

Nö, dachte ich mir. Viel zu Groß, viel zu unsicher. Daher habe ich meine alten VisualBasic Kenntnisse hervorgekramt un ein kleines VBS Skript geschrieben, dass ich in der Autostart habe. Bei jedem Start sucht es sich eine BMP Datei aus einem Verzeichnis aus und setzt sie für den nächsten Neustart als Hintergrundbild.

Nicht ganz so komfortabel wie die anderen Tools, aber dafür sehr klein, und nach dem Ausführen ist es wieder weg. Also keine verschwendeten Ressoucen.


set fso = CreateObject("Scripting.FileSystemObject")
set files = fso.GetFolder("c:\windows\wallpapers\").Files
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

intLowNumber = 1
intHighNumber = files.Count
Randomize
intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber)

intActual = 1
for each file in Files
If intActual = intNumber Then
strValue = "c:\windows\wallpapers\" & file.Name
End If
intActual = intActual +1
next

strKeyPath = "Control Panel\Desktop"
ValueName = "Wallpaper"

objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue

Ultimativ GNU

GNU, GNU is not Unix, kennen die meisten Programmierer und Unix-Geeks. Dabei handelt es sich jedoch nicht nur um etliche Befehlszeilen-Werkzeuge, die in der Unix-Welt unentbehrlich geworden sind.

Beim Durchstöbern des Netzes bin ich über die „Free Software replacements for proprietary applications on the Microsoft Windows OS.“ gestolpert: Dabei handet es sich um eine Sammlung von GUI-basierten Tools für Windows. Dazu gehört nicht nur das bekannte Grafikwerkzeug GIMP, das Adobees PS auf Opensource Basis ersetzt. Desweiteren gibt es hier auch „Dia“, einem sehr interessanten Ersatz für MS Vizio, „Inkscape“, einem Ersatz für Adobees Illustrator.

Besonders angetan hat es mir Dia, da es erlaubt UML-Diagramme zu erstellen, ohne dass man strikte Typisierungen verfolgen muss und damit ein gutes Werkzeug für schnell erstellte UML-Konzepte ist.

Barthimäus die 2te und 3te

Inzwischen habe ich die beiden letzten Teile der Barthimäus-Trilogie gelesen und bin immer noch davon begeistert.

    »more…

Back again

At the start of january the harddisk of keyboardsamurais just crashed and that’s why this site was not available for a while.

Vollidiot

Nein, damit ist keine spezifische Person gemeint, obwohl sich viele Menschen um diesen Titel rangeln. Gemeint ist das Buch von Tommy Jaud, welches ich vor kurzem gelesen habe.

    »more…