Skip to content

Instantly share code, notes, and snippets.

View michielbdejong's full-sized avatar

Michiel de Jong michielbdejong

View GitHub Profile
@michielbdejong
michielbdejong / gist:836041
Created February 20, 2011 15:21
freedom box goals

1 Safe social networking, in which, without losing touch with any of your friends, you replace Facebook, Flickr, Twitter and other centralized services with privacy-respecting federated services;

2 Secure backup: Your data automatically stored in encrypted format on the Freedom Boxes of your friends or associates, thus protecting your personal data against seizure or loss;

3 Network neutrality protection: If your ISP starts limiting or interfering with your access to services in the Net, your Freedom Box can communicate with your friends to detect and route traffic around the limitations. Network censorship is automatically routed around, for your friends in societies with oppressive national firewalls, or for you;

4 Safe anonymous publication: Friends or associates outside zones of network censorship can automatically forward information from people within them, enabling safe, anonymous publication;

5 Home network security, with real protection against intrusion and the security threats aimed at Mic

@michielbdejong
michielbdejong / video-text
Created July 11, 2011 10:42
draft text for 10-minute video explaining our project
Caption: "Exit Installed Software. Enter Hosted Software."
Do you remember when we didn't have internet? Fifteen years ago, we each had our computer, but we used them
as stand-alone devices. Say you used your computer to invite people to your birthday party. You would use a
text editor to write the invite text, a spreadsheet for the guest list addresses, and a drawing program to
draw a nice invite. You would save everything on your computer's hard disk, so you have a copy of your art
work, and then you would print out the invites using this thing called a printer, and send them in the post.
Ten years later, we all had email addresses, and the web existed as a place for information. So to send
birthday party invites to your friends, you would do the same, except you would use email instead of postal
@michielbdejong
michielbdejong / browsermail
Created July 23, 2011 15:46
smtp forwarded into the browser over a websocket
var Browsermail = function() {
var sockets = {}
require('smtp').createServer(function(connection) {
connection.on('DATA', function(message) {
for(var i = 0; i < message.recipients.length; i++) {
var emailAddress = message.recipients[i].address.match(/([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)/g)[0]
if(socket = sockets[emailAddress]) {
message.on('data', function(data) {
socket.emit('data', data)
})
localhost:website mich$ vim .well-known/acct\:michiel\@unhosted.org.webfinger
{
"links": [
{
"rel": "https://www.w3.org/community/unhosted/wiki/personal-data-service-00",
"type": "https://www.w3.org/community/rww/wiki/read-write-web-00#simple",
"href": "http://lamp.unhosted.org/storage/unhosted.org/michiel",
"properties": [
"access-methods": ["http://oauth.net/core/1.0/parameters/auth-header"],
@michielbdejong
michielbdejong / gist:5773459
Last active December 18, 2015 11:09
sync and caching in remotestorage.js
for each path on the storage, the universe can be in any of the following states:
- it is a folder path (ending in a /) vs. it is a document path (not ending in a /)
- the client had no access vs. read-only access vs. full access to it
- a folder/document exists at the path in the client copy, yes vs. no
- a folder/document exists at the path in the server copy, yes vs. no
- the path is "used" yes vs. treeOnly vs. no
- there may be a pending outgoing change
- these may be a pending incoming change
<html>
<body></body>
<script src="release/0.8.1/remotestorage.js"></script>
<script>
RemoteStorage.defineModule('test', function(privC, pubC) {
return {
exports: {
test: function() {
privC.storeFile('test', 'A%2FB', 'test');//should result in a PUT to a URL ending in ../test/A%252FB, not A%2FB
}
@michielbdejong
michielbdejong / gist:7504098
Last active December 28, 2015 12:59
webfinger
curl -ik https://michielbdejong.com/.well-known/webfinger?resource=acct:[email protected]
HTTP/1.1 200 OK
Date: Sat, 16 Nov 2013 19:16:53 GMT
Accept-Ranges: bytes
ETag: "485-1376408399000"
Cache-Control: public, max-age=0
Last-Modified: Tue, 13 Aug 2013 15:39:59 GMT
Content-Type: application/octet-stream
Content-Length: 485
X-Powered-By: https://github.com/michielbdejong/welten
@michielbdejong
michielbdejong / gist:7603534
Created November 22, 2013 17:16
public key from my build server
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDf6Yz+vpmlcWLEha9/HxJ2AqQrRAiNJ4PtgBSDXuz+DTq3N6JvLhm0wAHEaZAq+EJLv1CZxPPpQfQMcJKwNdjXO+zd5Z2rTx/InwoPDZsQvyOoNz9SYoZHfSoeG7A4tBs9W/51NUQ5qpUFJZ90scp/gpQNdAPQpVDRu26+OCZx+XQaQjVsRhCaib5AhRWAIDD61M/Ig4cdaTBMF/G6QSic/deTt0mHGMC73CRzJQnBGrjEk68IBWLHkj/r7pxMmzYtE999YfVBRJsg6c2PHiPQKX46CkfkuNeYJRvv9oHZ7Q4APOdbj8dUe9lXGYHrrS2QVdzui8r6tnxpu6aXm8fz michiel@build-stuff
@michielbdejong
michielbdejong / gist:7707267
Created November 29, 2013 15:25
changelog
## 0.8.4 (November 2013)
* support for draft-dejong-remotestorage-02.txt
* Fix multiple overlapping requests on first pageload
* Fix requests going to non-ready cache before initial sync finished
* Better error messages in widget
* Label change events from initial sync as 'local' if they come from local
* add JSHint checks
* add in-memory storage for when neither IndexedDB nor localStorage are availabl
e
@michielbdejong
michielbdejong / gist:8911687
Last active August 29, 2015 13:56
free network foundation glossary
blt-37 - ? search only gave me the #37 tram in Basel or bacon-lettuce-tomato reference. ;)
but it seems blt-28 is a high-altitude balloon
cnw - Charles N. Wyble
d-q - abbreviation of delta-q
delta-q - The basic theory of OpenLibernet is that any distributed computing system (Internet is just
a supercomputer) introduces loss and delay between given points in spacetime
w/r/t translocation of information. Loss and delay are fungible, and can be