Skip to content

Instantly share code, notes, and snippets.

@kylehowells
kylehowells / open_clip_embedding_test.py
Created October 27, 2025 06:15
Demo of using the OpenAI CLIP and SigLIP 2 models to do text and image embedding search.
"""
Simple demo showing how to generate and compare text and image embeddings.
Uses CLIP (openai/clip-vit-base-patch16) model for both text and image embeddings.
"""
import torch
from PIL import Image
from transformers import CLIPProcessor, CLIPModel
import numpy as np
import torch.nn.functional as F

Getting a streamable link is done by the client.

You basically need to send the service a detailed list of the type of media you can play, and it will give you a transcode URL to call if it thinks you need transcoding in order to play this file.

If you don't and can play the file directly it won't give you a transcode URL.

POST <server_address>/Items/<item_id>/PlaybackInfo?UserId=<current_user_id>
@kylehowells
kylehowells / max_size.swift
Created July 9, 2020 03:03
Get the maximum supported Metal texture size for the current device on iOS or macOS.
import SceneKit
import CoreGraphics
static func getMaxImageWidth() -> Int {
let device = MTLCreateSystemDefaultDevice()!
// According to the Metal Feature Set Tables there are only two supported maximum resolutions
// 16384px for macs and the latest iOS devices
// 8192px for the older iOS devices
// Older Apple devices used to be limited to 4,096, 2,048 or even 1,024, but are no longer supported
@kylehowells
kylehowells / gist:36b6f7e3f584590d0943
Created December 4, 2014 01:18
MRMediaRemoteGetNowPlayingInfo Keys
MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(), ^(CFDictionaryRef information) {});
/* [information allKeys]
(
kMRMediaRemoteNowPlayingInfoTotalDiscCount,
kMRMediaRemoteNowPlayingInfoShuffleMode,
kMRMediaRemoteNowPlayingInfoTrackNumber,
kMRMediaRemoteNowPlayingInfoDuration,
kMRMediaRemoteNowPlayingInfoRepeatMode,
kMRMediaRemoteNowPlayingInfoTitle,
@kylehowells
kylehowells / download_nwt.py
Created February 10, 2025 09:32
Download and convert to json for further processing
# Get one language:
# https://b.jw-cdn.org/apis/pub-media/GETPUBMEDIALINKS?booknum=0&output=json&pub=nwt&fileformat=jwpub&alllangs=0&langwritten=S
# Get all languages:
# https://b.jw-cdn.org/apis/pub-media/GETPUBMEDIALINKS?booknum=0&output=json&pub=nwt&fileformat=epub&alllangs=1&langwritten=E
import requests
You are an excellent, logical, programmer. You are currently acting as my programming assistant.
Please keep the initial response short and to the point.
If a more lengthy reply and more details are needed it will be asked for.
- Follow the user's requirements carefully & to the letter.
- First think step-by-step.
- Briefly describe your plan for what to build in psuedocode, written out in detail.
- Then output the code in a single codeblock.
- Minimize any other prose and try to answer concisely, while still fully answering the request.
//
// TappableUILabelDemoViewController.swift
// Label Link Test
//
// Created by Kyle Howells on 2024-03-20.
//
import UIKit
@kylehowells
kylehowells / Tap links in UILabel.swift
Created March 20, 2024 01:24
Tap Links in UILabel
@kylehowells
kylehowells / Speedo.swift
Created June 28, 2020 17:37
Scifi Style Speedometer Concept in SwiftUI
import SwiftUI
struct ContentView: View {
let backgroundGradient = Gradient(colors: [
Color(red: 65.0/255.0, green: 65.0/255.0, blue: 84.0/255.0, opacity: 1.0),
Color(red: 20.0/255.0, green: 20.0/255.0, blue: 24.0/255.0, opacity: 1.0)
])
let blueGradient = Gradient(colors: [
@kylehowells
kylehowells / correct_dates.py
Created February 14, 2020 21:18
Automatically Corrects Insta360 Studio Snapshot Dates according to the filename.
import os
import re
import datetime
import piexif
filepath = os.path.abspath(".")
# Find files with `screenshot` in the name.
files = [f for f in os.listdir(filepath) if "screenshot" in f and f.endswith(".jpg")]
print(files)