Skip to content

Instantly share code, notes, and snippets.

View jeremyckahn's full-sized avatar

Jeremy Kahn jeremyckahn

View GitHub Profile

Front End System Design Interview Checklist

  • Ask for clarifying questions
    • What is the scale of the solution needed?
      • How many daily active users?
      • How are they geographically distributed?
      • What are we expecting in terms of peak traffic?
    • What are the most business critical use-cases?
      • What's a user persona we should be targeting?
  • Identify constraints
@jeremyckahn
jeremyckahn / run-in-docker.sh
Created March 30, 2020 16:45
Run a shell script in a Docker environment
docker run \
# Set the current host working directory as the container's /tmp so the container can access it
-v $(pwd):/tmp \
# Mount your home directory as the Docker root user's home directory to inherit any host dotfiles
-v $HOME:/root \
# (Effectively) set the host's working directory as the container's working directory
-w /tmp \
// Generated by ChatGPT: https://chat.openai.com/share/6c78c3f4-213d-48e6-9f79-b85ef3a7adc7
// Helper functions for converting between ArrayBuffer and base64
function arrayBufferToBase64(buffer) {
const bytes = new Uint8Array(buffer);
return btoa(String.fromCharCode.apply(null, bytes));
}
function base64ToArrayBuffer(base64) {
const binaryString = atob(base64);
// Generated by ChatGPT: https://chat.openai.com/share/6c78c3f4-213d-48e6-9f79-b85ef3a7adc7
// Helper functions for converting between ArrayBuffer and base64
function arrayBufferToBase64(buffer) {
const bytes = new Uint8Array(buffer);
return btoa(String.fromCharCode.apply(null, bytes));
}
function base64ToArrayBuffer(base64) {
const binaryString = atob(base64);
// Written by ChatGPT: https://chat.openai.com/share/5a3241a3-d4ab-4d85-96c5-9aafdff8e483
// Function to generate a key pair
async function generateKeyPair() {
const keyPair = await crypto.subtle.generateKey(
{
name: 'RSA-OAEP',
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
hash: 'SHA-256',
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"id": "6NTKCxHqlVnqYY7Mg_5ph",
"type": "text",
"x": 603,
"y": 639,
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"id": "eJf_ZiWYQLX4xuxjywCaG",
"type": "text",
"x": 345,
"y": 163.5,
@jeremyckahn
jeremyckahn / js-public-private-key-generation.js
Created December 4, 2023 03:13
Use Web Crypto API to create public and private key pairs and convert them to strings
// Generated by ChatGPT: https://chat.openai.com/share/eef660d9-eaf2-494e-8175-54290254c73f
// Function to generate a key pair
async function generateKeyPair() {
try {
const keyPair = await window.crypto.subtle.generateKey(
{
name: 'RSA-OAEP',
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"id": "6epLBtPWpajrmXVOPAgjr",
"type": "text",
"x": 102.5,
"y": -44,
@jeremyckahn
jeremyckahn / ExecScript.js
Created November 6, 2015 02:20
An RPG Maker MV plugin for easily calling JavaScript files from events
/*:
* @plugindesc A utility for easily calling JavaScript files from events
* @author Jeremy Kahn
*
* @help API: exec('path/to/script', arg1, arg2, ...);
*
* * You may add on as many arguments as you need.
* * The path is relative to project-root/js
* * Loaded files must be AMD modules that looks like so:
*