Skip to content

Instantly share code, notes, and snippets.

@Krinkle
Krinkle / rl-startup-diff.php
Created April 4, 2024 00:50
MediaWiki ResourceLoader startup diff
<?php
$startupUrls = [
'enwiki-canonical' => 'https://en.wikipedia.org/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector',
'enwiki-mobile' => 'https://en.m.wikipedia.org/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=minerva&target=mobile',
];
define( 'STARTUPREG_JSON_START', 'mw.loader.register([' );
define( 'STARTUPREG_JSON_START_OFFSET', 'mw.loader.register(' );
define( 'STARTUPREG_JSON_END', ']);' );
<!doctype html>
<html>
<head>
<title></title>
<style>
body {
background: white;
text-align: center;
padding: 20px;
font-family: Georgia, serif;
@Krinkle
Krinkle / CSVtoJSon.js
Last active February 29, 2024 06:45 — forked from codepo8/CSVtoJSon.js
OK, here is my function to turn CSV into JSON - what's yours?
const csvToJSON = (csv) => {
const getcsvdata = (csv) => {
const csvRegex = /,(?=(?:(?:[^"]*"){2})*[^"]*$)/;
const trimQuotes = /^"|"$/g;
csv = csv.split(csvRegex).map(
h => h.trim().replace(trimQuotes, '')
);
return csv;
}
let lines = csv.split('\n');
@Krinkle
Krinkle / Split Tabs to New Window.scpt
Created December 8, 2023 07:02 — forked from gruber/Split Tabs to New Window.scpt
An AppleScript for Safari to move all tabs in the frontmost window, from the current tab to the rightmost (last) tab, to a new window.
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
-- Original script: John Gruber (https://daringfireball.net/linked/2023/12/05/an-applescript-for-safari-split-tabs-to-new-window)
-- Much more elegant version: Leon Cowle (https://github.com/leoncowle)
tell application "Safari"
(*
`tab` properties:
index
#!/usr/bin/python3
#
# Convert an Apple iTunes Music Library.xml file into a set of .m3u playlists.
#
# Copyright 2023 Timo Tijhof <https://timotijhof.net>
# Copyright 2006 Mark Huang <mark.l.huang@gmail.com>
#
# SPDX-License-Identifier:: GPL-2.0 <https://opensource.org/licenses/GPL-2.0>
#
# Changelog:
/**
* Unique sets in JavaScript
*
* Inspired by https://fosstodon.org/@bassistance@chaos.social/109354031141521705
*
* Author: Timo Tijhof (2022).
* License: Public domain.
*/
const NAMES = [
@Krinkle
Krinkle / crypto-aes-gcm.js
Last active March 3, 2023 04:14 — forked from chrisveness/crypto-aes-gcm.js
AES-GCM text encryption using Web APIs
/**
* Encrypts plaintext using AES-GCM with supplied password, for decryption with aesGcmDecrypt().
* (c) Chris Veness MIT Licence
*
* @param {String} plaintext - Plaintext to be encrypted.
* @param {String} password - Password to use to encrypt plaintext.
* @returns {String} Encrypted ciphertext.
*
* @example
* const ciphertext = await aesGcmEncrypt('my secret text', 'pw');
@Krinkle
Krinkle / 01-parkers-number-of-feb2014.js
Created April 18, 2019 01:18
3435 – The sum of each digit raised to the power of itself.
const MAX = 100 * 1000 * 1000; // 100 million
function powself(number) {
if (number === 0) {
return NaN; // matt does not like zero.
} else {
return Math.pow(number, number);
}
}
/*! Requires Node 12.5+ | License: Public domain. */
const cluster = require('cluster');
const WORK_TOTAL = 10_000_000;
const WORK_MILESTONE = 1_000_000;
const WORK_ASSIGN_CHUNK = 100_000;
const WORK_RESP_CHUNK = 1_000;
const ALGO = 'md5';
@Krinkle
Krinkle / perfect-numbers.js
Last active March 18, 2019 23:16
Distribute exponential task sizes via Node.js cluster workers.
/**
* Requires Node 6.0+
*
* Author: Timo Tijhof (2018).
* License: Public domain.
*/
const cluster = require('cluster');
let pidLabel = cluster.isMaster ? 'master' : 'worker';