Yum yum, this is easy to make, extremely tasty and because it's called a salad, it must be healthy.
- Get a head of lettuce (a leafy green one), and take about half and break into pieces.
- Fry some pieces of bacon and cook two or three eggs. Bacon should be well done, the eggs yolk should be liquid if you can (the white solid).
- Cut up a bit of goat cheese or mozarella and add to the salad.
- Add bacon and add the eggs cut, and mix. The yolk should become a kind of sauce to the salad.
- Add some mustard salad dressing and croutons.
A small update to yesterdays BTsync post: the encrypted remote seemed to work, however something on my remote server seems to kill the BTsync process prematurely. Perhaps the cpu usage, perhaps the client itself. Seems that I'll need to continue to use my own server, which is not really a problem other than a few euros per year on electricity.
For the record, using an encrypted remote works as follows:
- Take any valid key, and change the first 'A' to 'D', and reshare the folder with that key. This means that BTsync will calculate an encrypted hash-tree instead of a regular one. Use this key on any machine you want to share your unencrypted files with.
- Take the read-only key (which is longer than a normal), and truncate to normal length. Change the first 'E' to 'F' and use this new key on your encrypted, untrusted node.
BTsync, or Bittorrent Sync, and a Linux gui here, is an internet file synchronization app, i.e. a self-hosted Dropbox replacement. Since this weekend I've been using it as such which great success. Two computers with the same share key will sync a folder between them, using discovery technology similar to that in Bittorrent to find all your other machines on the internet. Multiple shared folders a default functionality, just generate another key and share with whomever you wish. The speed is very good on the LAN too, and at work I seem to get speeds similar to Dropbox. On one of my workplaces BTsync ssems to be blocked, but with version 1.3 (out since yesterday) connections have a fallback to TCP (from UDP), so perhaps this solves that problem. I'll be monitoring it's performance for a while, but I think this will finally allow me (and you!) to replace hosted sync apps (Dropbox, Box, Google Drive, etc) with a self-hosted solution, where you have to trust nobody. Well, BTsync is closed source... I have not seen any indication there is actually is some phoning home going on, but any open sourcing of the code would only reinforce its use case.
Because there is no always-online server, for two devices to sync they must be switched on at the same time. Therefore I'm now using an old laptop in attic as a server, and it works fine. I do however have access to a server at work, and BTsync runs wonderfully there too (static binaries ftw). I don't want to trust that server though, and it seems there is already some undocumented functionality for that. On the BTsync forums one can read that since november there is support for untrusted nodes: nodes that never decrypt your data, but still contain a copy of it and allow you to sync with as if it's a normal node. Perfect for me, but I still have to try it out (generating the correct key is a tiny bit of hassle. While waiting for a gui implementation, the clearest instuction I could find is here.
Marco Arment writes a beautiful example of why some behaviour we all see (I at least) every day is absolutely futile: trying to change others' behaviour out of a sense of 'rightness'. I'm guilty of it too of course. Telling other what to do and how to do it. It's not wrong, as Marco writes, it's probably just not going to work. It's better to use the 'unwanted' behaviour, or plan around it. Make it so that the behaviour apparently inherent in your family, colleagues or humans in general results in what you want, without changing that behaviour itself, perhaps not even directly addressing it.
This reads a little like an old man complaining about them young-uns and their newfangled gizmos, but I like the general sentiment: the point of computers is getting shit done. At least for everyone not in computer engineering or informatics. Sometimes the drive for abstraction drives me up the wall, just take a look at what I'm dealing with right now:
And that's just to define a few commands (which, for all the subclassing for specific types, are still internally cast to strings and back again!). As Joel Spolsky puts it succinctly:
When you go too far up, abstraction-wise, you run out of oxygen.