Warum Evernote?

Aktuell wird in vielen Blogs mal wieder die Frage diskutiert, warum es zu Evernote eine Alternative geben sollte und wenn ja, welche. Ich schicke vorweg, dass ich etwas voreingenommen bin, da ich Evernote seit seiner ersten Stunde nutze. Aber auch an mir sind die Probleme nicht vorbei gegangen. Die Apps für iOS sind weder flüssig, noch stabil. Feature die von allen Seiten angebettelt werden, kommen nicht. Hier werden Nutzerwünsche beharrlich ignoriert. Ein Beispiel wäre der Markdown-Support. Ein wenig in die Richtung ging es, aber noch weit von echtem MD entfernt.

Aber dennoch gibt es derart viele Gründe die für Evernote sprechen, dass ich nach jedem Fluchtversuch reumütig zurück gekommen bin. Ich will hier einmal meine Gründe auflisten. Dies kann vielleicht für so manchen Entscheider eine Hilfe sein. Ich wage zu behaupten, die Entscheidung fällt dann wieder für Evernote, denn:

Diese Feature sind für mich Entscheidungskriterien

  1. Umfangreiche Suchgrammatik
  2. Gespeicherten Suchen
  3. Favoriten
  4. Shortcuts
  5. iOS-App
  6. Web-App
  7. Erinnerungen Wiedervorlagen
  8. Mehrstufige Struktur in Tags
  9. Stapel (Kategorien)
  10. Suche in Inhalten der Anhänge
  11. Beobachtete Importordner
  12. Freigaben
  13. Webclipper
  14. IFTTT
  15. Import-Möglichkeit per E-Mail
  16. Verknüpfte Notizen (interne URL)
  17. „Bulk“-Editieren (Kategorien oder Tags zuweisen)
  18. „1-Klick-Filtern“ nach Tags im Suchergebnis
  19. Integrierte Ansicht von PDFs
  20. Copy/Paste von Screenshots/Bilder
  21. Markieren von PDFs oder Grafiken
  22. Öffentliche URL zu Notizen möglich
  23. Kontextbezogene Ansicht anderer Notizen
  24. Ordentlicher Tabelleneditor

Der Import von Notizen kann vielfältig stattfinden

  • Beobachtete Verzeichnisse
    • Mehrere möglich, je Kategorie
  • Copy / Paste
  • IFTTT
  • E-Mail
  • Scanner

Evernote ist nicht nur eine Notizsammlung, es ist ein DMS

  • sortiert und geordnet
  • Externe Verlinkung möglich
  • Notizbuchstruktur
  • Schlagwörter
  • Wiedervorlage von Dokumenten
  • Volltextsuche
  • Integrationen mit anderen Webdiensten
  • Import per
    • Scanner
    • Beobachte Ordner
    • Email
    • Webclipper
    • IFTTT
    • Zapier
    • Smartphone

Die Kosten sind nicht ohne

Evernote muss Geld verdienen, sonst werden wir bald wieder einen Dienst erleben, den wir schmerzlich vermissen werden. Ja, es wurden die Peise erhöht und die alternativen Optionen reduziert. Aber man bekommt wirklich was für sein Geld. Man muss es dann aber auch nutzen, man muss sich mit beschäftigen, man muss sich mit Haut und Haaren auf Evernote einlassen. Dann wird man damit glücklich.

 

 

 

 

Zwischenablage per Remote Desktop erlauben

Wenn die Zwischenablage zwischen einer Remotedesktopverbindung (RDP) und dem eigenen Rechner nicht funktioniert, kann das natürlich daran liegen, dass diese im MSTSC-Client nicht aktiviert ist.

Das ist aber eher seltener die Ursache. Auch die häufig zu lesende Lösung rdpclip.exe bzw. den Dienst neu zu starten ist nicht die Lösung, wenn der folgende Dialog in der Konfiguration des Remotedesktop-Sitzungshost nicht die Zwischenablage erlaubt, bzw. die Umleitung deaktiviert ist:

Fazit: Wenn es im Server deaktiviert ist, nutzen keine Einstellungen am Client. Und rdpclip.exe neu starten geht auch nur, wenn der Service überhaupt läuft.

 

 

HTML-Email auch in Outlook mit korrekter Schriftart

Leider verfällt Outlook bei HTML-E-Mail gerne auf den kleinst gemeinsamen Nenner und dieser ist die Schriftart „Times New Roman“. Jedoch gibt es einen Trick, auch in Outlook eine schöne und vor allem gewollte Schriftart zu provozieren.

Dies funktioniert nicht:

<style > {font-family:Asap,Calibri,Verdana,Arial}

Das ist die Lösung

 <body bgcolor="#FFFFFF"> 
 <!--[if mso]>
 <style type="text/css">
 body, table, td {font-family:Asap,Calibri,Verdana,Arial !important;}
 </style>
<![endif]-->

Direkt unter dem <body>-Tag positioniert wird nun die dort eingetragene Schriftart verwendet. Natürlich nur die, die auch auf dem Zielrechner vorhanden ist. Im obigen Beispiel wird es „Asap“ eher selten bis nie der Fall sein.

Vor allem beim automatisierten Versand von E-Mail mit blat.exe | blatt.dll haben mir diese paar Zeilen ein drängendes Problem gelöst.

Quadro (iOS) ohne Shortcuts mit Autohotkey (Windows)

Update: Das Projekt wurde eingestellt und aus dem App-Store entfernt.

Quadro ist ein recht pfiffiges Bedienkonzept für PC und MAC unter Verwendung von iPhone oder besser iPad.

Eine schön und informativ gemachte Website sollte man einmal besuchen, falls nicht nur die Maus verwendet soll, oder man einfach Interesse an neuen Ideen hat: http://quadro.me/

Leider ist die App aber recht teuer, daher habe ich zunächst ein weiteres Ausprobieren beendet. So ganz konnte ich doch die Finger nicht von Quadro lassen. Zu sehr hat mich noch dieses Konzept gereizt. Und dann mache ich die Entdeckung des Tages:

Es können Autohotkey-Skripte in den „Actions“ verwendet werden. Damit steht so ziemlich jede Idee zur Umsetzung zur Verfügung. Ein Beispiel: Ich habe eine Anwendung mit relativ wenigen vordefinierten Shortcuts. In dieser kommt übrigens noch erschwerend hinzu, dass unter Windows 10 teilweise keine Icon in der Toolbar sichtbar sind. Man kann nun die Shortcuts anlegen und wenn man sie auswendig gelernt hat, auch die Toolbar abschalten, aber das erfordert reichlich Fleiß, Kreativität bei den Shortcuts und natürlich Erinnerungsvermögen. Also habe ich mir nun ein Autohotkey-Skript geschrieben, welches die als Parameter übergebenen Menü-Punkte im Programm startet. Ich brauche mir nun keine Shortcuts mehr ausdenken und merken und ich sehe in der Konfiguration von Quadro, was das Pad auf dem PC dann machen wird. „File Open“ ist irgendwie doch sprechender als „STRG-O“. Und die Pads auf dem iPad kann ich schön beschriften und und mit institutiven Symbole versehen.

Fazit: Neben meiner Maus liegt nun ein iPad, die Toolbars habe ich abgeschaltet und so auch mehr Platz auf dem Bildschirm. Ich brauche mir keine Shortcuts merken und mit dank des Autohotkey-Skriptes kann ich mir die „Actions“ in Windeseile anlegen.

Reguläre Ausdrücke im PowerBuilder

PowerBuilder Objekt

In einem älteren Beitrag habe ich hier einmal beschrieben, wie ich meine Archivierung teilweise automatisiert habe. In dem Artikel ging es im Wesentlichen darum, wie Dokumente verschlagwortet werden und sinnvolle Dateinamen bekommen. Der Ablauf OCR über die Dokumente, erkannten Text extrahieren, dann Meta-Daten schreiben und Datei umbenennen habe ich mit Autohotkey realisiert. Doch stieß ich hier schnell an Grenzen, zumindest bei dem Ansinnen, es auch alles etwas ergonomisch und nett für den Anwender zu machen. Da blieb dann für mich „nur“ noch der PowerBuilder von Sybase bzw. SAP und ich habe das Projekt im Prinzip von vorne begonnen.

Doch schnell stieß ich auf ein wesentliches Problem. Der extrahierte Text muss nach Datum, Belegnummer, Absender oder Kontonummer, Auszugnummer etc. durchsucht und die gefunden Werte in die Datenbank eingetragen werden. Bisher habe ich schlicht die Zeichenketten vor und die Zeichenketten nach einem Wert gesucht. Alles dazwischen entsprach bspw. einem Datum. Funktioniert prima, wenn es feste Werte sind. Steht vor einem Datum zum Beispiel eine Belegnummer, so ist diese natürlich nie gleich. Hier muss ich nach Zahlen suchen. Das geht mit den im PowerBuilder gebotenen Funktionen nicht so einfach. Denn es geht eigentlich nicht mehr ohne Reguläre Ausdrücke. Die Funktion Match() kann diese zwar grundsätzlich, doch liefert sie nur ein „gefunden oder nicht gefunden“ zurück. Ich benötige aber den Wert.

Nun hätte ich das auch auf Datenbankebene machen können. Mit REGEXP_SUBSTR sind RegEx im SQL möglich. Doch auch hier habe ich das Problem, dass ich zwar gemäß Muster was finde, aber ich will nicht das Suchergebnis, sondern einen bestimmten Teil dieses Ergebnisses. Und hier kommt nun unvo_regexp ins Spiel. Es ist ein natives userobject welches vbscript.regex OLE object (Author: Nicolas Georges) einbindet. Es kann hier heruntergeladen werden.

Nachdem man unvo_regexp.sru importiert hat, steht einem ein kleines Objekt mit den nötigen Methoden zur Verfügung.

Wenn man sich diese ein wenig ansieht, ist es nahezu selbsterklärend. In meinem Fall war hier insbesondere die Methode group() von entscheidender Bedeutung. Ich kann nun direkt auf den gewünschten Wert zugreifen, auch wenn mein Suchergebnis zum Erlangen eines präzisen Fundortes recht groß ist. Die richtige Klammer gesetzt und mit rx.group(matchindes,groupindex) direkt zugreifen.

Zum Abschluss ein kleines Code-Beispiel, mit dem ich das Objekt getestet habe. Aus der Zeichenkette, die in einer PDF natürlich noch viel mehr Text davor un dahinter hat, soll das Belegdatum herausgelöst werden:

text_ges = '01661978 20.10.2016 4597'
unvo_regexp rx
rx = create unvo_regexp
rx.initialize( "\d{8}.(([0-2][0-9]|30|31)\.(0[1-9]|1[0-2])\.[0-9]{4}).\d{4}" /*as_pattern*/, true/*ab_globalscope*/, true/*ab_casesensitive */)
ll_match_count = rx.search( text_ges )

gc = rx.groupcount(1) // Anzahl Gruppen 
gs = rx.group(1,1) // Erste Gruppe aus erstem Suchergebnis, hier das Datum.

In meinem Regeleditor für meine Archivierung kann ich nun einen regulären Ausdruck für jeden Wert eintragen. Mit diesem finde ich nahezu alles. Ich muss jedoch zugeben, für den Anwender ist das schon hartes Brot. Aber mit diesem RedEx Editor hat man alle Chancen, einen guten Ausdruck erzeugen zu können.

Online RegEx Editor

Sollte das Thema interessant sein, Fragen aufkommen, ich freue mich über jeden Kommentar.