Skip to content

Instantly share code, notes, and snippets.

Avatar
🕉️
all good

José Pedro Dias JosePedroDias

🕉️
all good
View GitHub Profile
@JosePedroDias
JosePedroDias / homemadeGet.js
Created Aug 6, 2020
to eventually use in node instead of request
View homemadeGet.js
const http = require('http');
const https = require('https');
const HEADERS = {};
function get(url, body, moreHeaders) {
const prot = url.indexOf('https:') === 0 ? https : http;
return new Promise((resolve, reject) => {
const r = prot.request(
url,
@JosePedroDias
JosePedroDias / debug_cookie_set.js
Created Jul 13, 2020
tampermonkey userscripts for cookies and localStorage
View debug_cookie_set.js
@JosePedroDias
JosePedroDias / jsonl.js
Last active Apr 18, 2020
jsonl as generators
View jsonl.js
const fs = require('fs');
const readline = require('readline');
async function* readJsonlGen(filename) {
const lineReader = readline.createInterface({
input: fs.createReadStream(filename),
});
let i = 0;
for await (const line of lineReader) {
@JosePedroDias
JosePedroDias / spy.js
Created Mar 2, 2020
spy and spyOnObject
View spy.js
function spy(fn, prot = fn.prototype) {
function proxy() {
const args = Array.prototype.slice.call(arguments);
proxy.calls.push(args);
proxy.called = true;
return fn.apply(this, args);
}
proxy.prototype = prot;
View keybase.md

Keybase proof

I hereby claim:

  • I am josepedrodias on github.
  • I am josepedrodias (https://keybase.io/josepedrodias) on keybase.
  • I have a public key ASAK1PVQv74qCAcdG8fz1yGPHE1WIExSVThhfHRlFKzhfAo

To claim this, I am signing this object:

View photo_trace_with_gimp.md
  • image > scale image > 200%
  • filters > edge detect > difference of gaussians > 9 / 1
  • colors > desaturate
  • colors > levels > push left bottom point rightwards, manipulate rightmost line to accentuate trace width wo/ much noise added
@JosePedroDias
JosePedroDias / modules.js
Last active Jan 5, 2020
traverse to manipulate JSON
View modules.js
// yarn list --json > modules.json
const fs = require('fs');
const O = require('./modules.json');
function visit(o) {
if (typeof o === 'object' && o !== null) {
if (o instanceof Array) {
// change array (noop)
View set-operations.js
// s1 contains all elements of s2
function setContains(s1, s2) {
return new Set([...s2].every(x => s1.has(x)));
}
// elements in both s1 and s2
function setIntersection(s1, s2) {
return new Set([...s1].filter(x => s2.has(x)));
}
@JosePedroDias
JosePedroDias / ideas.md
Last active Oct 4, 2019
ldjam 45 ideas
View ideas.md

THEME: Start with nothing

1

  • there's a character with a preset script of directions he will take. We get those as an overlay
  • our job is to make the hero reach somewhere in the initially empty map by adding tiles

social twist:

  • if each set of movements is driven by a seed of a random number generator, we can map different solutions of the same movements to different ending maps.
@JosePedroDias
JosePedroDias / README.md
Created Sep 29, 2019
jsonlish stringify
View README.md

jsonlines and similar formats where each payload is stored as unindented JSON chunks divided by newlines are great for complex systems.

My application is more to aid in exploring large JSON files and copying/pasting, chunks in the editor, therefore made this small JSON stringifier that breaks the 1st level of arrays and objects with newlines,while returning valid JSON.

The placement of commas is intentional. This way one can find the item, right, shift+end, copy.

jsonlishStringify([4,true,'yay'])
`[
4
You can’t perform that action at this time.