GeoRpo – Geo Relative Position

It’s snowing and I needed something to do. So I built a new Node.js library written in Typescript (with the help of Claude!)

Context: In the Journey app, I wanted a way to inform users of interesting POI’s in relation to where they were. For example, I am (standing | walking | cycling | driving) from point A to point B, there is an interesting story I want to hear about, in relation to my co-ordinates, bearing and speed, where is the POI in relation to me. This allows me to customize the story for the user. For instance: You may have just passed X, or, on your right is Y, or, about 2 miles to your south is Z.

The purpose of this library is two fold: One it personalizes the story to create a USP and two it gives context to the user as to where the POI is, in relation to themselves. Should they be looking out the window? Or Just understand that the POI is in the general vicinity. Piggy backing off that, the user can decide if they want to stop, explore or if close enough, take a detour to visit or view that POI. read more

Cycling CdA Analyzer

I’ve been a BestBikeSplit user for years now. It’s been great for predicting race times and power requirements beforehand, and for analyzing my CdA after races. But at $20 per month, the cost started to feel steep for how often I actually used it.
That’s when I decided to create my own version using Claude. The project works surprisingly well, with results that match up closely with other paid subscription tools.

Open Source: FitIndex to FitBit (For Garmin Connect)

I got tired of being locked into FitIndex’s ecosystem when I wanted to move my weight tracking data to Garmin Connect. Their CSV export format doesn’t play nicely with other platforms, so I built (Thanks Claude Code!) a simple Node.js converter that transforms FitIndex exports into Fitbit’s CSV format (which most fitness platforms actually support). It handles the timestamp conversion, cleans up the data, and spits out a file you can import anywhere. Nothing fancy, just solves the annoying problem of data portability between fitness apps.

GitHub – paschmann/FitIndexToFitBit: Small Node.js application which converts FitIndex export files (CSV) to FitBit files which can then be uploaded to Garmin Connect. read more

Open Source Project: Reach UI

After building the open Source Reach SDK project, I realized it would be great to have an accompanying UI /Dashboard/Work bench where I would be able to test various notification methods and configurations before including them in my projects. Due to this, I build Reach UI, under the hood it is a simple static site with a Node.JS backend, using the Reach SDK. I think it does an ice job at showing how simple it can be to implement the SDK in your code base, and even includes some example code to make it even easier.

Check it out on Github below:

GitHub – paschmann/reach-ui: A test UI for the Node.js Reach SDK

A test UI for the Node.js Reach SDK. Contribute to paschmann/reach-ui development by creating an account on GitHub.

Think or Swim Scripting v2 #ToS

A new take on an old idea of using EMA (Exponential moving averages) to aide in making stock trading decisions. This is a new version of my previous script.

This strategy/study also makes some assumed long buy/sells (With a cap of $5K per trade) of the stock to provide a report of the performance based on the time period.

I still have not had the time to invest in trying to execute these in a timely manner, but always fun to speculate and run some hypothetical scenarios.

TOS v2

GitHub Gist: instantly share code, notes, and snippets.

OpenGraph API – AWS Lambda

Export Apple Photos to the Filesystem – Apple Script

I have never really used Apple Script, but recently had the desire to backup all my Apple Photos to my local NAS. I currently have all my photos organized in a Folder -> Album structure so pulled this Apple Script together together to get this done. Create a new Apple Script (*.scpt) and select the source Photos Folder and a location to save the files on your filesystem. Note: Slashes in the name case folders to be created 🙁

https://gist.github.com/paschmann/536def178ea9dd96c22c2143cc2b212c

Building a Passkit App

Building an Apple PassKit app has been an interesting endeavor. Internally at SAP we recently built a small Business Card application which allows employees to create a digital business card, and subsequently generate a individual and customized wallet pass, allowing them to quickly retrieve it, without having to find the app, and open it on their device. Having a wallet pass lets users simply double tap the lock button, authenticate and see a collection of their passes.

Open Source Project: Reach SDK

Over the past few years I have found myself re-implementing and re-writing basic features of server, web, mobile or service components. Registration, Login, Forgot Password, Notifications, Search, Help, FAQ, Contact Us, Maps are just a few I can think of, where half way through the development everything seems familiar and I have a case of deja vu. No doubt I have written or implemented a library or service which performs this specific function.

While developing the Changd app I found myself in one of the deja vu moments while writing the email notification service, and decided to pause development, and fix the root cause. After multiple Github issues to support a variety of notification providers, I came across Apprise, a python library which supports multiple notification provides. Since there was not a Node.js implementation, I decided to use Apprise as inspiration and influence for a Node.js library which I aptly named “Reach”. read more