Skip to content

Instantly share code, notes, and snippets.

@jeremyckahn
jeremyckahn / inherit-by-proxy.js
Created May 10, 2013 04:25
Proxy-based inheritance pattern in JavaScript.
function inherit (child, parent) {
function proxy () {};
proxy.prototype = parent.prototype;
child.prototype = new proxy();
};
function Parent () {}
function Child () {}
inherit(Child, Parent);
@jeremyckahn
jeremyckahn / gist:3cc4d6673ef65cacb69fc48aca6a8279
Created May 7, 2025 14:03
Prompt for bartowski:Qwen_Qwen3-30B-A3B-GGUF:Qwen_Qwen3-30B-A3B-Q4_0.gguf: Invert a binary tree in JS and print an ASCII representation of the before and after. /no_think
<think>
</think>
To invert a binary tree (also known as **mirroring** it), we swap each node's left and right children recursively.
Then, to **print an ASCII representation** of the tree before and after inversion, we can use a helper function that prints the tree in a structured way — typically using indentation and vertical lines to represent the hierarchy visually.
Here’s how you can do this in JavaScript:
@jeremyckahn
jeremyckahn / gist:2555dbf9730101b25d679777e8e36f8c
Created May 7, 2025 13:39
Prompt for unsloth:Qwen3-30B-A3B-GGUF:Qwen3-30B-A3B-UD-Q4_K_XL.gguf: Invert a binary tree in JS and print an ASCII representation of the before and after. /no_think
<think>
</think>
To **invert a binary tree** in JavaScript, you can perform a recursive swap of left and right children for each node.
Then, to **print an ASCII representation**, we'll use a helper function that prints the tree in a readable format (like how it might look on paper).
---

Here's a summary of the game rules based on the state machine:

  1. Initial State:

    • The game begins in an "UNINITIALIZED" state, waiting for each player to complete their setup.
    • A prompt is issued to the session owner to start setting up.
  2. Player Setup Phase:

    • Players are prompted to set up their initial state (PROMPT_PLAYER_FOR_SETUP).
    • Once all players have completed their setup (though this condition isn't explicitly checked in the code), the game moves to the "WAITING_FOR_PLAYER_TURN_ACTION" state, ready for player turns.
@jeremyckahn
jeremyckahn / system-design-interview-prep-resources.md
Last active September 1, 2024 03:34
System Design Interview Prep Resources
{
"allowCustomPeerCowNames": false,
"cellarInventory": [],
"completedAchievements": {},
"cowBreedingPen": {
"cowId1": null,
"cowId2": null,
"daysUntilBirth": -1
},
"cowColorsPurchased": {},
{
"allowCustomPeerCowNames": false,
"cellarInventory": [
{
"id": "84acbe21-60ad-4604-ab23-48240f0c970b",
"itemId": "wine-chardonnay",
"daysUntilMature": -151
},
{
"id": "e3a2afb9-fc25-4329-9d25-e290281f4ee5",

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);