LockTime

Notas

Leer una pantalla sin frenarla

Capturar, leer, cifrar, indexar: alrededor de un tercio de segundo, alrededor del uno por ciento de un núcleo. Tres decisiones que llevaron hasta ahí.

Una única línea fina cruzando un campo pálido, casi plana.

El coste de un historial de pantalla se paga en cada intervalo, para siempre, en segundo plano, mientras intentas hacer otra cosa. Así que tiene que redondear a nada. Capturar un fotograma con ScreenCaptureKit, leer su texto con Vision, cifrarlo, escribirlo e indexarlo lleva alrededor de un tercio de segundo y alrededor del uno por ciento de un solo núcleo.

El trabajo más barato es el que se ahorra

La mayor parte de ese presupuesto no se gasta nunca, porque casi todos los intervalos terminan en la comprobación de cambio: una comparación con el fotograma anterior que no cuesta casi nada y decide que aquí no hay nada que valga la pena guardar. Cómo funciona esa comprobación es una nota aparte.

El mismo texto no se lee dos veces

El reconocimiento de texto es el paso caro. Cuando un fotograma se parece lo bastante al anterior como para que sus palabras no hayan podido cambiar, LockTime arrastra el texto anterior en vez de volver a ejecutar Vision. Leer una pantalla lleva unos 70 ms. Reutilizar lo ya leído lleva alrededor de 1.

La interfaz no espera a la biblioteca

Listar un día dentro de una biblioteca de 20.000 capturas lleva alrededor de 1 milisegundo. Componer la tira de momentos de un día entero grabado cada segundo — 86.400 — lleva 5,4 ms, cómodamente dentro de un fotograma de 16 ms. La ventana se mantiene a la frecuencia de la pantalla tanto si la biblioteca guarda una semana como un año.

Una versión para las dos máquinas

LockTime es Swift y SwiftUI de principio a fin, y se publica como una única versión universal para Apple Silicon e Intel. Esa restricción muerde. La búsqueda por significado, opcional, guarda sus embeddings como flotantes de 16 bits, y la forma obvia de escribirlos en Swift se llama Float16, que solo existe en arm64. Escrita así, la app compila y pasa sus pruebas en un Mac con Apple Silicon y no se puede construir para Intel en absoluto. El almacén escribe IEEE binary16 a través de vImage, y una prueba fija la disposición de los bytes para que siga siendo así.

Nada de esto se ve, y de eso se trata. No deberías poder notar que está funcionando.

Todas las notas
Descargar 0.1.6 · 6.6 MB macOS 14 o posterior · Apple Silicon e Intel · Gratis mientras esté empezando.