Skip to content

Instantly share code, notes, and snippets.

View davalapar's full-sized avatar
🦁
rawr

@davalapar davalapar

🦁
rawr
View GitHub Profile
@davalapar
davalapar / Interface.md
Last active August 17, 2018 18:12
Interface.md
@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 / downloadFile.js
Created July 31, 2018 12:08 — forked from dreamyguy/downloadFile.js
Download response.data as a file, through Blob()
// 'downloadFile.js', written by blending two solutions:
// 'js-download' https://github.com/kennethjiang/js-file-download
// 'Anders Paulsen' https://blog.jayway.com/2017/07/13/open-pdf-downloaded-api-javascript/
export function downloadFile(data, filename, mime) {
// It is necessary to create a new blob object with mime-type explicitly set
// otherwise only Chrome works like it should
const blob = new Blob([data], {type: mime || 'application/octet-stream'});
if (typeof window.navigator.msSaveBlob !== 'undefined') {
// IE doesn't allow using a blob object directly as link href.
@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 / 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 / Filereader Chunking
Created August 8, 2018 06:32
Filereader Chunking
https://stackoverflow.com/a/49825905
@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 () {