~ / cmdr2

projects: freebird, easy diffusion

hacks: carbon editor, torchruntime, findstarlink

  # filter by: [ posts | worklogs ]
  • #findstarlink
  • #performance
  • #ops

The migration of findstarlink.com to Cloudflare Pages hit an issue (that I can’t describe here), but I had to roll it back for “reasons”. Would’ve been a nice cost-saver, but for now it’ll stay on S3. But the overall infrastructure of findstarlink (various components) is now quite streamlined, and pleasant to develop-for again. I also hit an issue when trying to optimize the loading time of findstarlink.com’s homepage on slow internet connections. On such connections, it takes a long time to download and parse cities.js (600 KB uncompressed, 300 KB compressed). And the UI thread is blocked while that’s happening (often for 10+ seconds).

  • #cities
  • #findstarlink

Released cities-db, a database of ~32,000 cities (cities in the world with population > 15,000), compressed into a format suitable for auto-complete on web pages (~283 KB) or mobile apps. The data is fetched from GeoNames.org, and processed into a custom format. Why? This library was created for findstarlink.com. It would be pretty expensive to use the Google Maps API for auto-complete, or host a dedicated API endpoint. And I don’t see why we need a remote service for this.

  • #satellites
  • #findstarlink
  • #sat-timings

sat-timings library released Released sat-timings, a Javascript library for predicting the optimal time to see a given list of satellites in the night sky. This library powers findstarlink.com and has served millions of satellite visibility predictions over the past 6 years. It’s written entirely in Javascript and is pretty fast.

  • #infrastructure
  • #ci
  • #tools

The last few weeks were spent on updating my internal tooling and infrastructure. This fixed general decay, used newer/better ways of doing things, and fixed some of the parts that had broken down (preventing me from releasing updates). I’ve open-sourced most of the things (tools, as well as most of FindStarlink’s code): GitHub Actions Wizard FindStarlink’s repositories tkinter-videoplayer Upgrading CI across projects Using GitHub Actions Wizard, I upgraded and standardized CI across all my projects. Now every repo has automated deploy workflows on git push, replacing manual deployment scripts and environment setup. This reduces the cognitive pressure for me when I return to these projects, since I don’t update these projects often.

  • #github
  • #actions-wizard
  • #ci
  • #cd

GitHub Actions Wizard released! Wrote GitHub Actions Wizard to make it easier to setup CI on my projects (especially new ones). More details from the project page: """ GitHub Actions Wizard is a simple tool for generating GitHub Actions workflows for common deployment tasks. Built primarily for my needs, but you’re free to use it, if you find it useful. It goes beyond simple workflow generation by automatically setting up necessary permissions (such as creating AWS IAM Roles and Policies for S3 or Lambda deployments). The intent is to quickly generate the overall workflow boilerplate, and then customize by editing the generated file.

  • #tkinter
  • #video

Built a simple video player widget for Tkinter - https://github.com/cmdr2/tkinter-video I needed a video player for a Tkinter-based project, and was surprised that the current alternatives either didn’t install properly (outdated dependencies), or required av (host-level compilation), or required me to build my own controls. I just wanted something plug-and-play.

  • #freebird
  • #puppetry

Puppetry v1.2.19 released! It allows you to move the overall armature rig via an external animation, while still controlling the head and hands with the VR controllers. Previously, the head and hands would stay at a fixed place in the world, and not move along with the rig. For e.g. this is useful if you want to move the character down a corridor (using a script or animation timeline), while using Puppetry’s motion capture to animate the head and hands.

  • #tensorRT
  • #torch
  • #easydiffusion
  • #ggml
  • #cuda
  • #vulkan

Experimented with TensorRT-RTX (a new library offered by NVIDIA). The first step was a tiny toy model, just to get the build and test setup working. The reference model in PyTorch: import torch import torch.nn as nn class TinyCNN(nn.Module): def __init__(self): super().__init__() self.conv = nn.Conv2d(3, 8, 3, stride=1, padding=1) self.relu = nn.ReLU() self.pool = nn.AdaptiveAvgPool2d((1, 1)) self.fc = nn.Linear(8, 4) # 4-class toy output def forward(self, x): x = self.relu(self.conv(x)) x = self.pool(x).flatten(1) return self.fc(x)I ran this on a NVIDIA 4060 8 GB (Laptop) for 10K iterations, on Windows and WSL-with-Ubuntu, with float32 data.

  • #blog-agent

Finished setting up multi-project outputs in blog-agent. I can now write posts and worklogs using my long-standing setup (plain text files in my Dropbox folder, rolled-over monthly), and blog-agent will publish them on their respective project blogs based on the tags. Posts tagged with #freebird will get posted on Freebird’s blog. And posts tagged with #easydiffusion or #sdkit will get posted on Easy Diffusion’s blog. Everything will also get cross-posted on my personal blog.

  • #github
  • #s3
  • #lambda

Edit: This script has been replaced by https://github.com/cmdr2/github-actions-wizard Wrote a simple utility script for quickly setting up deployments to S3 or Lambda via a GitHub Action. Gist: https://gist.github.com/cmdr2/7261109b0e214942f1c7864024a6daa1 It’ll create the required IAM Role and Policy automatically, and generate a workflow yaml inside your git repository. Run github-deploy-setup inside your git repository.