Googles Macht

Ich wurde gerade Massenhaft zu Google-Calendar Events eingeladen und habe festgestellt, dass erstens der Google Kalender garnicht so toll ist (nach Freigabe eines Kalenders kann ich mich nicht bei entsprechenden Events eintragen, obwohl ich dazu eingeladen wurde – über die Einladung geht es aber) und zweitens immer mehr meiner Daten bei Google landen.

Man beachte das immerhin dieses Blog auch bei Google residiert.

Beim googlen habe ich im Wired Earth Blog eine Auflistung von Alternativen zu den Google-Services gefunden. Grundsätzlich vertraue ich dem „don’t be evil“ Firmenmotto so einiges an – aber eine gewisse Eigeninitiative kann ja nicht schaden, bevor das ganze Leben in Googles Händen liegt.

Mobiler Barcodescanner

Ich habe gerade einen mobilen Barcodescanner zu Testzwecken bestellt. Den würde ich gerne für eine verbesserte Zeit- und Artikelerfassung bei einem Kunden einsetzen. Aber vielleicht lässt sich damit auch Einkaufszettelschreiben vereinfachen?

Für EANs gibt es z.B. die Gepir Datenbank (und nochmal) – oder auch OpenEANDB – letztere Seite ist nur momentan leider nicht erreichbar – mit Hilfe vom Webarchiv konnte ich aber herausfinden, dass die dortige Datenbank mit 148 Produkten am 9.2.2007 wohl nicht sehr umfangreich ist. Es gibt aber aus der Schweiz mit Codecheck noch einen ähnlichen Ansatz – leider scheinen dort noch nicht so viele Produkte erfasst zu sein.

Und dann gibt’s da noch die Barcodepedia

Dummerweise hat keine dieser Datenbank auf Anhieb alle Produkte die ich so in Reichweite hatte, erkannt. Am besten nimmt man wohl Google? Und siehe da: Ich habe bisher nichts gefunden, was Google nicht kennt. Nach Barcodes-Googlen ist irgendwie eine interessante Sache.

Windows Rechtesystem

Ich habe ein interessantes Tool entdeckt, mit dem man unter Windows Zugriffsberechtigungen relativ komfortabel per Befehlszeile setzen kann. Also das Äquivalent zum chmod der Unixwelt.

Das Problem ist wohl einfach, dass die Windows ACLs einfach unnötig kompliziert sind: Sprich in der Praxis werden Sie seltenst voll ausgereizt und die Gefahr, dass ein unbedarfter Hobby-Administrator völlig an der Komplexität verzweifelt und einfach nur noch „jedem überall“ Zugriff gibt, ist groß.

Hier mal die Zugriffsberechtigungen auf einem Standard-XP-System auf die Datei C:\boot.ini

C:\Programme\Windows Resource Kits\Tools>subinacl /file c:\boot.ini

==================
+File c:\boot.ini
==================
/control=0x1400 SE_DACL_AUTO_INHERITED-0x0400 SE_DACL_PROTECTED-0x1000
/owner =vordefiniert\administratoren
/primary group =system
/audit ace count =0
/perm. ace count =3
/pace =vordefiniert\hauptbenutzer ACCESS_ALLOWED_ACE_TYPE-0x0
Type of access:
Read
Detailed Access Flags :
FILE_READ_DATA-0x1 FILE_READ_EA-0x8 FILE_EXECUTE-0x2
0
FILE_READ_ATTRIBUTES-0x80 READ_CONTROL-0x20000 SYNCHRONIZE-0x10
0000
/pace =vordefiniert\administratoren ACCESS_ALLOWED_ACE_TYPE-0x0
Type of access:
Full Control
Detailed Access Flags :
FILE_READ_DATA-0x1 FILE_WRITE_DATA-0x2 FILE_APPEND_DATA
-0x4
FILE_READ_EA-0x8 FILE_WRITE_EA-0x10 FILE_EXECUTE-0x2
0 FILE_DELETE_CHILD-0x40
FILE_READ_ATTRIBUTES-0x80 FILE_WRITE_ATTRIBUTES-0x100 DELETE-0x10000
READ_CONTROL-0x20000
WRITE_DAC-0x40000 WRITE_OWNER-0x80000 SYNCHRONIZE-0x10
0000
/pace =system ACCESS_ALLOWED_ACE_TYPE-0x0
Type of access:
Full Control
Detailed Access Flags :
FILE_READ_DATA-0x1 FILE_WRITE_DATA-0x2 FILE_APPEND_DATA
-0x4
FILE_READ_EA-0x8 FILE_WRITE_EA-0x10 FILE_EXECUTE-0x2
0 FILE_DELETE_CHILD-0x40
FILE_READ_ATTRIBUTES-0x80 FILE_WRITE_ATTRIBUTES-0x100 DELETE-0x10000
READ_CONTROL-0x20000
WRITE_DAC-0x40000 WRITE_OWNER-0x80000 SYNCHRONIZE-0x10
0000

Elapsed Time: 00 00:00:00
Done: 1, Modified 0, Failed 0, Syntax errors 0
Last Done : c:\boot.ini

Zum Vergleich die Linux Dateiberechtigungen:


self@self-laptop:~$ ls -al /boot/grub/menu.lst
-rw-r--r-- 1 root root 6146 2007-06-17 19:39 /boot/grub/menu.lst

damit kann man doch meist auch ganz gut leben?

automatisieren von Windows abläufen

Auf der Suche nach einer Möglichkeit Software auf mehreren Rechnern zu installieren, habe ich AutoIt entdeckt. Damit kann man relativ komfortable Windows-Programme fern steuern. Es gibt sogar ein recht belebtes deutsches Autoit Wiki.

Ein kurz von mir auf’s deutsche Windows angepasster Script, welcher Notepad öffnet, einen Text schreibt und es wieder schließt, sieht z.B. so aus:

Run("notepad.exe")
WinWaitActive("Unbenannt - Editor")
; Text schreiben
Send("Hallo vom Windows Editor.{ENTER}1 2 3 4 5 6 7 8 9 10{ENTER}")
Sleep(500)
Send("+{UP 2}")
Sleep(500)
; Schließen über das Dateimenü
Send("!d")
Send("b")
; Abfrage bestätigen
WinWaitActive("Editor", "Nein")
Send("n")
WinWaitClose("Unbenannt - Editor")

Das Ganze kann auch direkt in eine EXE umgewandelt werden.

Ich bin sehr gespannt, wie sich das in der Praxis bewährt.

CD Hüllen falten

Ich habe – basierend auf dem Covergenerator von M. Jasmund (dort gibt’s auch die Faltanleitung) gerade einen kleinen Script gebastelt, welcher einfache Covers mit (genau) einem Bild generiert. Das ganze hat noch keinerlei Eingabeformular, kann aber einfach unter der URL

http://www.self-soft.de/huellen/cd.php?url=
http://www.gnome-look.org/CONTENT/content-pre1/57623-1.jpg

benutzt werden. Die Adresse des Bildes kann beliebig ersetzt werden. Es sollten alle Bildertypen, welche in SVG eingebettet werden können, unterstützt werden.

Leider werden die Dateien nicht in der korrekten Größe gedruckt, wenn man dies aus dem Webbrowser heraus tut. Man sollte also z.B. inkscape oder vielleicht den SVG Viewer von Adobe verwenden.

falsch klassifizierte C++ Fehlermeldungen in Eclipse

Falls man Eclipse CDT (C++ Plugin) auf einem System mit deutschen Spracheinstellungen einsetzt, kommt das Plugin wohl nicht mit den Meldungen zurecht. Warnings werden z.B. als Fehler angezeigt. Beheben kann man das mit: Project -> Properties -> C/C++ Build dann Registerkarte: Environment. Dort fügt man bei „User Variables“ einen neuen Eintrag LC_ALL mit dem Wert C ein. Somit wird beim Aufruf des Compilers die deutsche Übersetzung der Meldungen abgeschaltet und das Eclipse Plugin kann sie wieder korrekt einordnen. Außerdem sind die englischen Meldungen auch oft verständlicher 🙂

SQL UNION

ich blogge das einfach mal: *g*

Tobi: tipp: wenn du probleme mit der Performance von SQL UNION Operationen hast, denk dran, dass diese deduplizieren, was ja bekanntlich sehr aufwendig ist. ein UNION ALL wirkt da wunder!
(ich musste das einfach mal jemandem erzählen, weil ich stundenlang nach dem schwarzen performace-loch gesucht habe und jetzt ganz happy bin, es gefunden zu haben 😉