Skip to content

Instantly share code, notes, and snippets.

View davalapar's full-sized avatar
🦁
rawr

@davalapar davalapar

🦁
rawr
View GitHub Profile
@davalapar
davalapar / Latency.md
Last active July 26, 2018 20:15
Latency.md

https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

Dijkstra's algo can be used for path-finding in a p2p network, which comes handy when relaying information as a unicast (between 2 peers) or multicast (between 3 peers). Instead of relying on the very unreliable geographical data (lat/long) their devices can provide, their network latency values can used instead.

Requirements:

  1. Clients should determine the latency of their direct peers periodically.
  2. Clients should be able to relay the messages in a forward and backward manner
  3. Client should be able to group the messages
  4. Encoding of messages
@davalapar
davalapar / BlobSaving.js
Created July 31, 2018 12:06
BlobSaving.js
var saveData = (function () {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
return function (data, fileName) {
var json = JSON.stringify(data),
blob = new Blob([json], {type: "octet/stream"}),
url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
@davalapar
davalapar / Filereader Chunking
Created August 8, 2018 06:32
Filereader Chunking
https://stackoverflow.com/a/49825905
@davalapar
davalapar / Interface.md
Last active August 17, 2018 18:12
Interface.md
@davalapar
davalapar / Uint8ArrayTools.js
Created August 6, 2018 23:44
Uint8ArrayTools.js
/* eslint-disable no-console, no-undef, arrow-body-style */
import sha256 from 'fast-sha256/sha256';
import pako from 'pako';
import msgpack5 from 'msgpack5';
import nacl from 'tweetnacl';
import naclutils from 'tweetnacl-util';
import prettybytes from 'pretty-bytes';
export const fromUTF8 = naclutils.decodeUTF8;
@davalapar
davalapar / Keylock.js
Created August 19, 2018 06:53
Keylock.js
/* eslint-disable no-undef */
// http://keycode.info
class Keylock {
constructor(key) {
this.keyCode = key.charCodeAt(0);
this.isDown = false;
this.isUp = true;
this.onPress = undefined;
this.onRelease = undefined;
@davalapar
davalapar / byref-javascript.js
Created August 23, 2018 01:48
byref-javascript
// unfinished
let externalVariable = 1;
class Externa{
constructor () {
this.map = new Map();
}
set x (value) {
this.map.set('x', value);
}
get x () {
@davalapar
davalapar / GreenLock.md
Created August 7, 2018 17:33
GreenLock.md
  • Adding package on windows
    • Install Windows SDK 8.1 https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
    • Create folder C:\OpenSSL-Win64\ (exact)
    • Download http://www.indyproject.org/Sockets/fpc/AMD64-Win64OpenSSL-0_9_8g.zip
    • (or from here: http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.en.aspx)
    • Extract to folder
    • cd C:\OpenSSL-Win64
    • mkdir lib
    • copy libeay32.lib lib
  • yarn add greenlock ursa
@davalapar
davalapar / failure-first-approach.js
Created August 25, 2018 00:40
failure-first-approach.js
// do we have errors?
if (condition === false) {
return new Error('reason goes here') || Promise.reject(new Error('reason goes here')); // either
}
// are tasks needed?
if (condition === false) {
return tasks();
}
return Promise.resolve();