Skip to content

Instantly share code, notes, and snippets.

View myobie's full-sized avatar

Nathan myobie

View GitHub Profile
@myobie
myobie / convert-flacs-to-alacs.sh
Last active June 15, 2024 07:44
Convert .flac to alac .m4a's because of Apple
#!/bin/bash
mkdir -p alac
for flac_file in ./*.flac; do
base_name=$(basename "$flac_file" .flac)
alac_file="./alac/$base_name.m4a"
echo ffmpeg -i "$flac_file" -map 0:a -c:a alac "$alac_file"
ffmpeg -i "$flac_file" -map 0:a -c:a alac "$alac_file"
done
@myobie
myobie / dot-env
Created June 4, 2024 08:08
Using 1password to inject ENV vars into the current shell from .env.* files
#!/bin/bash
# Usage: eval "$(bin/dot-env)"
set -eo pipefail
PROJECT=$(git rev-parse --show-toplevel)
for f in ${PROJECT}/.env.*; do
echo "# ${f}"
@myobie
myobie / rebuild.command
Created April 29, 2024 22:14
A double-clickable file to rebuild my iPod shuffle's music database
python3 rebuild_db3.py Music/
@myobie
myobie / example-mdx-usage.tsx
Last active January 5, 2024 14:17
Compile an mdx component for SSR preact using deno
import { mdx } from './mdx.ts'
import renderToString from 'preact-render-to-string'
import { type FunctionalComponent } from 'preact'
const MDXContent = await mdx(new URL('./test.mdx', import.meta.url))
const Page: FunctionalComponent = ({ children }) => (
<html lang='en'>
<head>
<title>Example MDX page</title>
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<style>
@keyframes rotate {
0% {
transform: rotate(0);
}
50% {
@myobie
myobie / script.lua
Created October 3, 2023 22:38
wrk lua script to output the count of response http status codes
local threads = {}
function setup(thread)
-- track each thread
table.insert(threads, thread)
end
function init(args)
-- thread local statuses table
statuses = {["100"] = 0}
@myobie
myobie / html-import.js
Last active September 4, 2023 12:38
Dreaming of HTML imports 🤔
// Example usage:
// <script type="module" src="./html-import.js"></script>
// <html-import href="./example.html" runscripts></html-import>
// <!-- now we can use the component defined from example.html -->
// <example-custom-element><p>This paragraph will be slotted.</p></example-custom-element>
export class HTMLImport extends HTMLElement {
static {
customElements.define('html-import', this)
}
@myobie
myobie / ext-integer.ex
Last active August 29, 2023 16:31
Allow collecting into an integer for sums in elixir
defmodule ExtInteger do
defimpl Collectable, for: Integer do
@doc """
Collect into: an integer
## Examples
iex> for n <- 1..5, into: 0, do: n
15
"""
@myobie
myobie / useStateWithReactiveInput.ts
Last active July 7, 2023 16:02 — forked from schickling/useStateWithReactiveInput.ts
Reactive `useState` variant
import React from 'react'
/**
* A variant of `React.useState` which allows the `inputState` to change over time as well.
* Important: This hook is synchronous / single-render-pass (i.e. doesn't use `useEffect` or `setState` directly).
*/
const useStateWithReactiveInput = <T>(inputState: T): [T, (newState: T | ((prev: T) => T)) => void] => {
const [_, rerender] = React.useState(0)
const stateRef = React.useMemo<{ current: T }>(() => ({ current: inputState }), [])
@myobie
myobie / full-stacktrace.txt
Created June 19, 2023 19:03
Internal application error: TypeError: cannot read headers: request closed
Internal application error: TypeError: cannot read headers: request closed
at Object.get headerList (ext:deno_fetch/23_request.js:115:17)
at Request.request.<computed> (ext:deno_fetch/23_request.js:565:60)
at Request.get [headers] (ext:deno_fetch/23_request.js:252:46)
at Request.get headers (ext:deno_fetch/23_request.js:452:16)
at NativeRequest.get headers (https://deno.land/x/oak@v12.5.0/http_server_native_request.ts:72:26)
at new Request (https://deno.land/x/oak@v12.5.0/request.ts:150:21)
at new Context (https://deno.land/x/oak@v12.5.0/context.ts:172:20)
at Application.#handleRequest (https://deno.land/x/oak@v12.5.0/application.ts:450:17)
at Application.listen (https://deno.land/x/oak@v12.5.0/application.ts:656:28)