Skip to content

Instantly share code, notes, and snippets.

View matyasfodor's full-sized avatar
🦕

Mátyás Fodor matyasfodor

🦕
  • BenevolentAI
  • London
View GitHub Profile
@matyasfodor
matyasfodor / zip.js
Last active September 30, 2023 05:50
ES6 Zip functions: zipShort and zipLong
function _zip(func, args) {
const iterators = args.map(arr => arr[Symbol.iterator]());
let iterateInstances = iterators.map((i) => i.next());
ret = []
while(iterateInstances[func](it => !it.done)) {
ret.push(iterateInstances.map(it => it.value));
iterateInstances = iterators.map((i) => i.next());
}
return ret;
}
var incognito = function(require, module, exports) {
"use strict";
function isWebkitRequestFileSystem() {
return !!window.webkitRequestFileSystem
}
function isFirefoxIndexedDB() {
return !!window.indexedDB && /Firefox/.test(window.navigator.userAgent)
}
function isIE10PlusOrEdge() {
if (document.documentMode) {
const _zip = <T>(func: IArrayMethodSignature<IteratorResult<T>>, args: T[][]) => {
const iterators = args.map(arr => arr[Symbol.iterator]());
let iterateInstances = iterators.map((i) => i.next());
const ret: T[][] = [];
while (func.bind(iterateInstances, ((it: IteratorResult<T>) => !it.done))) {
ret.push(iterateInstances.map(it => it.value));
iterateInstances = iterators.map((i) => i.next());
}
return ret;
}
@matyasfodor
matyasfodor / incognitoTrick.js
Created December 27, 2017 04:43
Tampermonkey script to fake incognito check
// ==UserScript==
// @name Incognito trick
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Prevent sites detecting if you're in incognito by calling the success callback of webkitRequestFileSystem even if it's failing.
// @author You
// @run-at document-start
// @match *://*/*
// @grant none
// ==/UserScript==
@matyasfodor
matyasfodor / assign_vs_reduce.js
Created October 9, 2018 11:31
Performance test for assign vs reduce
const randString = () => Math.random().toString(36).substring(7);
const gen = (n) =>
new Array(n).fill(1).map(() => ({key: randString(), value: Math.random()}));
const array1 = gen(100);
const array2 = gen(1000);
const array3 = gen(100000);
const assign = (arr) =>
// ==UserScript==
// @name Netflix Subtitles On Top
// @namespace https://www.netflix.com/
// @version 0.1
// @description places the subs to the top of the screen
// @author @matyasfodor
// @match https://www.netflix.com/*
// @grant GM_addStyle
// ==/UserScript==
const sizedArray = (n) => Array(n).fill();
const times = (n, cb) => {
while (0 < n--) {
cb();
}
}
const fillWithCb = (n, cb) => sizedArray(n).map(cb);
@matyasfodor
matyasfodor / fb-apps-remover.js
Created April 6, 2018 07:11
These are the commands I used to remove the apps added to my facebook. I didn't have time to wrap it up, so use it as an inspiration, but It's likely that it won't work as it is.
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
head.appendChild(script);
var a = $('span.rfloat');
@matyasfodor
matyasfodor / sortSoAnswers.js
Created March 22, 2018 08:10
Tampermonkey script that sorts SO answers in descending order by vote count. The accepted answer is the first one.
// ==UserScript==
// @name Sort Answers
// @namespace TBD
// @version 1.0.0.1
// @description sorts SO answers in descending order by vote count. The accepted answer is the first one.
// @author matyasfodor
// @include /https?:\/\/(meta\.)?stackoverflow\.com/questions/.*/
// @grant none
// ==/UserScript==
/* jshint -W097 */
// ==UserScript==
// @name Trello TODO list
// @namespace Trello
// @version 0.1
// @description Fit 5 columns into a 13" Macbook screen
// @author Matyas Fodor
// @match https://trello.com/*
// @grant none
// ==/UserScript==