This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
misc:n9 [2012/01/27 22:37] c7031007 [Synchronizing Encrypted Data] |
misc:n9 [2018/09/03 19:35] (current) |
||
---|---|---|---|
Line 4: | Line 4: | ||
- | ===== Synchronizing Contacts and Calendars ===== | + | ===== Synchronizing Contacts, Calendars, To-Dos, Notes ===== |
If you do not want to entrust your data to //The Cloud//, you can sync the N9 directly to the desktop. Here is the most functional way I found: | If you do not want to entrust your data to //The Cloud//, you can sync the N9 directly to the desktop. Here is the most functional way I found: | ||
- | * On the N9, install [[http://people.debian.org/~ovek/harmattan/|syncevolution_*_armel.deb]]. | + | * On the N9, install the latest [[http://people.debian.org/~ovek/harmattan/|syncevolution_*_armel.deb]]. |
* On the host PC, run ''syncevo-http-server -q %%http://localhost:9000/syncevolution%%''. | * On the host PC, run ''syncevo-http-server -q %%http://localhost:9000/syncevolution%%''. | ||
- | This allows synchronization of the contacts and of multiple calendars. Todos and notes cannot currently be sync'ed in this way, but this may [[http://lists.syncevolution.org/pipermail/syncevolution/2012-January/003289.html|follow]] at some point. | + | This allows [[http://syncevolution.org/wiki/synchronizing-evolution-http-howto|synchronization]] of the contacts, multiple calendars and to-do lists, and notes.((Contacts sync appears to require a login shell on the N9. Thus, my sync script fires it up with |
- | There does not currently seem to be a straightforward way for SyncEvolution to sync over [[http://lists.syncevolution.org/pipermail/syncevolution/2012-January/003291.html|Bluetooth/OBEX]]. One can use the N9 built-in SyncML client to sync with a desktop Evolution server over Bluetooth, but this solutions apparently has its [[http://lists.syncevolution.org/pipermail/syncevolution/2012-January/003279.html|weaknesses]]. | + | ssh user@192.168.2.15 "sh -l -c 'syncevolution -q client-for-laptop addressbook'" |
+ | )) | ||
I do not miss Bluetooth sync much, as I need to keep the USB cable around for recharging anyway. | I do not miss Bluetooth sync much, as I need to keep the USB cable around for recharging anyway. | ||
- | ===== Synchronizing Notes ===== | + | ==== Other Options ==== |
- | Notes can be sync'ed both ways as follows: | + | * There does not currently seem to be a straightforward way for SyncEvolution to sync over [[http://lists.syncevolution.org/pipermail/syncevolution/2012-January/003291.html|Bluetooth/OBEX]]. |
+ | * One can use the N9 built-in SyncML client to sync with a desktop Evolution server over Bluetooth, but this solutions apparently has its [[http://lists.syncevolution.org/pipermail/syncevolution/2012-January/003279.html|weaknesses]]. | ||
+ | * OpenSync is another promising route ([[http://opensync.org/wiki/trunk/syncmlConfig|SyncML]] facing the N9, [[http://opensync.org/wiki/plugins/akonadi|Akonadi]] or [[http://opensync.org/wiki/trunk/syncing/evolution|Evolution]] on the host). Presumably this would be subject to the same alleged limitations of the N9's built-in Bluetooth sync as noted above. We have not tried this comprehensively (partially because of package dependency problems; OpenSync is under heavy development), and would be delighted to learn more. | ||
+ | * There are several options for installing your own, open-source //cloud// services locally, and sync with them, but this adds a third, intermediary data store. | ||
- | * On both the N9 and on the host system, install ''git''. | + | ===== Synchronizing Plain-Text Notes ===== |
+ | |||
+ | Notes stored in plain text files can be sync'ed both ways as follows: | ||
+ | |||
+ | * On both the N9 and on the host system, install ''git''. On the N9, create a bare git repository.((The need for ''git'' on the N9 can be avoided entirely by ''sshfs''-mounting the N9 and doing all of the following on the host system.)) | ||
* Place all your notes in flat files, one file per note. | * Place all your notes in flat files, one file per note. | ||
- | * On the N9, place a couple of scripts that ''git push'' and ''git pull'' your Notes directory. | + | * On the N9, place a couple of scripts that ''git push''(( |
+ | PATH=$PATH:/usr/libexec/git-core | ||
+ | cd $1 | ||
+ | git status | grep 'nothing to commit (working directory clean)' | ||
+ | if [ $? != 0 ] ; then | ||
+ | git add -A | ||
+ | git commit -m "sync commit" | ||
+ | git push | ||
+ | fi | ||
+ | )) and ''git pull''(( | ||
+ | PATH=$PATH:/usr/libexec/git-core | ||
+ | cd $1 | ||
+ | git pull | ||
+ | )) your Notes directory. | ||
* A full sync is then done by something like the following sequence: | * A full sync is then done by something like the following sequence: | ||
- ''push'' on the N9 | - ''push'' on the N9 | ||
Line 31: | Line 52: | ||
Voilà. Much better than conventional solutions, since notes are sync'able even if they are simultaneously edited on both sides. And you get to keep your entire history. | Voilà. Much better than conventional solutions, since notes are sync'able even if they are simultaneously edited on both sides. And you get to keep your entire history. | ||
- | The drawback is lack of integration with the N9. Editing notes can be tedious. You can alleviate this a bit by [[http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libcontentaction/index.html#xdgmimehandling|configuring]] the N9 to open text files inside ''nano'' instead of the document viewer. | + | The drawback is lack of integration with the N9. Editing notes can be tedious. You can alleviate this a bit by configuring((To ''/home/user/.local/share/applications/defaults.list'', to the ''[Default Applications]'' section, add the line |
+ | text/plain=nano.desktop | ||
+ | or create this if it does not exist.)) the N9 to open text files with an editor instead of the document viewer. | ||
+ | |||
+ | **Warning:** I have not yet tried what happens in case of a merge conflict. In any case, they will require manual fixing. | ||
- | ===== Synchronizing Encrypted Data ===== | + | ===== Sensitive Data ===== |
- | Many people carry encrypted data around with them, such as passwords. There are various //keyring//, //wallet// etc. programs out there to maintain these, but I did not find a good solution for the N9, at least none that allowed any straightforward way of sync'ing such data with the desktop. But here is a simple solution that covers most use cases: | + | Many people carry sensitive data around with them, such as passwords. There are various //keyring//, //wallet// etc. programs out there to maintain these in an encrypted fashion, but I did not find a good solution for the N9, at least none that allowed any straightforward way of sync'ing such data with the desktop. But here is a simple solution that covers most use cases: |
* On both the N9 and on the host system, install ''gpg''. | * On both the N9 and on the host system, install ''gpg''. | ||
- | * Write little scripts for encryption and decryption of files. | ||
* Keep all your encrypted data in a subtree of the file system, one record per (encrypted) file. | * Keep all your encrypted data in a subtree of the file system, one record per (encrypted) file. | ||
* Sync this directory subtree from the desktop to the N9 using ''rsync''. | * Sync this directory subtree from the desktop to the N9 using ''rsync''. | ||
- | * [[http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libcontentaction/index.html#xdgmimehandling|Configure]] the N9 to associate with ''.gpg'' files the action of running, inside the Meego Terminal, a script that decrypts it to ''stdout''. | + | * [[http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libcontentaction/index.html#xdgmimehandling|Configure]] the N9 to associate with ''.gpg'' files the action of decrypting to ''stdout'' inside the Meego Terminal.((Here is my ''/usr/share/applications/decrypt.desktop'' on the N9: |
+ | [Desktop Entry] | ||
+ | Name=Decrypt | ||
+ | Comment=Display GPG-encrypted text/plain files | ||
+ | Exec=/usr/bin/meego-terminal -e sh -c "/usr/bin/gpg --decrypt %U ; read" | ||
+ | Type=Application | ||
+ | MimeType=application/pgp-encrypted; | ||
+ | )) | ||
- | Voilà. Much better than any keyring/wallet program, at least for Emacs users. To consult a password on the N9, simply open the file in a file manager (I recommend Filebox), and it will pop up the terminal, ask for your passphrase, and dump the record to the screen. | + | Voilà. Much better than any keyring/wallet program, at least for Emacs users. To consult a password on the N9, simply open the file in a [[http://store.ovi.com/content/204982|file manager]], and it will pop up the terminal, ask for your passphrase, and dump the record to the screen. |
- | The drawback is that encrypted files can only be edited on one of the two machines, not on both. | + | Drawbacks: |
+ | * Encrypted files can only be edited on one of the two machines, not on both. | ||
+ | * This solution is much more **vulnerable to local malware attacks** than well-written keyring/wallet programs. | ||
===== Offline Reading ===== | ===== Offline Reading ===== | ||
- | I have a little script that pulls a URL with prerequisites using ''wget'', cleans the pulled HTML files with ''tidy'', and strips out all ''<script>''s with a tiny XSLT transformation (I do not know of a way to turn off Javascript with the stock Web browser). The whole batch is then moved to the N9 by my sync script, and I always have a bunch of online reading material with me. | + | I have a little script that pulls a URL with prerequisites using ''wget'', cleans the pulled HTML files with ''tidy'', and strips out all ''<script>''s with a tiny XSLT transformation (I do not know of a way to turn off Javascript with the stock Web browser). The whole batch is then moved to the N9 by my sync script, and I always have a bunch of offline reading material with me. |