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. |