Skip to content

Instantly share code, notes, and snippets.

View yspreen's full-sized avatar
🦆
Working

Nick Spreen yspreen

🦆
Working
View GitHub Profile
Let's build a Duolingo style Hiragana quiz in this folder. The goal for you is to create a new Git repository to create an origin and push a first init command to GitHub. You can use the gh command in order to create a new remote repository that has the same name as the folder that you are in, Hiragana. The username will be yspreen
then we will start to create a new Next.js project with create_next_app. We want to use bun not yarn, or npm or pnpm. Please use TypeScript and Tailwind as presets. Then build the index page.
The index page should have one big square in the middle of it showing a hiragana. Then there should be five options at the bottom with the romaji to translate that hiragana into Latin characters.
Then, if the user picks something, either mark the selection as green and move on to the next, or mark it as red and show the correct one in green and show a button that says "Continue". If it's correct, we should only show it for 0.5 seconds and then automatically move on to the next. If it's wron
@yspreen
yspreen / ContentView.swift
Last active June 2, 2025 11:10
Sticky Section Header
/**
* ContentView.swift
* StickyTest
*
* Created by Nick Spreen (spreen.co) on 5/28/25.
*
*/
import SwiftUI
@yspreen
yspreen / Upload.swift
Last active March 17, 2025 14:23
fast-s3-swift
/**
* Upload.swift
* fast-s3
*
* Created by Nick Spreen (spreen.co) on 3/3/25.
*
*/
import Foundation
import Network
import { useGLTF } from "@react-three/drei";
import { useEffect, useRef } from "react";
import * as THREE from "three";
import { v4 as uuidv4 } from "uuid";
const TP7 = () => {
const { scene } = useGLTF('https://cdn.maximeheckel.com/models/te-tp-7/scene.gltf');
useEffect(() => {
import socket
def get_message_and_remainder(data):
if not data:
return None, data
if data[0] == ":":
parsed = data[1:].split("\r\n")[0]
return int(parsed), data[len(parsed) + 3 :]
@yspreen
yspreen / ffmpeg.sh
Last active December 12, 2022 00:33
ffmpeg -i input output
rm calculator*mp4 ; ls -1 calculator* | while read f; do ffmpeg -i "$f" -c:v hevc_videotoolbox -q:v 65 -tag:v hvc1 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:-1:-1:color=black" -s 1920x1080 -r 60 -strict experimental -c:a aac -b:a 128k -ar 48000 -ac 2 "$f.mp4" </dev/null; done
-i my-video.mov -vcodec h264 -acodec mp2
-acodec libvo_aacenc -vcodec libx264 -s 1920x1080 -r 60 -strict experimental
//
// ContentView.swift
//
// Created by @spreen_co on 11/13/22.
//
import SwiftUI
struct ContentView: View {
var body: some View {
@yspreen
yspreen / create_doppler_service_token.sh
Created July 24, 2022 11:07 — forked from ryan-blunden/create_doppler_service_token.sh
Crate a Doppler Service Token from the Command Line
#!/usr/bin/env bash
# Requires a CLI token
DOPPLER_TOKEN="$(doppler configure get token --plain)" \
DOPPLER_PROJECT="$(doppler configure get project --plain)" \
DOPPLER_CONFIG="$(doppler configure get config --plain)" \
\
SERVICE_TOKEN=$(curl -sS --request POST \
--url https://api.doppler.com/v3/configs/config/tokens \
@yspreen
yspreen / .hyper.js
Created April 15, 2022 07:40
hyper bug
"use strict";
let cursorColor = "#10c2b3";
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// choose either `'stable'` for receiving highly polished,
@yspreen
yspreen / extract-js-map.sh
Created April 11, 2022 05:32
extract-js-map.sh
#!/bin/sh
mapfile="$1"
seq 0 $((`jq -r '.sources | length' "$mapfile"`-1)) | while read n
do
file="$(jq -r ".sources[$n]" "$mapfile")"
dir="$(dirname "$file")"
mkdir -p "$dir"
jq -r ".sourcesContent[$n]" "$mapfile" > "$file"