kristjan
Joined 17 years ago
Joined 17 years ago
Getting all the product right (ish) around multiple devices, family invites, installing on kid devices, etc. was way more difficult than the actual generator. But I get darn-near furious when I'm just trying to get an app on a kid's iPad and I have to manually type passwords four different times, so making that smooth was worth it.
> I'm hungover
{ "function_calls": [ { "name": "lock_door", "arguments": { "door": "front door" } } ], "reasoning": "User wants to lock the door. 'hungover' implies a security door. No specific door named, so use 'front door' as default.", "confidence": 0 }
https://sponder.app (Live) - an RSS and podcast mutator. Filter feeds for what you want, merge, time-delay, and drip articles on a cadence (I like to start from feeds' beginnings). For podcasts, detect similar metadata to previous releases so you can skip reruns.
https://tellmeapenguin.com (Close! Come help test it) - Endless mad libs about whatever you want, and if it's a good story, you can keep writing more chapters. The kiddos love it, and you can share back and forth with grandparents and whatnot to keep sillily in touch.
https://nounogram.com/ (Web is live, apps soon) - Hybrid nonogram and crossword puzzles. Shade the grid to find the layout, then add the words where they fit. I built it to make the kiddo practice handwriting, and then it was more fun than I expected.
https://getyarnt.com (Free until I ship the Stripe integration) - A task tracker that's actively hostile towards you having tasks. Started as a joke, but I'm using it to track my own stuff and really enjoying it. If you have a manager who likes assigning you work, tell them to get Yarnt!
All of it's on https://hahamoment.dev/ in the likely event you don't need any of this but do want to turn on a light.
The main creation flow wouldn't send a verification email, and there are hints around to try through Apple Music, which got me a little farther. At phone verification, I receive the code fine (on both numbers I tried), type it in, and get an inscrutable "error" that prevents finalization.
But it turns out it was final enough that even though I can't log in at all, they felt fine sending me Mother's Day email spam. Thanks. I'll be sure to FaceTime her.
The SpotifyPlus HA integration [2] was near at hand and does a reasonably good job clustering with a version of ColorThief [3] under the hood. It has the same two problems you started with though: muddying when there's lots of gradation, even within a cluster; and no semantic understanding when the cover has something resembling a frame. A bit swapped from okmain's goal, but I can invert with the best of them and will give it a shot next time I fiddle. Thanks for posting!
[1] https://gist.github.com/kristjan/b305b83b0eb4455ee8455be108a... [2] https://github.com/thlucas1/homeassistantcomponent_spotifypl... [3] https://github.com/thlucas1/SpotifyWebApiPython/blob/master/...
The filtering was easy, but RSS doesn't do "from the beginning" (RFC 5005 exists, but is mostly unused), so scope crept into a webpage-to-RSS tool that lets me convert favorite.site/s/archive - autodetection of the article structure was a fun side quest.
The whole thing is a little function engine (Yahoo Pipes called), so the final goal is `merge(archive, live_feed) | drip(N items per D days)` to have the archive transition seamlessly into current content. I expect I can push that live tomorrow or so.
And of course Podcasts are just RSS, so hey, let's skip reruns. That's doable with filters on the episode description, but with history in place I'll add title similarity checking. I'm trying to think how to recognize cross-promoted episodes too, without having to crawl every podcast.
Importantly, Sponder's _not_ a client. There are enough clients, any many are great. Each implements some subset of features, so Sponder's an intermediary that consumes and publishes pure RSS for us to use anywhere we want.
Project two started over the weekend and is the NYTimes' Pips, but colors. You're building a stained glass window with regional constraints, and the big difference from using dominos is colors can mix. Also, triangles! The engine works, and I'm designing the tutorial and first handful of puzzles now.
Different RSS clients provide different filtering options, and lots of them limit you to a few keywords and/or put them behind a $7-12/mo subscription. I'm building Sponder so you can curate what you see, and it just presents another RSS feed, so you can keep using your favorite client but fill in the feature gaps.
Right now it can merge and filter by string or regex, and next I'm building (because it's what I want) history replay and smarter podcast rerun detection. it's new and I'm very open to feedback and feature requests.
https://en.wikipedia.org/wiki/Jon_Bentley_(computer_scientis...
b=`bundle exec`, though this is becoming less often used and I may remove it
d=dotenv to easily wrap a command in environment variables
(https://github.com/bkeepers/dotenv)
g=git
h=hub (GitHub's extensions to Git)
j=autojump to move to common directories using just a few characters
from their name (https://github.com/wting/autojump) alias g=git
I've got my Git configs up at https://github.com/kristjan/.dotfiles/blob/master/.gitconfig if you'd like to sift through them. The very most common, like `git status`, get their own Bash aliases too (https://github.com/kristjan/.dotfiles/blob/master/.aliases#L...). Who can be bothered to type a space?On the other hand, once a month or so I hide from the office for an afternoon/night and replace some infrastructure or build an internal tool that's never going to get prioritized. Everyone's happy about it, and you get to feel like a bit of a hero :)
[ my public key: https://keybase.io/kristjan; my proof: https://keybase.io/kristjan/sigs/aYrFyl1PfytMbNCEJCbVl0cfwmoxTSwcGzwCyR48i9Y ]