Skip to content

Instantly share code, notes, and snippets.

@arvidkahl
arvidkahl / redis_investigation.py
Last active March 1, 2025 22:04
redis_investigation.py
import redis
from collections import defaultdict
import json
from datetime import datetime, timedelta
import random
import time
def analyze_redis_memory(host='localhost', port=6379, db=1, pattern='*', sample_size=1000):
"""
Analyzes Redis keys and sorts them by memory usage.
@lindesvard
lindesvard / cachable.ts
Created August 7, 2024 22:21
Cachable function
import { getRedisCache } from './redis';
export function cacheable<T extends (...args: any) => any>(
fn: T,
expireInSec: number
) {
const cachePrefix = `cachable:${fn.name}`;
function stringify(obj: unknown): string {
if (obj === null) return 'null';
if (obj === undefined) return 'undefined';
@mxkaske
mxkaske / columns.ts
Created August 2, 2024 19:45
How extend shadcn data-table with tanstack table's meta object to fix cell width
"use client";
import type { ColumnDef } from "@tanstack/react-table";
export interface Schema {
region: string;
trend: string;
p50: number;
}
@adevinwild
adevinwild / extend-validator.ts
Created July 30, 2024 11:54
A new way to extend core validators in Medusa v1.x
import { registerOverriddenValidators } from '@medusajs/medusa'
import { type Constructor } from '@medusajs/types'
type DecoratorFunction = MethodDecorator | PropertyDecorator
type ExtensionDefinition = {
[key: string]: DecoratorFunction | DecoratorFunction[]
}
function extendValidator<Base extends Constructor<any>>(
@CallumVass
CallumVass / anthropic.ts
Last active May 17, 2024 14:46
Haiku structured data - My own implementation of instructor for Haiku
import Anthropic from "@anthropic-ai/sdk";
import type { MessageParam } from "@anthropic-ai/sdk/resources";
import dotenv from "dotenv";
import { Instructor } from "./instructor";
import type { z } from "zod";
dotenv.config();
function sendToClaude<T>(message: MessageParam, schema: z.Schema<T>) {
const anthropicClient = new Anthropic({
@m1guelpf
m1guelpf / route.ts
Created May 26, 2023 04:18
Next.js App Route for getting the current playing song on Spotify (or a cached version)
import redis from '@/lib/redis'
import { tap } from '@/lib/utils'
import { NextResponse } from 'next/server'
import { NowPlaying } from '@/types/activities'
import { base64_encode, use } from '@/lib/utils'
type SpotifyResponse = {
is_playing: boolean
progress_ms: number
item: {
@snorrees
snorrees / collectionUpdate.ts
Created March 15, 2023 14:33
Sanity Connect custom handler. See requirements.md
import type {SanityClient} from '@sanity/client'
import {v5 as uuidv5} from 'uuid'
import {buildCollectionDocumentId, commitCollectionDocument} from './sanityOps'
import type {ShopifyDocumentCollection} from './storageTypes'
import {SHOPIFY_COLLECTION_DOCUMENT_TYPE, UUID_NAMESPACE_COLLECTIONS} from './constants'
import {DataSinkCollection} from './requestTypes'
import {idFromGid} from './requestHelpers'
import invariant from "tiny-invariant";
class AmalgoBox extends HTMLElement {
get input() {
return this.querySelector("input") as HTMLInputElement;
}
get button() {
return this.querySelector("button") as HTMLButtonElement;
}
@SimeonGriggs
SimeonGriggs / useListeningQuery.ts
Last active November 30, 2022 05:59
A custom hook for making and listening to document changes
import React, {useEffect, useState, useRef} from 'react'
import documentStore from 'part:@sanity/base/datastore/document'
import {catchError, distinctUntilChanged} from 'rxjs/operators'
import isEqual from 'react-fast-compare'
type Params = Record<string, string | number | boolean | string[]>
interface ListenQueryOptions {
tag?: string
apiVersion?: string
@merlinmann
merlinmann / wisdom.md
Last active August 1, 2024 01:08
Merlin's Wisdom Project (Draft)

Merlin's Wisdom Project

Or: “Everybody likes being given a glass of water.”

By Merlin Mann.

It's only advice for you because it had to be advice for me.