Sie sind hier: Startseite Blog

Blog

Aufgaben sortieren in Outlook

  • Outlook 2007 oder neuer
  • Verwende die "Erinnerungszeit" als Wiedervorlage
  • "Aufgaben" verwenden, nicht die "Vorgangsliste"
  • "Überfällige Aufgaben" definieren als:
    • Grupperieren nach
      1. Erinnerungszeit, aufsteigend, Feld anziegen
      2. Status
    • Filter: SQL mit diesem Text:
("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/811c000b" = 0 AND 
("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85020040" is NULL OR "http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85020040" <= today())
AND
("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81040040" is NULL OR
"http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81040040" <= today()))

Das bedeutet

  • Nicht erledigt (81c00b)
  • Erinnerung heute oder früher oder keine angegeben
  • Okay.
  • Das Feld Erinnerungszeit erscheint ganz rechts, an gewünschte Position schieben.
  • Fertig


Quelle: http://blogs.msdn.com/b/andrewdelin/archive/2005/08/08/448882.aspx

Here's another tip. Finding articles about Outlook Filter programming is tricky, but if you search for one of the following using MSN Search or Google, you will find several articles to check:

  http://search.msn.com/results.aspx?q=81050040

  http://search.msn.com/results.aspx?q=811c000b

These numbers come from the XML schema for the Outlook SQL syntax. Sometimes using a very specific identifier in this way can deliver accurate hits.

 


Outlook Views anlegen
http://blogs.msdn.com/b/andrewdelin/archive/2005/05/11/416312.aspx

17.09.2012 21:09

Convert SVN-Repo directly to git or hg (no dump-files needes)

Origo, where I'm hosting my open-source software up to now, is closing end of this month. So I need to move these projects somewhere else. I take the chance for migrating the subversion repositories ...

If you are going to convert your repo to git or mercurial, you can use Eric S. Raymonds excellent `reposurgeon` tool. The current development version can read directly form subversion repositories. It's recommended to create a local mirror first. A tool called `svnpull` for pulling the SVN repo into a local mirror is provided.

Homepage: http://www.catb.org/esr/reposurgeon/
Development version: https://gitorious.org/reposurgeon/reposurgeon

Here is an example of a simple conversion of a simple repository:

PROJECT=ssl-audit
svnrepo=https://svn.origo.ethz.ch/$PROJECT
gitrepo=/tmp/$PROJECT-git

cd /tmp
repopuller $svnrepo

reposurgeon <<EOF
read /tmp/$PROJECT-mirror
prefer git
edit
references lift
rebuild $gitrepo
EOF

Recommended Cleanup Actions

I recommend doing at least these cleanup action (within reposurgeon) when converting a repo:

  • Add an authormap to get nice author names.
  • Clean up the most uggly commit messages. (Do not wast too much time for this. I did, when converting PyInstallers repo, and the results are nor worth the effort.)
  • Lift references (e.g. revision numbers to a time-stamp)

I recommend reading at least these sections in the man-page `reposurgeon.1`:

  • Artifacts removal
  • Reference Lifting
  • Working with Subversion

For more insights you may want to read Erics DVCS Migration Guide and have a look at my work done for the PyInstaller repo-conversion. You may also want to read my comments about why I'm now preferring git over mercurial.

[Edit 2014-03-31: Fix typo in script, use repopuller]

25.05.2012 11:45

Qualifikation zahlt sich nicht aus

Mein Artikel "Qualifikation zahlt sich nicht aus" ist im IT Freelancer Magazin 3/2012 veröffentlicht. Auszüge aus dem Heft (darunter mein Artikel) gibt es als PDF zum Download.

Haben Sie anmerkungen dazu? Dann schicken Sie mir bitte eine Mail

.

23.05.2012 18:33

Schöne neue Info-Sec Domains

Vor ein paar Tagen habe ich festgestellt, dass ein paar sehr schöne Domains noch zu haben sind. Und natürlich gleich bestellt - im Dutzend billiger

Die Domains drehen sich alle um IT-Security Management. Damit möchte ich meinen Schwerpunkt Rent a CISO oder Freiberuflicher Information Security Officer leichter zugänglich machen.

Mich erstaunt wirklich, dass diese Domains alle noch frei waren:

Information Security Officer

Tatsächlich war Information Security Officer für ".de" noch frei, hätte ich nicht gedacht :-) Aber dafür gibt es ein paar Varianten von Info-Sec Officer.

Information Security Officer ist aber so sperrig, das passt auf keine Visitenkarte. Darum hab ich auch gleich noch den Info Sec Officer genommen.

Informations-Sicherheits-Beauftrager

Den Begriff ist in einem meiner letzten Projekte aufgekommen und ich habe dann entdeckt, dass er auch gelegentlich verwendet wird. Aber auch sehr, sehr sperrig ...

... darum gibt es auch gleich noch den Info Sec Beauftragten

Und weil ich schon dabei bin, auch noch den IS Officer und IS Beauftragten, wobei IS natürlich für Informationssicherheit bzw. Information Security steht.

22.05.2012 13:48

Was tun, wenn der Audit "droht"?

Dieser Tage habe ich folgende Anfrage bekommen:

Wir betreiben einen Server, über den man auf verschiedene Systeme bei sensiblen, öffentlichen Kunden zugreifen kann. Zu dem Server existiert eine technische Beschreibung, aber es gibt keine Beschreibung der zugehörigen Prozesse. Es sein kann, dass unser Kunde einen Audit nach dem IT-Grundschutzhandbuch bzw. nach der ISO 27001 fordert. Darauf wollen wir vorbereitet sein.

Wie können Sie uns helfen?

Trifft genau mein Tätigkeitsfeld :-) Meine Vorgehensweise wäre folgende:

Sowohl das Grundschutzhandbuch (GSHB) als auch die ISO 27001 legen viel Wert auf Verantwortung, Nachvollziehbarkeit und Kontrolle/Überprüfung. In diesem Fall würde ich daher folgendes tun:

  • die bestehenden Prozesse rund um den Server auf die technische Umsetzung und auf die drei genannten Punkte hin überprüfen und dokumentieren

    • Benutzerverwaltung

    • Security-Patches und Software-Updates 

    • Admin-Berechtigungen

    • Abschottung vom restlichen Netzwerk (falls relevant)

    • ...

  • Punkte im Prozess festlegen, an denen festgestellt werden kann, ob es Abweichungen vom Regelprozess gibt und ob der Prozess funktioniert oder verbessert werden muss (sog. Controls).

    Die einen Server mit Benutzerverwaltung wäre eine typische "Control", regelmäßig zu prüfen, ob die berechtigten User noch Zugang haben dürfen. Dies dient gleichzeitig dazu, die nicht mehr berechtigten Accounts zu sperren, und dazu, zu erkennen, ob nicht mehr Berechtigte zeitnah gesperrt wurde. Beispiel: Wenn nach einem Jahr 20% der Benutzer nicht mehr berechtigt sind, funktioniert der Prozess nicht. Oder wenn über längere Zeit immer ein paar "durchrutschen".

  • die Verantwortlichkeiten festlegen

Ergänzend würde würde ich auch eine paar Kennzahlen entwickeln, um das Funktionieren der Prozesse "managebar" zu machen. Beispielsweise die Fehlerrate für die genannten Controls, oder statistische Auffälligkeiten: Benutzer die sich sehr häufig oder sehr selten anmelden (natürlich anonymisiert, da es sonst unerlaubte Leistungsüberwachung sein könnte).

Am Ende hätte der Auftraggeber ein Handbuch, mir dem er einen Audit überstehen sollte.

18.04.2012 09:42

Sündenfall: Habe Piwik installiert

Jetzt ist der Sündenfall passiert: Ich habe eine Webanalyse-Software in meine Website integriert. Ich möchte damit ermitteln, woher und ggf. mit welchen Suchbegriffen Besucher auf meine Seiten gelangen, was sie dort suchen und ob sie es finden.

Mal sehen, ob es das bringt. Wenn nicht -- oder falls ich das gar nicht auswerten sollte -- kommt es wieder weg. Versprochen!

Damit hat meine Website jetzt doch auch ein Datenschutzerklärung.

17.04.2012 12:15

decompyle is still alive

I just got a call from somebody who tried to get an ancient version of decompyle running. Some words about he status of decompyle.

Yes, decompyle, the Python byte-code decompiler, is still alive and functioning. It simply is not longer available for download and ancient versions are not able to decompile recent Python byte-code.

Still alive: My Decompyle Service

To be frank: I recommend using the my Python decompyle service at crazy-compilers.com. It's cheap, its fast, it's reliable. Don't waste your time with ancient versions, see below for reasons.

The future of decompyle

At the very moment I'm working on a complete rewrite of the decompyle-engine as the currently used spark parser got to it's limits. This will allow support for Python 2.7 and 3.x soon. The first bucket of test-patterns for 2.7 just passed an hour ago.

Ancient Versions floating around the Internet

When searching the Internet, you may find old tarball or even Subversion-Repos of decompyle at approx. version 2.3. You may get it work on your recent system, but you may need to spend quite some time, as it contains C extension modules. But I do not recommend wasting your time trying to get this run: it will not be able to decompile recent Python byte-code.

You may even find some sources saying to have a patched or enhanced or further developed version of decompyle. You may have tough luck and one of these variants may really decompile our file. But chances are very low (I do not bother trying it). From Python version to version there have been too many changes to the byte-code: Starting with simple stuff lik

  • changing the "magic number" written into each byte-code file,
  • code-optimizations which make the (old) parser fail,
  • new features like generator-expressions, decorators, conditional expression or the `with`-statement, up to
  • changed and new byte-codes.

Summary

Don't wast your time, but simply use the decompyle service.

11.04.2012 18:40

Neues aus meiner Toolbox: Webseiten "wie sie sind" als PDF speichern

Alle, die einen "Screenshot" der Webseite als PDF machen wollen, können das brauchen.

Wer schon einmal versucht hat, Webseiten als PDF zu speichern -- und zwar so, wie sie am Bildschirm erscheinen --, kennt das Problem: es geht nicht. Entweder kann der Browser gar kein PDF erzeugen, oder man kann nur "als PDF drucken". Beim Drucken bekommt man aber die Druck-Ansicht, und nicht das, was am Bildschirm steht (zum Hintergrund unten mehr).

Meine Software erzeugt ein PDF, das den Bildschirminhalt wiedergibt (so wie links zu sehen).

Screenshot einer Webseite Gleiche Webseite ausgedruckt
So sieht die Webseite am Bildschirm aus
Und so der Ausdruck

Das kann die Software:

  • Erzeugt ein PDF einer beliebigen, öffentlichen Webseite
  • Das PDF ist durchsuchbar, enthält also noch den "Text" (und nicht nur ein Bild vom Text)
  • Fast alle Webseiten lassen sich gut darstellen, denn als Render Engine wird die gleicher verwendet, die auch in Safari steckt (Webkit)
  • Die Webseite wird automatisch auf die Seitenbreite skaliert
  • wenn die Webseite zu lang für ein Blatt ist, werden mehrere Seiten erzeugt
  • Seitenformat, -ränder und -orientierung können angegeben werden
  • Firefox-Addon: 1 Klick und das PDF wird geliefert
  • In zwei Varianten nutzbar:
    • kleiner HTTP-Server, der die Umwandlung übernimmt (den verwendet das Addon)
    • Kommandozeilen-Tool
  • kann leicht an die Bedürfnisse der Kunden angepasst werden, beispielsweise
    • andere Seitenaufteilungen, andere Dateiformate
    • Integration in komplexere Tools (siehe Successtory unten)

Die Software ist plattformunabhängig (Linux, Windows, Mac), benutzt Qt und Python.

Vergleich mit Alternativen

Alternative 1: Für Firefox (und wohl auch andere Browser) gibt es Add-ons, die die komplette Seite in ein Bild packen. Sie greifen dabei auf der "Bild" zurück, das der Browser intern von der Seite erstellt hat. Vorteil: es wird das ausgegeben, was momentan im Browser angezeigt wird, also auch private Seiten.

Nachteile diese Alternative

a) Ein Bild lässt sich schlecht auf mehrere Blätter aufteilen,

b) man bekommt ein Bild, also eine Ansammlung von Bildpunkten. Das Bildschirmfoto ist nicht durchsuchbar.

c) Je nach Addon muss man viel klicken

Alternative 2: "Drucken als PDF" scheidet aus, da die Druckansicht gewählt wird.

Alternative 3: Bestehende Online-Dienste, davon gibt es einige, ein paar habe ich ausprobiert, die haben nicht überzeugt. Teilweise nicht zuverlässig erreichbar, teilweise muss man zu oft klicken. Oft ist das Papierformat fest auf "Letter" eingestellt. Das druckt sich gar nicht gut auf A4. Und man muss Dritten vertrauen (ggf. Auftragsdatenverarbeitung, BDSG ist zu beachten).

Successtory ;-)

Mein Kunde setzt das Tool seit einem halben Jahre bei der Medienbeobachtung ein, auf zwei Arten:

  1. Findet ein Mitarbeiter eine interessante Webseite im Netz, wird diese mit einem Klick als PDF gespeichert.
  2. Ein Ausschnittdienste schickt interessante Links per Mail. Diese Mail werden automatisch ausgewertet und die PDFs an die Mitarbeiter geschickt -- zusammen mit einem Vorschaubild und den Infos aus der Mail. (Das Ganze ist eine Erweiterung des Kommandozeilen-Tools.)
  3. [Nachtrag] Die Mail-Schnittstelle kann inzwischen auch Mails auswerten, die nur Links enthalten. Die nötigen Meta-Informationen (für welchen Kunden, etc.) werden dem Betreff entnommen. Letzterer muss dafür natürlich einem bestimmten Format entsprechen.

Hintergrund

Das Phänomen kennt Ihr: Ihr wollt eine Webseite ausdrucken, und das Ergebnis sieht völlig anders aus, als das am Bildschirm. Diese Mail erklärt, weshalb das so ist und zeigt, was man dagegen tun kann, ohne fünf Bildschirmphotos zusammenkleben zu müssen.  Und sie zeigt eine Lösung als PDF, das man dann durchsuchen kann?

Die Ursache ist: Für den Ausdruck verwendet der Browser eine eigene "Formatvorlage" (ein sogenanntes Cascading Style Sheet, CSS). Idee Idee dahinter ist: Wer die Siete ausdruckt, will keine Navigation, keine Werbung, etc. Also werden solche Elemente in der Formatvorlage für den Ausdruck auf "nicht anzeigen" gestellt.

Dabei ist es egal, ob Ihr auf einen physikalischen Drucker druckt, oder mit FreePDF, PDF Creator oder ähnlichem ein PDF erzeugt. Für den Browser ist das alles "drucken", als verwendet er die Formarvorlage für "Drucken".

Früher hatten Webseiten dafür eine Link "Druckansicht". Der ist heute ziemlich ausgestorben, weil die Browser die Formatvorlagen für den Ausdruck verwenden, und da sich Content Management Systeme verbereitet haben, die solche Vorlagen schon mitbringen.

Wer dennoch ein "Bild" der Webseite haben möchte, muss ein Bildschirmphoto machen. Mit den Bordmitteln der Betriebssysteme bekommt man damit aber immer nur einen Teil der der Seite auf ein Bild -- soviel der Browser halt auf einem Bildschirm anzeigen kann. Blöd, wenn der Inhalt der Seite über drei Bildschirme geht.

Interesse?

Wenn Sie das Produkt für Ihren eigenen Bedarfs nutzen wollen, mache ich Ihnen gerne ein Angebot. Setzen Sie sich dazu bitte mit mir in Verbindung.

 

20.03.2012 23:00

rsync "protocol incompatibility" caused by --dry-run

I just spend approx. one hour to track down a nasty problem, caused by using ssh with authorized keys and forced command. This is for the records and hopefully will help others to solve the problem ...

When trying to move a working script to a different machine and a different user-account, my rsync-script failed with this message:

rsync error: protocol incompatibility (code 2) at io.c(1332) [sender=3.0.8]
rsync: connection unexpectedly closed (2668 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [receiver=3.0.7]
rsync: connection unexpectedly closed (70 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]

Now in this special constellation, there are many possible reasons, since the machines are quite different:

Server: Fedora 13, x86_64, openssh 5.4p1, rsync  version 3.0.8  protocol version 30

Old client: Mageia 1, i686, openssh 5.8p1, rsync  version 3.0.8  protocol version 30

New Client: Debian Squeeze, armv5tel, openssh 5.5p1, rsync  version 3.0.7  protocol version 30

To make a long story short: The error message is absolutely misleading. The error is not caused by a protocol incompatibility, but simply by my forced command. And the error is simply triggered by using --dry-run.

Explanation

When running rsync with --dry-run, obviously the command, which is send to the server, differs. Now the SSH-Server drops the connection, since the received command does not match the forced command. rsync get communication errors which it is misinterpreting and talking about "protocol incompatibility".

23.02.2012 19:14

Neues aus meiner Toolbox: pdfjoin-Droplet

Ich habe ein Programm pdfjoin erstellt, das PDF-Dateien bequem aneinander hängen kann. Das Programm kann auch als "droplet" arbeiten.

Was ist das Besondere?

Mit meinem Tool braucht man das PDF nicht zu öffnen oder sich mit einem "Split and Merge" Programm beschäftigen. Einfach die PDFs der Reihe nach auf das Icon werfen und auf dem Desktop erscheint ein neues PDF.

Das Zusammenhängen geht zwar auch über die Druck-Funktion des PDF-Readers, aber dazu muss man das PDF erst öffnen und und dann drucken. Und unter Windows braucht man einen Pseudeo-Drucker, der PDF erzeugt und "multidoc" beherrscht (z.B. FreePDF). Das ist einfach umständlicher.

Was ist ein Droplet?

Der Begriff droplet stammt aus der Apple-Welt. Es bezeichnet ein Programm oder Skript, das eine bestimmte Funktion ausführt, wenn man ein anderes Icon auf das Icon des Programms zieht und dort fallen läßt (eben "to drop").

Geht es auch anders?

Ja, das Programm läßt sich auch mit Parametern über die Kommandozeile ausführen.

Für welche Plattformen?

Wie bei mir üblich, ist das Tool plattform-unabhängig in Python geschrieben. Den Quelltext gibt es unter https://gitorious.org/pdftools/pdfjoin. Einen Windows-Installer und ein ein OSX-Bundle kann ich bei Bedarf erstellen.

16.02.2012 18:24

(0) Kommentare