Firefox Lesezeichen ueberall – Selfmade!

Ich arbeite an vielen unterschiedlichen Computern und moechte ueberall die gleichen Lesezeichen immer synchron haben. Es faellt mir jedoch schwer die Daten einer Firma zu geben die mit der Auswertung meiner Daten und dann Werbung oder aehnlichem Geld verdient. Ich arbeite schon laenger mit Foxmarks und neuerdings heisst es ja Xmarks. Durch einen kleinen Beitrag in der neuen CT hab ich mich nu auch mal aufgerafft und habe die Lesezeichen auf meinen eigenen Server verfrachtet. Im folgenden die erforderlichen Schritte dahin:

aptitude install apache2
a2enmod dav
a2enmod dav_fs
a2enmod ssl
/etc/init.d/apache2 force-reload
cd /var/www/
mkdir webdav
chown www-data:www-data webdav
htpasswd -c .htpasswd-webdav USERNAME
chown root:www-data .htpasswd-webdav
chmod 640 .htpasswd-webdav

Die folgenden Zeilen in die /etc/apache2/sites-available/default-ssl hinzufuegen:

    <VirtualHost *:443>
    ServerAdmin webmaster@example.net
    ServerName webdav.example.net
    DocumentRoot /var/www/webdav
 
        SSLEngine On
        SSLCertificateFile      /etc/apache2/MYSSLCERT.pem
        SSLCertificateKeyFile   /etc/apache2/MYSSLCERT.pem
 
        <Directory /var/www/webdav/>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        <Location />
           DAV On
           AuthType Basic
           AuthName "Webdav"
           AuthUserFile /var/www/.htpasswd-webdav
           Require valid-user
       </Location>
 
</VirtualHost>

Apache neustarten und testen ob alles geht. Beim verbinden mit cadaver muesst Ihr das Zertifikat akzeptieren und dann mit den in der .htpasswd-webdav gespeicherten Userdaten einloggen. Wieder rauskommen tut ihr mit „quit“.

/etc/init.d/apache2 restart
aptitude install cadaver
cadaver https://webdav.example.net

So, das wars auch schon fast! Nun muesst Ihr nur noch das Xmarks Firefox-Plugin installieren und in den Einstellungen unter „Erweitert“ die Option „Eigenen Server verwenden“ aktivieren und als Lesezeichen und Passwort-URL die URL zu eurem Server angeben. ACHTUNG!: Es muss auch eine Datei angegeben werden und nicht nur ein Verzeichnis! Bsp:

  • LesezeichenURL: https://webdav.example.net/bookmarks.json
  • Passwort-URL: https://webdav.example.net/passwords.json

Ich persoenlich habe die Passwort-synchronisation jedoch deaktiviert (genauso wie auch den ganzen Extrakram unter „Entdecken“, nervt nur). Nun einmal noch im Erweitert-Tab auf „Hochladen“ klicken und zusehen und evtl. Zertifikat akzeptieren, Benutzernamen und Passwort eingeben und zusehen wie die Daten hochgeladen werden. Viel Spass :)

Zum festhalten…

So viel passiert in den letzen Tagen und so wenig Zeit sich damit zu beschaeftigen und anzugucken

noch was vergessen? Bestimmt! Aber erstmal wird Werder Bremen heute Abend ins UEFA-Cup Finale einziehen! ;-)

Aus Word bekannter Shift-F3 Shortcut in OpenOffice

Unter Microsoft Word gibt es wohl den Shortcut „Shift-F3“, der die Gross- und Kleinschreibung von Woertern wie folgt aendert: „woerter Woerter WOERTER“. OpenOffice bringt diese Funktion von Haus aus nicht so mit. Abhilfe schafft dort ein kleines Makro. Dazu: Extras ->  Makros -> Makros verwalten -> [Makro|OpenOffice BASIC]. Dort auf Bearbeiten klicken und folgendes Makro einfuegen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Sub CaseToggle
' CaseToggleMk3 phb 20070828
' Should preserve formatting and bookmarks in Writer
' Should work on text within a table in Writer (but not on whole cells)
' Should work on multiple words
' Does not handle non-contiguous text selection
   dim document,dispatcher,vcursor,oText,alpha,omega,ThisSeln,oBookmark As Object
   dim seln,nextword,nextbit as string
   dim loops,posn,nSelCount as integer
   dim ctogbmpv(0) as new com.sun.star.beans.PropertyValue
   On Error GoTo ExitPoint ' In case selection is not text
   nSelCount = thiscomponent.getCurrentSelection().getCount()
   if nSelCount>1 then
      msgbox ("There seems to be more than one piece of text selected." & _
      chr(10) & "Try making one selection.",0,"Case Conversion")
      goto ExitPoint
   endif
   loops=0
   document=ThisComponent.CurrentController.Frame
   dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
   vcursor=ThisComponent.currentcontroller.getViewCursor()
   ctogbmpv(0).Name="Bookmark"
   ctogbmpv(0).Value="ctogbm"
   dispatcher.executeDispatch(document, ".uno:DeleteBookmark", "", 0, ctogbmpv())
   dispatcher.executeDispatch(document, ".uno:InsertBookmark", "", 0, ctogbmpv())
GetSeln: ' Much here is taken from Andrew Brown and Andrew Pitonyak
   oText=vcursor.getText()
   alpha=vcursor.getStart()
   omega=vcursor.getEnd()
   ThisSeln=oText.createTextCursorByRange(alpha)
   ThisSeln.goToRange(omega,TRUE)
   seln=ThisSeln.getString()
   if seln<>"" then ' There is a selection - go and change case
      goto ChgCase
   endif ' make a selection to change
   dispatcher.executeDispatch(document, ".uno:GoToNextWord", "", 0, Array())
   dispatcher.executeDispatch(document, ".uno:WordLeftSel", "", 0, Array())
   loops=loops+1
   if loops=2 then goto FinishOff ' in case we failed to find any text to select
   goto GetSeln
ChgCase: 'Check case of seln and alter accordingly
   if seln=ucase(seln) then 'seln is already UPPER - set to lower
      dispatcher.executeDispatch(document, ".uno:ChangeCaseToLower", "", 0, Array())
      goto FinishOff
   endif
   if seln=lcase(seln) then 'seln is already lower - set to Title
      goto SetToTitle
   endif 'seln is probably mixed case - set to UPPER
      dispatcher.executeDispatch(document, ".uno:ChangeCaseToUpper", "", 0, Array())
      goto FinishOff
SetToTitle:
      vcursor.collapsetoStart()
      posn=0
      do while posn<len(seln)
         loops=0
         nextbit="1"
         do while nextbit=lcase(nextbit) and loops<2
            vcursor.goRight(1,TRUE)
            dispatcher.executeDispatch(document, ".uno:ChangeCaseToUpper", "", 0, Array())
            alpha=vcursor.getStart()
            omega=vcursor.getEnd()
            ThisSeln=oText.createTextCursorByRange(alpha)
            ThisSeln.goToRange(omega,TRUE)
            nextbit=ThisSeln.getString()
            loops=loops+1
         loop
            if instr(nextbit," ")>0 or instr(nextbit,chr(10))>0 then
               vcursor.goLeft(1,TRUE) ' To avoid problems due to punctuation marks
            endif
         dispatcher.executeDispatch(document, ".uno:WordRightSel", "", 0, Array())
         alpha=vcursor.getStart()
         omega=vcursor.getEnd()
         ThisSeln=oText.createTextCursorByRange(alpha)
         ThisSeln.goToRange(omega,TRUE)
         nextword=ThisSeln.getString()
         posn=posn + len(nextword)
         vcursor.collapsetoEnd()
      loop
FinishOff: 'set vcursor back to the original position
   oBookmark=ThisComponent.getBookmarks().getByName("ctogbm")
   ThisComponent.getCurrentController().select(oBookmark)
   dispatcher.executeDispatch(document, ".uno:DeleteBookmark", "", 0, ctogbmpv())
ExitPoint:
end Sub

Das Makro habe ich auf dieser Seite gefunden. Ueber Datei -> Speichern abspeichern und dann schliessen. Nun noch das Makro dem gewuenschten Shortcut zuordnen. Dafuer: Extras -> Anpassen, in den Tab Tastatur wechseln, als Tastenkombination Umschalt+F3 auswaehlen, als Funktion unter OpenOffice.org Makros -> user -> Standard -> Module1 das soeben gespeicherte CaseToggle auswaehlen und anschliessend (oben) auf Aendern klicken. Danach steht die gewuenschte Funktionalitaet zur Verfuegung