Skip to content

Instantly share code, notes, and snippets.

View colinfwren's full-sized avatar

Colin Wren colinfwren

View GitHub Profile
@colinfwren
colinfwren / ApproachModel.swift
Created November 19, 2023 21:15
Date Test Generic SwiftData Model
import Foundation
import SwiftData
@Model
final class ApproachModel {
var title: String
var shownInYear: Bool = true
var shownInMonth: Bool = true
var shownInWeek: Bool = true
var shownInDay: Bool = true
@colinfwren
colinfwren / ApproachViewModel.swift
Created November 19, 2023 21:13
Date Test App ViewModel
import SwiftData
import Foundation
enum DateGranularity: Codable {
case year
case month
case week
case day
}
@colinfwren
colinfwren / ApproachContentView.swift
Created November 19, 2023 21:11
Date Test Content View
import SwiftUI
import SwiftData
struct ApproachContentView: View {
@State private var viewModel: ApproachViewModel
var body: some View {
NavigationStack {
List(viewModel.todoLists) { todoList in
Section(header: Text(todoList.title)) {
@colinfwren
colinfwren / SwiftDataTestApp.swift
Created November 19, 2023 21:09
date test app
import SwiftUI
import SwiftData
@main
struct SwiftDataTestApp: App {
let container: ModelContainer
var body: some Scene {
WindowGroup {
ApproachContentView(modelContext: container.mainContext)
@colinfwren
colinfwren / find-face.py
Last active November 14, 2022 19:58
API to find a face using uploaded image
from flask import Flask, request, jsonify, make_response
from werkzeug.utils import secure_filename
import dlib
import cv2
import face_recognition
import os
import postgresql
app = Flask(__name__)
@colinfwren
colinfwren / add-face.py
Created November 14, 2022 19:52
API endpoint to add face
from flask import Flask, request, jsonify, make_response
from werkzeug.utils import secure_filename
import dlib
import cv2
import face_recognition
import os
import postgresql
app = Flask(__name__)
@colinfwren
colinfwren / setup-db-for-face-rec.py
Created November 14, 2022 19:48
Database Setup script
import postgresql
db = postgresql.open('pq://user:pass@localhost:5434/db')
db.execute("create extension if not exists cube;")
db.execute("drop table if exists vectors")
db.execute("create table vectors (id serial, file varchar, image_id numeric, vec_low cube, vec_high cube);")
db.execute("create index vectors_vec_idx on vectors (vec_low, vec_high);")
@colinfwren
colinfwren / penpot-portainer-stack.env
Created November 2, 2022 16:53
stack.env file for Penpot running in portainer
PENPOT_PUBLIC_URI=http://localhost:9001
PENPOT_FLAGS=disable-registration enable-login disable-email-verification disable-secure-session-cookies
PENPOT_HTTP_SERVER_HOST=0.0.0.0
PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
PENPOT_DATABASE_USERNAME=penpot
PENPOT_DATABASE_PASSWORD=penpot
PENPOT_REDIS_URI=redis://penpot-redis/0
PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
PENPOT_TELEMETRY_ENABLED=true
@colinfwren
colinfwren / penpot-portainer-compose.yml
Created November 2, 2022 16:52
Portainer version of PenPot's compose.yml
---
version: "3.5"
networks:
penpot:
volumes:
penpot_postgres_data:
penpot_assets_data:
@colinfwren
colinfwren / range.js
Created October 25, 2022 05:31
Range in JS
export function* range(start: number, stop: number, step: number = 1): Generator<number> {
if (stop == null) {
// one param defined
stop = start;
start = 0;
}
for (let i = start; step > 0 ? i < stop : i > stop; i += step) {
yield i;
}