A playground for experimenting with ways to improve the
experience of highlighting selections of HTML as in
Taguette. This is an
alternative to my LoQDA approach, which abandons trying to
coerce every format to HTML, opting for PDF instead.
The seed for my unrealized dream of a free local-first
web-based Qualitative Data Analysis app centered around the
PDF. It is heavily inspired by
Taguette and
OpenQDA. For now, its
major capability is to create and save hightlight
annotations directly into a PDF file. I don't have time to
work on this at the moment but really wish I did.
PDFs are harder than you'd think!
Web HRM collecting data from a Polar H10 into two SQLite
database tables inside the browser.
A web-based Bluetooth Low Energy central device driver for
the
Heart Rate Service. It can collect heart rate and R-to-R wave intervals from
any generic sensor, and can collect Pulse-to-Pulse intervals
from the Polar OH1 through a driver I reverse-engineered
from Polar's
Kotlin & Swift SDKs. It can collect and save data to a local SQLite database
from multiple sensors simultaneously.
The participant-device view of Polar Web while
collecting ECG data.
My first attempt at a web-based Bluetooth Low Energy central
device driver for the
Heart Rate Service. See this
video
for a demonstration. It can collect heart rate and R-to-R
wave intervals generic sensors, but is designed for the
Polar H10, from which it can collect and display
electrocardiography (ECG) at 160Hz. I also
reverse-engineered this driver from Polar's
Kotlin & Swift SDKs.
Web GSR
(Galvanic Skin Response) a.k.a Web GHS (Generic Health
Sensor)
Two Gardella GSR-To-Go devices
A web-based Bluetooth Low Energy central device driver for
the
Generic Health Sensor Service. Currently it displays Galvanic Skin Response data from my
prototypes for the Gardella GSR-To-Go peripheral device and
saves battery data so I can calibrate the battery percentage
estimator. I also tried out
TinyBase for this
project.
Battery voltage over time collected from the Web GSR
app. The device's 800mAh battery lasts over 3 days.
A prototype for counting steps using the accelerometer in an
Android device. The application tries to assess when a step
is taken using an exponentially weighted moving average of
the 3D acceleration vector.
The NASA TLX input control.
An embeddable, accessible form control for entering the
NASA's Task Load Index scale items. I designed this for easy
embedding in Qualtrics and other survey platforms to improve
the consistency of delivering the NASA TLX scale. It is
compatible with multitouch, screen readers, keyboard
controls, and mouse inputs. I created this to aid a peer in
their research on the NASA TLX. They used my code as a basis
to build software for their research studies. This helped me
improve my D3.js, SVG, and accessibility skills!
An SVG-based interactive visualizer for scoliosis curvature.
I made this rough prototype as a proof-of-concept for
orthopedic surgeons who wanted a way to capture patient
expectations about how their spines would look after
surgery. This helped me learn a lot about SVGs!
The scoliosis visualizer adjusted to show a specific
spinal curvature.
A block-scheduling planner inspired by Cal Newport's
Time Block Planner. The data can be saved or loaded from the browser, and the
blocks support context menus, drag-and-drop, splitting,
deletion, labeling, and color choice. I used this project to
learn React, Redux, drag and drop, Material UI, and many
other web technologies.
A proof-of-concept app I built to bring together
Transformers.js
and
libSQL WASM. It vectorizes sample data and performs RAG inside SQLite,
all locally inside the user's browser. I plan to use this
approach in the future to add local AI features to my
front-end CRUD apps.
A typescript utility that scrapes public endurance workouts
from
8020 Endurance's Workout Library, turns them into structured text workouts, and uploads
them to your account on
Intervals.icu, an
endurance training planning app and TrainingPeaks
competitor. I built this because I owned Matt Fitzgerald's
books and associated training plans but wanted to get them
into my own training software easily, without having to
write out nearly 500 workouts manually. I shared this on the
forum
for
Intervals.icu and other
users have found it helpful as well.
A Cloudflare Workers implementation of HenrikJoreteg's
github-secret-keeper
with added rate limiting. This allows for a serverless
approach to authenticating static apps using GitHub. I built
this to enable me to build multi-user applications with
limited hosting costs.
A native windows app written in Go to bypass CORS
restrictions using a local proxy made for users without
Node.js or other command-line experience (unlike the
original
UnCORS)
Download from the GitHub
releases
I built this app in Swift and Swift UI in 2020. it is not
published in the App Store, but
Strong is probably
better anyway! Sadly the code is held hostage in my VT
GitHub account, which I can no longer access 😔